1 /**
2  * Compiler runtime function symbols
3  *
4  * Compiler implementation of the
5  * $(LINK2 https://www.dlang.org, D programming language).
6  *
7  * Copyright:   Copyright (C) 1994-1998 by Symantec
8  *              Copyright (C) 2000-2023 by The D Language Foundation, All Rights Reserved
9  * Authors:     $(LINK2 https://www.digitalmars.com, Walter Bright)
10  * License:     $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
11  * Source:      https://github.com/dlang/dmd/blob/master/src/dmd/backend/_rtlsym.d
12  * Documentation: https://dlang.org/phobos/dmd_backend_rtlsym.html
13  */
14 
15 module dmd.backend.rtlsym;
16 
17 import dmd.backend.cc : Symbol;
18 
19 enum RTLSYM
20 {
21     THROWC,
22     THROWDWARF,
23     MONITOR_HANDLER,
24     MONITOR_PROLOG,
25     MONITOR_EPILOG,
26     DCOVER2,
27     DASSERT,
28     DASSERTP,
29     DASSERT_MSG,
30     DUNITTEST,
31     DUNITTESTP,
32     DUNITTEST_MSG,
33     DARRAYP,
34     DARRAY_SLICEP,
35     DARRAY_INDEXP,
36     DINVARIANT,
37     MEMCPY,
38     MEMSET8,
39     MEMSET16,
40     MEMSET32,
41     MEMSET64,
42     MEMSET128,
43     MEMSET128ii,
44     MEMSET80,
45     MEMSET160,
46     MEMSETFLOAT,
47     MEMSETDOUBLE,
48     MEMSETSIMD,
49     MEMSETN,
50     NEWCLASS,
51     NEWTHROW,
52     NEWARRAYT,
53     NEWARRAYIT,
54     NEWITEMT,
55     NEWITEMIT,
56     NEWARRAYMTX,
57     NEWARRAYMITX,
58     ARRAYLITERALTX,
59     ASSOCARRAYLITERALTX,
60     CALLFINALIZER,
61     CALLINTERFACEFINALIZER,
62     ALLOCMEMORY,
63     DYNAMIC_CAST,
64     INTERFACE_CAST,
65     ARRAYCATT,
66     ARRAYCATNTX,
67     ARRAYAPPENDT,
68     ARRAYAPPENDCTX,
69     ARRAYAPPENDCD,
70     ARRAYAPPENDWD,
71     ARRAYSETLENGTHT,
72     ARRAYSETLENGTHIT,
73     ARRAYCOPY,
74     ARRAYASSIGN,
75     ARRAYASSIGN_R,
76     ARRAYASSIGN_L,
77     ARRAYSETASSIGN,
78     ARRAYEQ2,
79     AANEW,
80     AAEQUAL,
81     AAINX,
82     AADELX,
83     AAGETY,
84     AAGETRVALUEX,
85 
86     EXCEPT_HANDLER3,
87     CPP_HANDLER,
88     D_HANDLER,
89     D_LOCAL_UNWIND2,
90     LOCAL_UNWIND2,
91     UNWIND_RESUME,
92     PERSONALITY,
93     BEGIN_CATCH,
94     CXA_BEGIN_CATCH,
95     CXA_END_CATCH,
96 
97     TLS_INDEX,
98     TLS_ARRAY,
99     AHSHIFT,
100 
101     HDIFFN,
102     HDIFFF,
103     INTONLY,
104 
105     EXCEPT_LIST,
106     SETJMP3,
107     LONGJMP,
108     ALLOCA,
109     CPP_LONGJMP,
110     PTRCHK,
111     CHKSTK,
112     TRACE_PRO_N,
113     TRACE_PRO_F,
114     TRACE_EPI_N,
115     TRACE_EPI_F,
116 
117     TRACENEWCLASS,
118     TRACENEWARRAYT,
119     TRACENEWARRAYIT,
120     TRACENEWARRAYMTX,
121     TRACENEWARRAYMITX,
122     TRACENEWITEMT,
123     TRACENEWITEMIT,
124     TRACECALLFINALIZER,
125     TRACECALLINTERFACEFINALIZER,
126     TRACEARRAYLITERALTX,
127     TRACEASSOCARRAYLITERALTX,
128     TRACEARRAYCATT,
129     TRACEARRAYCATNTX,
130     TRACEARRAYAPPENDT,
131     TRACEARRAYAPPENDCTX,
132     TRACEARRAYAPPENDCD,
133     TRACEARRAYAPPENDWD,
134     TRACEARRAYSETLENGTHT,
135     TRACEARRAYSETLENGTHIT,
136     TRACEALLOCMEMORY,
137 
138     C_ASSERT,
139     C__ASSERT,
140     C__ASSERT_FAIL,
141     C__ASSERT_RTN,
142 
143     CXA_ATEXIT
144 }
145 
146 @safe:
147 
148 public import dmd.backend.drtlsym : getRtlsym, getRtlsymPersonality;