Commit Graph

73 Commits

Author SHA1 Message Date
Stephen Canon 5f0e6e7b92 Adds an extra explicit cast to fix Bug 7931 and removes codepaths that were never used
llvm-svn: 111269
2010-08-17 19:13:45 +00:00
Nick Kledzik cceb1f2e67 add assembly implementation of modsi3 so compiler does not have to special case a - (a / b) * b optimization
llvm-svn: 109492
2010-07-27 06:24:32 +00:00
Stephen Canon 8770d3d367 Fix error in rep_clz on non-LP64 targets. Patch by Christoph Gerum
llvm-svn: 109416
2010-07-26 18:17:00 +00:00
Stephen Canon df69264765 Hand-tuning of single-precision soft-float comparison routines for ARM
llvm-svn: 107891
2010-07-08 17:45:05 +00:00
Nick Kledzik 9445ef8f4a fix arvm5 builds
llvm-svn: 107588
2010-07-04 18:29:01 +00:00
Stephen Canon 644ab08dec Initial implementation of double-precision soft-float division, moved a couple utility functions from the multiplications into the utility header
llvm-svn: 107586
2010-07-04 16:53:39 +00:00
Stephen Canon 9ae6fd58c4 Single-precision soft-float division
llvm-svn: 107579
2010-07-04 06:15:44 +00:00
Stephen Canon 909f6c7bc4 Further cleanup of ARM bswap implementations, thanks to John Tytgat
llvm-svn: 107576
2010-07-03 21:47:50 +00:00
Stephen Canon b84e7dc80e Marginally smaller implementations of bswap for ARMv4, ARMv5 that avoid the need to establish a frame
llvm-svn: 107555
2010-07-03 01:00:49 +00:00
Stephen Canon 7973295a19 Renamed unsigned->float routines to match GCC convention
llvm-svn: 107554
2010-07-03 00:56:03 +00:00
Nick Kledzik 209ac43b76 ARM before armv6 did not supprt 'rev' instruction
llvm-svn: 107548
2010-07-03 00:12:47 +00:00
Stephen Canon 04b97967dd [unsigned] int -> float soft-float conversions for single- and double-precision
llvm-svn: 107535
2010-07-02 23:05:46 +00:00
Stephen Canon 4be0d7ead9 float- and double-to-integer soft-float conversions for compiler-rt
llvm-svn: 107524
2010-07-02 22:10:58 +00:00
Stephen Canon e9946d0d3f ... and one more fix to remove some warnings in the new double -> float conversion
llvm-svn: 107409
2010-07-01 18:02:15 +00:00
Stephen Canon 74eaf1f66c Correction to previous commit which mistakenly included older versions of some files; now includes the correct LLVM license header
llvm-svn: 107408
2010-07-01 17:58:24 +00:00
Stephen Canon b1fdde1d01 Adding soft-float comparisons, addition, subtraction, multiplication and negation
llvm-svn: 107400
2010-07-01 15:52:42 +00:00
Nick Kledzik c6cacf9858 sjlj based personality requires a different name
llvm-svn: 103330
2010-05-07 23:44:20 +00:00
Nick Kledzik 8e7ebea0b9 add explicit alignment directives to assure arm code is 4-byte aligned
llvm-svn: 102030
2010-04-21 22:36:23 +00:00
Nick Kledzik 5b0a0629a3 add include of int_lib.h to match change to use compilerrt_abort()
llvm-svn: 101396
2010-04-15 20:37:56 +00:00
Nick Kledzik b3d3ec7091 <rdar://problem/7813254> check enable_execute_stack implementation
llvm-svn: 100036
2010-03-31 19:52:01 +00:00
Daniel Dunbar 587b1d419d Add new build option KERNEL_USE, which compiles with -mkernel and gets propogated to CFLAGS. Use this to call panic() instead of abort() when enabled.
llvm-svn: 100015
2010-03-31 17:00:48 +00:00
Daniel Dunbar f287008791 Use a private compilerrt_abort() define instead of calling abort directly.
- Fiddling with abort directly is annoying given the way we use system includes, although it would be nice to fix this so we could make sure calling abort directly is verboten.

