comparison gcc/go/gofrontend/runtime.def @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
89 89
90 DEF_GO_RUNTIME(MAKESLICE64, "runtime.makeslice64", P3(TYPE, INT64, INT64), 90 DEF_GO_RUNTIME(MAKESLICE64, "runtime.makeslice64", P3(TYPE, INT64, INT64),
91 R1(SLICE)) 91 R1(SLICE))
92 92
93 93
94 // Make a map. 94 // Make a map with a hint and an (optional, unused) map structure.
95 DEF_GO_RUNTIME(MAKEMAP, "runtime.makemap", P4(TYPE, INT64, POINTER, POINTER), 95 DEF_GO_RUNTIME(MAKEMAP, "runtime.makemap", P3(TYPE, INT, POINTER),
96 R1(MAP)) 96 R1(MAP))
97 DEF_GO_RUNTIME(MAKEMAP64, "runtime.makemap64", P3(TYPE, INT64, POINTER),
98 R1(MAP))
99
100 // Make a map with no hint, or a small constant hint.
101 DEF_GO_RUNTIME(MAKEMAP_SMALL, "runtime.makemap_small", P0(), R1(MAP))
97 102
98 // Build a map from a composite literal. 103 // Build a map from a composite literal.
99 DEF_GO_RUNTIME(CONSTRUCT_MAP, "__go_construct_map", 104 DEF_GO_RUNTIME(CONSTRUCT_MAP, "__go_construct_map",
100 P5(POINTER, UINTPTR, UINTPTR, UINTPTR, POINTER), 105 P5(POINTER, UINTPTR, UINTPTR, UINTPTR, POINTER),
101 R1(MAP)) 106 R1(MAP))
132 // Range over a map, moving to the next map entry. 137 // Range over a map, moving to the next map entry.
133 DEF_GO_RUNTIME(MAPITERNEXT, "runtime.mapiternext", P1(POINTER), R0()) 138 DEF_GO_RUNTIME(MAPITERNEXT, "runtime.mapiternext", P1(POINTER), R0())
134 139
135 140
136 // Make a channel. 141 // Make a channel.
137 DEF_GO_RUNTIME(MAKECHAN, "runtime.makechan", P2(TYPE, INT64), R1(CHAN)) 142 DEF_GO_RUNTIME(MAKECHAN, "runtime.makechan", P2(TYPE, INT), R1(CHAN))
143 DEF_GO_RUNTIME(MAKECHAN64, "runtime.makechan64", P2(TYPE, INT64), R1(CHAN))
138 144
139 // Send a value on a channel. 145 // Send a value on a channel.
140 DEF_GO_RUNTIME(CHANSEND, "runtime.chansend1", P2(CHAN, POINTER), R0()) 146 DEF_GO_RUNTIME(CHANSEND, "runtime.chansend1", P2(CHAN, POINTER), R0())
141 147
142 // Receive a value from a channel. 148 // Receive a value from a channel.
144 150
145 // Receive a value from a channel returning whether it is closed. 151 // Receive a value from a channel returning whether it is closed.
146 DEF_GO_RUNTIME(CHANRECV2, "runtime.chanrecv2", P2(CHAN, POINTER), R1(BOOL)) 152 DEF_GO_RUNTIME(CHANRECV2, "runtime.chanrecv2", P2(CHAN, POINTER), R1(BOOL))
147 153
148 154
149 // Start building a select statement. 155 // Run a select, returning the index of the selected clause and
150 DEF_GO_RUNTIME(NEWSELECT, "runtime.newselect", P3(POINTER, INT64, INT32), R0()) 156 // whether that channel received a value.
151 157 DEF_GO_RUNTIME(SELECTGO, "runtime.selectgo", P3(POINTER, POINTER, INT),
152 // Add a default clause to a select statement. 158 R2(INT, BOOL))
153 DEF_GO_RUNTIME(SELECTDEFAULT, "runtime.selectdefault", P1(POINTER), R0())
154
155 // Add a send clause to a select statement.
156 DEF_GO_RUNTIME(SELECTSEND, "runtime.selectsend", P3(POINTER, CHAN, POINTER),
157 R0())
158
159 // Add a receive clause to a select statement.
160 DEF_GO_RUNTIME(SELECTRECV, "runtime.selectrecv",
161 P4(POINTER, CHAN, POINTER, BOOLPTR), R0())
162
163 // Run a select, returning the index of the selected clause.
164 DEF_GO_RUNTIME(SELECTGO, "runtime.selectgo", P1(POINTER), R1(INT))
165 159
166 160
167 // Panic. 161 // Panic.
168 DEF_GO_RUNTIME(GOPANIC, "runtime.gopanic", P1(EFACE), R0()) 162 DEF_GO_RUNTIME(GOPANIC, "runtime.gopanic", P1(EFACE), R0())
169 163
306 DEF_GO_RUNTIME(IFACEEFACEEQ, "runtime.ifaceefaceeq", P2(IFACE, EFACE), 300 DEF_GO_RUNTIME(IFACEEFACEEQ, "runtime.ifaceefaceeq", P2(IFACE, EFACE),
307 R1(BOOL)) 301 R1(BOOL))
308 302
309 303
310 // Set *dst = src where dst is a pointer to a pointer and src is a pointer. 304 // Set *dst = src where dst is a pointer to a pointer and src is a pointer.
311 DEF_GO_RUNTIME(WRITEBARRIERPTR, "runtime.writebarrierptr", 305 DEF_GO_RUNTIME(GCWRITEBARRIER, "runtime.gcWriteBarrier",
312 P2(POINTER, POINTER), R0()) 306 P2(POINTER, POINTER), R0())
313 307
314 // Set *dst = *src for an arbitrary type. 308 // Set *dst = *src for an arbitrary type.
315 DEF_GO_RUNTIME(TYPEDMEMMOVE, "runtime.typedmemmove", 309 DEF_GO_RUNTIME(TYPEDMEMMOVE, "runtime.typedmemmove",
316 P3(TYPE, POINTER, POINTER), R0()) 310 P3(TYPE, POINTER, POINTER), R0())
360 354
361 355
362 // Used for field tracking for data analysis. 356 // Used for field tracking for data analysis.
363 DEF_GO_RUNTIME(FIELDTRACK, "__go_fieldtrack", P1(POINTER), R0()) 357 DEF_GO_RUNTIME(FIELDTRACK, "__go_fieldtrack", P1(POINTER), R0())
364 358
359
360 // Unreachable code.
361 DEF_GO_RUNTIME(UNREACHABLE, "__builtin_unreachable", P0(), R0())
365 362
366 // Remove helper macros. 363 // Remove helper macros.
367 #undef ABFT6 364 #undef ABFT6
368 #undef ABFT2 365 #undef ABFT2
369 #undef P0 366 #undef P0