Mercurial > hg > CbC > CbC_gcc
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 |