| OLD | NEW |
| (Empty) |
| 1 # NOTE: this is a machine readable list of symbols that can legally be used | |
| 2 # by bitcode without being defined by bitcode because they are | |
| 3 # * linker-defined | |
| 4 # * provided by native libraries | |
| 5 # * known to ALL llc backends | |
| 6 # Empty lines and lines starting with '#' are ignored | |
| 7 # | |
| 8 # One way to use this list and check a bunch of pexes is: | |
| 9 # | |
| 10 # for i in scons-out/nacl-x86-64-pnacl/obj/tests/*/*pexe ; do | |
| 11 # echo $i | |
| 12 # toolchain/pnacl_linux_x86_64/arm-none-linux-gnueabi/bin/llvm-ld \ | |
| 13 # -o xxx $i --nacl-abi-check --nacl-legal-undefs \ | |
| 14 # tools/llvm/non_bitcode_symbols.txt | |
| 15 # | |
| 16 # done | |
| 17 # | |
| 18 ###################################################################### | |
| 19 | |
| 20 # llvm buitins | |
| 21 # TODO(robertm): there are likely a few more missing | |
| 22 llvm.memcpy.p0i8.p0i8.i32 | |
| 23 llvm.memset.p0i8.i32 | |
| 24 llvm.memset.p0i8.i64 | |
| 25 llvm.memmove.p0i8.p0i8.i32 | |
| 26 | |
| 27 llvm.memory.barrier | |
| 28 llvm.atomic.cmp.swap.i32.p0i32 | |
| 29 llvm.atomic.load.add.i32.p0i32 | |
| 30 | |
| 31 # used to abstract away exception handling | |
| 32 llvm.eh.exception | |
| 33 llvm.eh.selector | |
| 34 llvm.eh.typeid.for | |
| 35 | |
| 36 llvm.flt.rounds | |
| 37 | |
| 38 # unwind related | |
| 39 llvm.returnaddress | |
| 40 llvm.eh.dwarf.cfa | |
| 41 | |
| 42 # TODO(robertm): ???? | |
| 43 llvm.stackrestore | |
| 44 llvm.stacksave | |
| 45 | |
| 46 # for example stores to zero addresses get optimized to this | |
| 47 llvm.trap | |
| 48 | |
| 49 # TODO(robertm): ???? try to eliminate this | |
| 50 llvm.uadd.with.overflow.i32 | |
| 51 | |
| 52 # va_list intrinsics | |
| 53 llvm.va_end | |
| 54 llvm.va_start | |
| 55 | |
| 56 # linkerdefined symbols | |
| 57 __fini_array_end | |
| 58 __fini_array_start | |
| 59 __init_array_end | |
| 60 __init_array_start | |
| 61 __preinit_array_end | |
| 62 __preinit_array_start | |
| 63 __tls_template_end | |
| 64 __tls_template_start | |
| 65 __tls_template_tdata_end | |
| 66 | |
| 67 # currently provided by libgcc_eh and referenced by our startup code | |
| 68 # Could be replaced by dummies when exceptions are not used | |
| 69 __deregister_frame_info | |
| 70 __register_frame_info | |
| 71 | |
| 72 # these are most of the remaining functions provided by libgcc_eh | |
| 73 _Unwind_DeleteException | |
| 74 _Unwind_GetDataRelBase | |
| 75 _Unwind_GetIP | |
| 76 _Unwind_GetLanguageSpecificData | |
| 77 _Unwind_GetRegionStart | |
| 78 _Unwind_GetTextRelBase | |
| 79 _Unwind_PNaClSetResult0 | |
| 80 _Unwind_PNaClSetResult1 | |
| 81 _Unwind_RaiseException | |
| 82 _Unwind_Resume_or_Rethrow | |
| 83 _Unwind_SetIP | |
| 84 _Unwind_Backtrace | |
| 85 _Unwind_GetCFA | |
| 86 | |
| 87 # tls related intrinsics | |
| 88 # TODO(sehr): maybe mark them as intrinsics | |
| 89 __nacl_tdb_effective_payload_size | |
| 90 __nacl_tdb_offset_in_tls | |
| 91 __nacl_tls_aligment | |
| 92 | |
| 93 # misc | |
| 94 __nacl_return_address_size | |
| 95 | |
| 96 # setjmp/longjmp | |
| 97 # TODO(robertm): determine whether these are intrinsics or function calls | |
| 98 longjmp | |
| 99 setjmp | |
| 100 | |
| 101 # math | |
| 102 # these may occur even if they not really used because of the | |
| 103 # tools/llvm/llvm-preserve.ll magic | |
| 104 # c.f.: http://code.google.com/p/nativeclient/issues/detail?id=842 | |
| 105 cos | |
| 106 cosf | |
| 107 pow | |
| 108 powf | |
| 109 sin | |
| 110 sinf | |
| 111 sqrt | |
| 112 sqrtf | |
| 113 fabs | |
| 114 | |
| 115 # a weak symbol declared in: src/untrusted/pthread/nc_thread.c | |
| 116 __thread_exit_hook | |
| 117 | |
| 118 # these need to be investigated: | |
| 119 memmove | |
| 120 llvm.sqrt.f64 | |
| 121 llvm.sqrt.f32 | |
| 122 | |
| OLD | NEW |