1 /** 2 * Compiler implementation of the 3 * $(LINK2 http://www.dlang.org, D programming language). 4 * 5 * Copyright: Copyright (C) 1994-1998 by Symantec 6 * Copyright (C) 2000-2020 by The D Language Foundation, All Rights Reserved 7 * Authors: $(LINK2 http://www.digitalmars.com, Walter Bright) 8 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 9 * Source: https://github.com/dlang/dmd/blob/master/src/dmd/backend/_rtlsym.d 10 * Documentation: https://dlang.org/phobos/dmd_backend_rtlsym.html 11 */ 12 13 module dmd.backend.rtlsym; 14 15 import dmd.backend.cc : Symbol; 16 17 enum 18 { 19 RTLSYM_THROW, 20 RTLSYM_THROWC, 21 RTLSYM_THROWDWARF, 22 RTLSYM_MONITOR_HANDLER, 23 RTLSYM_MONITOR_PROLOG, 24 RTLSYM_MONITOR_EPILOG, 25 RTLSYM_DCOVER, 26 RTLSYM_DCOVER2, 27 RTLSYM_DASSERT, 28 RTLSYM_DASSERTP, 29 RTLSYM_DASSERT_MSG, 30 RTLSYM_DUNITTEST, 31 RTLSYM_DUNITTESTP, 32 RTLSYM_DUNITTEST_MSG, 33 RTLSYM_DARRAY, 34 RTLSYM_DARRAYP, 35 RTLSYM_DINVARIANT, 36 RTLSYM_MEMCPY, 37 RTLSYM_MEMSET8, 38 RTLSYM_MEMSET16, 39 RTLSYM_MEMSET32, 40 RTLSYM_MEMSET64, 41 RTLSYM_MEMSET128, 42 RTLSYM_MEMSET128ii, 43 RTLSYM_MEMSET80, 44 RTLSYM_MEMSET160, 45 RTLSYM_MEMSETFLOAT, 46 RTLSYM_MEMSETDOUBLE, 47 RTLSYM_MEMSETSIMD, 48 RTLSYM_MEMSETN, 49 RTLSYM_MODULO, 50 RTLSYM_MONITORENTER, 51 RTLSYM_MONITOREXIT, 52 RTLSYM_CRITICALENTER, 53 RTLSYM_CRITICALEXIT, 54 RTLSYM_SWITCH_STRING, // unused 55 RTLSYM_SWITCH_USTRING, // unused 56 RTLSYM_SWITCH_DSTRING, // unused 57 RTLSYM_DSWITCHERR, 58 RTLSYM_DHIDDENFUNC, 59 RTLSYM_NEWCLASS, 60 RTLSYM_NEWTHROW, 61 RTLSYM_NEWARRAYT, 62 RTLSYM_NEWARRAYIT, 63 RTLSYM_NEWITEMT, 64 RTLSYM_NEWITEMIT, 65 RTLSYM_NEWARRAYMTX, 66 RTLSYM_NEWARRAYMITX, 67 RTLSYM_ARRAYLITERALTX, 68 RTLSYM_ASSOCARRAYLITERALTX, 69 RTLSYM_CALLFINALIZER, 70 RTLSYM_CALLINTERFACEFINALIZER, 71 RTLSYM_DELCLASS, 72 RTLSYM_DELINTERFACE, 73 RTLSYM_DELSTRUCT, 74 RTLSYM_ALLOCMEMORY, 75 RTLSYM_DELARRAYT, 76 RTLSYM_DELMEMORY, 77 RTLSYM_INTERFACE, 78 RTLSYM_DYNAMIC_CAST, 79 RTLSYM_INTERFACE_CAST, 80 RTLSYM_FATEXIT, 81 RTLSYM_ARRAYCATT, 82 RTLSYM_ARRAYCATNTX, 83 RTLSYM_ARRAYAPPENDT, 84 RTLSYM_ARRAYAPPENDCTX, 85 RTLSYM_ARRAYAPPENDCD, 86 RTLSYM_ARRAYAPPENDWD, 87 RTLSYM_ARRAYSETLENGTHT, 88 RTLSYM_ARRAYSETLENGTHIT, 89 RTLSYM_ARRAYCOPY, 90 RTLSYM_ARRAYASSIGN, 91 RTLSYM_ARRAYASSIGN_R, 92 RTLSYM_ARRAYASSIGN_L, 93 RTLSYM_ARRAYCTOR, 94 RTLSYM_ARRAYSETASSIGN, 95 RTLSYM_ARRAYSETCTOR, 96 RTLSYM_ARRAYCAST, // unused 97 RTLSYM_ARRAYEQ, // unused 98 RTLSYM_ARRAYEQ2, 99 RTLSYM_ARRAYCMP, // unused 100 RTLSYM_ARRAYCMP2, // unused 101 RTLSYM_ARRAYCMPCHAR, // unused 102 RTLSYM_OBJ_EQ, // unused 103 RTLSYM_OBJ_CMP, // unused 104 105 RTLSYM_EXCEPT_HANDLER2, 106 RTLSYM_EXCEPT_HANDLER3, 107 RTLSYM_CPP_HANDLER, 108 RTLSYM_D_HANDLER, 109 RTLSYM_D_LOCAL_UNWIND2, 110 RTLSYM_LOCAL_UNWIND2, 111 RTLSYM_UNWIND_RESUME, 112 RTLSYM_PERSONALITY, 113 RTLSYM_BEGIN_CATCH, 114 RTLSYM_CXA_BEGIN_CATCH, 115 RTLSYM_CXA_END_CATCH, 116 117 RTLSYM_TLS_INDEX, 118 RTLSYM_TLS_ARRAY, 119 RTLSYM_AHSHIFT, 120 121 RTLSYM_HDIFFN, 122 RTLSYM_HDIFFF, 123 RTLSYM_INTONLY, 124 125 RTLSYM_EXCEPT_LIST, 126 RTLSYM_SETJMP3, 127 RTLSYM_LONGJMP, 128 RTLSYM_ALLOCA, 129 RTLSYM_CPP_LONGJMP, 130 RTLSYM_PTRCHK, 131 RTLSYM_CHKSTK, 132 RTLSYM_TRACE_PRO_N, 133 RTLSYM_TRACE_PRO_F, 134 RTLSYM_TRACE_EPI_N, 135 RTLSYM_TRACE_EPI_F, 136 RTLSYM_TRACE_CPRO, 137 RTLSYM_TRACE_CEPI, 138 139 RTLSYM_TRACENEWCLASS, 140 RTLSYM_TRACENEWARRAYT, 141 RTLSYM_TRACENEWARRAYIT, 142 RTLSYM_TRACENEWARRAYMTX, 143 RTLSYM_TRACENEWARRAYMITX, 144 RTLSYM_TRACENEWITEMT, 145 RTLSYM_TRACENEWITEMIT, 146 RTLSYM_TRACECALLFINALIZER, 147 RTLSYM_TRACECALLINTERFACEFINALIZER, 148 RTLSYM_TRACEDELCLASS, 149 RTLSYM_TRACEDELINTERFACE, 150 RTLSYM_TRACEDELSTRUCT, 151 RTLSYM_TRACEDELARRAYT, 152 RTLSYM_TRACEDELMEMORY, 153 RTLSYM_TRACEARRAYLITERALTX, 154 RTLSYM_TRACEASSOCARRAYLITERALTX, 155 RTLSYM_TRACEARRAYCATT, 156 RTLSYM_TRACEARRAYCATNTX, 157 RTLSYM_TRACEARRAYAPPENDT, 158 RTLSYM_TRACEARRAYAPPENDCTX, 159 RTLSYM_TRACEARRAYAPPENDCD, 160 RTLSYM_TRACEARRAYAPPENDWD, 161 RTLSYM_TRACEARRAYSETLENGTHT, 162 RTLSYM_TRACEARRAYSETLENGTHIT, 163 RTLSYM_TRACEALLOCMEMORY, 164 165 RTLSYM_C_ASSERT, 166 RTLSYM_C__ASSERT, 167 RTLSYM_C__ASSERT_FAIL, 168 RTLSYM_C__ASSERT_RTN, 169 170 RTLSYM_MAX 171 } 172 173 extern (C++): 174 175 nothrow: 176 177 Symbol *getRtlsym(int i); 178 Symbol *getRtlsymPersonality();