llvm-svn: 100014
2010-03-31 17:00:45 +00:00
Nick Kledzik debb901045 add __sync_synchronize. Needed by compiler when emitting thumb1 with -fno-builtin
llvm-svn: 95132
2010-02-02 21:34:04 +00:00
Nick Kledzik ac02b5a09c fix return type of _Unwind_Exception.exception_cleanup
llvm-svn: 93983
2010-01-20 06:13:20 +00:00
Daniel Dunbar 4c43c2bc73 Split up switch.S and save_restore_d8_d15.S to follow one function per file convention.
llvm-svn: 93815
2010-01-19 00:01:10 +00:00
Daniel Dunbar f665b32a70 Add a VISIBILITY_HIDDEN option, which can be used to make all compiler-rt function definitions hidden/private extern.
llvm-svn: 93790
2010-01-18 22:19:34 +00:00
Daniel Dunbar 64a198d060 Unbreak symbol mangling in .s files, at least for Darwin/Linux.
llvm-svn: 93789
2010-01-18 22:19:25 +00:00
Daniel Dunbar ef89858e47 Add DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED for use in .S files -- restFP and saveFP don't get USER_LABEL_PREFIX prepended for some reason.
llvm-svn: 93788
2010-01-18 22:19:20 +00:00
Daniel Dunbar 6bcbef6230 Rename subdir 'Target' variable to 'Implementation' to be less overloaded.
llvm-svn: 93718
2010-01-18 06:49:09 +00:00
Daniel Dunbar 56e0eb9fc9 Simplify subdirectory makefiles, and be more robust by checking that they define the appropriate variables.
llvm-svn: 93714
2010-01-18 06:48:33 +00:00
Nick Kledzik 64eecd2de5 Fix copy/paste error. http://llvm.org/bugs/show_bug.cgi?id=572
llvm-svn: 93297
2010-01-13 05:30:28 +00:00
Rafael Espindola 393cb7c22d Use __USER_LABEL_PREFIX__ so that we don't add a _ prefix on ELF.
llvm-svn: 86542
2009-11-09 14:27:04 +00:00
Edward O'Callaghan 8f40ca3b8f Fix x86/x64 on Linux, Credit to Rafael Espindola.
llvm-svn: 86075
2009-11-04 23:52:51 +00:00
Edward O'Callaghan a8fa825177 Fix DragonFly BSD define in compiler-rt.
llvm-svn: 85726
2009-11-01 18:25:55 +00:00
Nick Kledzik d4b78d38d4 add __save_vfp_d8_d15_regs and __restore_vfp_d8_d15_regs for ARM
llvm-svn: 85531
2009-10-29 22:31:39 +00:00
Edward O'Callaghan a55dd008ad Update CMake build system with target arch source file lists.
llvm-svn: 85448
2009-10-29 00:07:46 +00:00
Daniel Dunbar 9ff9371bb7 Switch to using DEFINE_COMPILERRT_[PRIVATE_]FUNCTION to define function symbols inside .S files.
llvm-svn: 85264
2009-10-27 17:50:21 +00:00
Daniel Dunbar 7d50478889 Add assembly.h for use in .S files.
llvm-svn: 85263
2009-10-27 17:49:50 +00:00
Daniel Dunbar 805c49408f Update some .S file headers.
llvm-svn: 85262
2009-10-27 17:49:19 +00:00
Daniel Dunbar 247687360f Remove duplicate copy of int_lib.h, and update test script to find copy inside lib/.
Also, fix some brokenness in the test script w.r.t REMOTE.

llvm-svn: 85260
2009-10-27 17:48:46 +00:00
Shantonu Sen 33f6acbbf1 1) Remove cmake-specific #define usage from the exported
Block.h/Block_private.h headers, since clients won't know what to
set. These are moved into runtime.c as appropriate

2) Use cmake checks for CAS builtins, instead of guessing based on GCC
#defines (which aren't set by clang and llvm-gcc anyway)

3) "#pragma mark" isn't supported by FSF gcc, so "#if 0" it out. It
should still show up in IDEs that support it

4) Fix some compiler warnings. GCC 4.3.3 seems super strict about
%p. function pointers can't be cast to void * either.

5) Avoid a warning for apple_versioning.c that "ISO C does not allow
empty files"

llvm-svn: 82504
2009-09-22 00:49:12 +00:00
Nick Kledzik e80d44c943 update make rules so libcompiler-rt can be built for armv6 the Apple way
llvm-svn: 82185
2009-09-18 00:09:05 +00:00
Nick Kledzik 4efa121e40 add support for __switch* needed for switch statements in thumb codegen
llvm-svn: 82184
2009-09-18 00:07:52 +00:00
Nick Kledzik ad160c0330 add conversion functions and test cases for ARM
llvm-svn: 81809
2009-09-14 23:26:56 +00:00
Edward O'Callaghan 2e2d1a87f9 Update cmake files for arm support hooks.
llvm-svn: 81760
2009-09-14 12:45:07 +00:00
Nick Kledzik 0f312a09b2 fix typo in comment
llvm-svn: 81686
2009-09-13 18:34:39 +00:00
Nick Kledzik 9130011d5f add comparison functions for ARM
llvm-svn: 81597
2009-09-12 01:23:48 +00:00
Nick Kledzik b9c6e4a189 start adding implementation of arm *vfp routines with test cases
llvm-svn: 81558
2009-09-11 20:02:01 +00:00
Daniel Dunbar c91aeac18b Stub out structure for building armv{6,7} libs.
llvm-svn: 81482
2009-09-10 23:50:10 +00:00
Daniel Dunbar 85922561ee Unbreak building of assembly files (broken by my .s -> .S rename).
- Noticed & patched by Nick Kledzik.

 - This may expose portability issues in the .S files, if so we should either
   disable them on non-Darwin, or even better make them portable.

llvm-svn: 81476
2009-09-10 23:27:45 +00:00