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_NEWARRAYMT, 66 RTLSYM_NEWARRAYMIT, 67 RTLSYM_NEWARRAYMTX, 68 RTLSYM_NEWARRAYMITX, 69 RTLSYM_ARRAYLITERALT, 70 RTLSYM_ARRAYLITERALTX, 71 RTLSYM_ASSOCARRAYLITERALT, 72 RTLSYM_ASSOCARRAYLITERALTX, 73 RTLSYM_CALLFINALIZER, 74 RTLSYM_CALLINTERFACEFINALIZER, 75 RTLSYM_DELCLASS, 76 RTLSYM_DELINTERFACE, 77 RTLSYM_DELSTRUCT, 78 RTLSYM_ALLOCMEMORY, 79 RTLSYM_DELARRAY, 80 RTLSYM_DELARRAYT, 81 RTLSYM_DELMEMORY, 82 RTLSYM_INTERFACE, 83 RTLSYM_DYNAMIC_CAST, 84 RTLSYM_INTERFACE_CAST, 85 RTLSYM_FATEXIT, 86 RTLSYM_ARRAYCATT, 87 RTLSYM_ARRAYCATNT, 88 RTLSYM_ARRAYCATNTX, 89 RTLSYM_ARRAYAPPENDT, 90 RTLSYM_ARRAYAPPENDCT, 91 RTLSYM_ARRAYAPPENDCTX, 92 RTLSYM_ARRAYAPPENDCD, 93 RTLSYM_ARRAYAPPENDWD, 94 RTLSYM_ARRAYSETLENGTHT, 95 RTLSYM_ARRAYSETLENGTHIT, 96 RTLSYM_ARRAYCOPY, 97 RTLSYM_ARRAYASSIGN, 98 RTLSYM_ARRAYASSIGN_R, 99 RTLSYM_ARRAYASSIGN_L, 100 RTLSYM_ARRAYCTOR, 101 RTLSYM_ARRAYSETASSIGN, 102 RTLSYM_ARRAYSETCTOR, 103 RTLSYM_ARRAYCAST, // unused 104 RTLSYM_ARRAYEQ, // unused 105 RTLSYM_ARRAYEQ2, 106 RTLSYM_ARRAYCMP, // unused 107 RTLSYM_ARRAYCMP2, // unused 108 RTLSYM_ARRAYCMPCHAR, // unused 109 RTLSYM_OBJ_EQ, // unused 110 RTLSYM_OBJ_CMP, // unused 111 112 RTLSYM_EXCEPT_HANDLER2, 113 RTLSYM_EXCEPT_HANDLER3, 114 RTLSYM_CPP_HANDLER, 115 RTLSYM_D_HANDLER, 116 RTLSYM_D_LOCAL_UNWIND2, 117 RTLSYM_LOCAL_UNWIND2, 118 RTLSYM_UNWIND_RESUME, 119 RTLSYM_PERSONALITY, 120 RTLSYM_BEGIN_CATCH, 121 RTLSYM_CXA_BEGIN_CATCH, 122 RTLSYM_CXA_END_CATCH, 123 124 RTLSYM_TLS_INDEX, 125 RTLSYM_TLS_ARRAY, 126 RTLSYM_AHSHIFT, 127 128 RTLSYM_HDIFFN, 129 RTLSYM_HDIFFF, 130 RTLSYM_INTONLY, 131 132 RTLSYM_EXCEPT_LIST, 133 RTLSYM_SETJMP3, 134 RTLSYM_LONGJMP, 135 RTLSYM_ALLOCA, 136 RTLSYM_CPP_LONGJMP, 137 RTLSYM_PTRCHK, 138 RTLSYM_CHKSTK, 139 RTLSYM_TRACE_PRO_N, 140 RTLSYM_TRACE_PRO_F, 141 RTLSYM_TRACE_EPI_N, 142 RTLSYM_TRACE_EPI_F, 143 RTLSYM_TRACE_CPRO, 144 RTLSYM_TRACE_CEPI, 145 146 RTLSYM_TRACENEWCLASS, 147 RTLSYM_TRACENEWARRAYT, 148 RTLSYM_TRACENEWARRAYIT, 149 RTLSYM_TRACENEWARRAYMTX, 150 RTLSYM_TRACENEWARRAYMITX, 151 RTLSYM_TRACENEWITEMT, 152 RTLSYM_TRACENEWITEMIT, 153 RTLSYM_TRACECALLFINALIZER, 154 RTLSYM_TRACECALLINTERFACEFINALIZER, 155 RTLSYM_TRACEDELCLASS, 156 RTLSYM_TRACEDELINTERFACE, 157 RTLSYM_TRACEDELSTRUCT, 158 RTLSYM_TRACEDELARRAYT, 159 RTLSYM_TRACEDELMEMORY, 160 RTLSYM_TRACEARRAYLITERALTX, 161 RTLSYM_TRACEASSOCARRAYLITERALTX, 162 RTLSYM_TRACEARRAYCATT, 163 RTLSYM_TRACEARRAYCATNTX, 164 RTLSYM_TRACEARRAYAPPENDT, 165 RTLSYM_TRACEARRAYAPPENDCTX, 166 RTLSYM_TRACEARRAYAPPENDCD, 167 RTLSYM_TRACEARRAYAPPENDWD, 168 RTLSYM_TRACEARRAYSETLENGTHT, 169 RTLSYM_TRACEARRAYSETLENGTHIT, 170 RTLSYM_TRACEALLOCMEMORY, 171 172 RTLSYM_C_ASSERT, 173 RTLSYM_C__ASSERT, 174 RTLSYM_C__ASSERT_FAIL, 175 RTLSYM_C__ASSERT_RTN, 176 177 RTLSYM_MAX 178 } 179 180 extern (C++): 181 182 nothrow: 183 184 Symbol *getRtlsym(int i); 185 Symbol *getRtlsymPersonality();