github.com/tidwall/go@v0.0.0-20170415222209-6694a6888b7d/src/cmd/compile/internal/gc/builtin/runtime.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // NOTE: If you change this file you must run "go generate" 6 // to update builtin.go. This is not done automatically 7 // to avoid depending on having a working compiler binary. 8 9 // +build ignore 10 11 package runtime 12 13 // emitted by compiler, not referred to by go programs 14 15 import "unsafe" 16 17 func newobject(typ *byte) *any 18 func panicindex() 19 func panicslice() 20 func panicdivide() 21 func throwinit() 22 func panicwrap() 23 24 func gopanic(interface{}) 25 func gorecover(*int32) interface{} 26 func goschedguarded() 27 28 func printbool(bool) 29 func printfloat(float64) 30 func printint(int64) 31 func printhex(uint64) 32 func printuint(uint64) 33 func printcomplex(complex128) 34 func printstring(string) 35 func printpointer(any) 36 func printiface(any) 37 func printeface(any) 38 func printslice(any) 39 func printnl() 40 func printsp() 41 func printlock() 42 func printunlock() 43 44 func concatstring2(*[32]byte, string, string) string 45 func concatstring3(*[32]byte, string, string, string) string 46 func concatstring4(*[32]byte, string, string, string, string) string 47 func concatstring5(*[32]byte, string, string, string, string, string) string 48 func concatstrings(*[32]byte, []string) string 49 50 func cmpstring(string, string) int 51 func eqstring(string, string) bool 52 func intstring(*[4]byte, int64) string 53 func slicebytetostring(*[32]byte, []byte) string 54 func slicebytetostringtmp([]byte) string 55 func slicerunetostring(*[32]byte, []rune) string 56 func stringtoslicebyte(*[32]byte, string) []byte 57 func stringtoslicerune(*[32]rune, string) []rune 58 func decoderune(string, int) (retv rune, retk int) 59 func slicecopy(to any, fr any, wid uintptr) int 60 func slicestringcopy(to any, fr any) int 61 62 // interface conversions 63 func convI2I(typ *byte, elem any) (ret any) 64 65 func convT2E(typ *byte, elem *any) (ret any) 66 func convT2E16(typ *byte, elem *any) (ret any) 67 func convT2E32(typ *byte, elem *any) (ret any) 68 func convT2E64(typ *byte, elem *any) (ret any) 69 func convT2Estring(typ *byte, elem *any) (ret any) 70 func convT2Eslice(typ *byte, elem *any) (ret any) 71 func convT2Enoptr(typ *byte, elem *any) (ret any) 72 73 func convT2I(tab *byte, elem *any) (ret any) 74 func convT2I16(tab *byte, elem *any) (ret any) 75 func convT2I32(tab *byte, elem *any) (ret any) 76 func convT2I64(tab *byte, elem *any) (ret any) 77 func convT2Istring(tab *byte, elem *any) (ret any) 78 func convT2Islice(tab *byte, elem *any) (ret any) 79 func convT2Inoptr(tab *byte, elem *any) (ret any) 80 81 // interface type assertions x.(T) 82 func assertE2I(typ *byte, iface any) (ret any) 83 func assertE2I2(typ *byte, iface any) (ret any, b bool) 84 func assertI2I(typ *byte, iface any) (ret any) 85 func assertI2I2(typ *byte, iface any) (ret any, b bool) 86 func panicdottypeE(have, want, iface *byte) 87 func panicdottypeI(have, want, iface *byte) 88 func panicnildottype(want *byte) 89 90 // interface equality. Type/itab pointers are already known to be equal, so 91 // we only need to pass one. 92 func ifaceeq(tab *uintptr, x, y unsafe.Pointer) (ret bool) 93 func efaceeq(typ *uintptr, x, y unsafe.Pointer) (ret bool) 94 95 // *byte is really *runtime.Type 96 func makemap(mapType *byte, hint int64, mapbuf *any, bucketbuf *any) (hmap map[any]any) 97 func mapaccess1(mapType *byte, hmap map[any]any, key *any) (val *any) 98 func mapaccess1_fast32(mapType *byte, hmap map[any]any, key any) (val *any) 99 func mapaccess1_fast64(mapType *byte, hmap map[any]any, key any) (val *any) 100 func mapaccess1_faststr(mapType *byte, hmap map[any]any, key any) (val *any) 101 func mapaccess1_fat(mapType *byte, hmap map[any]any, key *any, zero *byte) (val *any) 102 func mapaccess2(mapType *byte, hmap map[any]any, key *any) (val *any, pres bool) 103 func mapaccess2_fast32(mapType *byte, hmap map[any]any, key any) (val *any, pres bool) 104 func mapaccess2_fast64(mapType *byte, hmap map[any]any, key any) (val *any, pres bool) 105 func mapaccess2_faststr(mapType *byte, hmap map[any]any, key any) (val *any, pres bool) 106 func mapaccess2_fat(mapType *byte, hmap map[any]any, key *any, zero *byte) (val *any, pres bool) 107 func mapassign(mapType *byte, hmap map[any]any, key *any) (val *any) 108 func mapassign_fast32(mapType *byte, hmap map[any]any, key any) (val *any) 109 func mapassign_fast64(mapType *byte, hmap map[any]any, key any) (val *any) 110 func mapassign_faststr(mapType *byte, hmap map[any]any, key any) (val *any) 111 func mapiterinit(mapType *byte, hmap map[any]any, hiter *any) 112 func mapdelete(mapType *byte, hmap map[any]any, key *any) 113 func mapdelete_fast32(mapType *byte, hmap map[any]any, key any) 114 func mapdelete_fast64(mapType *byte, hmap map[any]any, key any) 115 func mapdelete_faststr(mapType *byte, hmap map[any]any, key any) 116 func mapiternext(hiter *any) 117 118 // *byte is really *runtime.Type 119 func makechan(chanType *byte, hint int64) (hchan chan any) 120 func chanrecv1(hchan <-chan any, elem *any) 121 func chanrecv2(hchan <-chan any, elem *any) bool 122 func chansend1(hchan chan<- any, elem *any) 123 func closechan(hchan any) 124 125 var writeBarrier struct { 126 enabled bool 127 pad [3]byte 128 needed bool 129 cgo bool 130 alignme uint64 131 } 132 133 func writebarrierptr(dst *any, src any) 134 135 // *byte is really *runtime.Type 136 func typedmemmove(typ *byte, dst *any, src *any) 137 func typedmemclr(typ *byte, dst *any) 138 func typedslicecopy(typ *byte, dst any, src any) int 139 140 func selectnbsend(hchan chan<- any, elem *any) bool 141 func selectnbrecv(elem *any, hchan <-chan any) bool 142 func selectnbrecv2(elem *any, received *bool, hchan <-chan any) bool 143 144 func newselect(sel *byte, selsize int64, size int32) 145 func selectsend(sel *byte, hchan chan<- any, elem *any) 146 func selectrecv(sel *byte, hchan <-chan any, elem *any, received *bool) 147 func selectdefault(sel *byte) 148 func selectgo(sel *byte) int 149 func block() 150 151 func makeslice(typ *byte, len int, cap int) (ary []any) 152 func makeslice64(typ *byte, len int64, cap int64) (ary []any) 153 func growslice(typ *byte, old []any, cap int) (ary []any) 154 func memmove(to *any, frm *any, length uintptr) 155 func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) 156 func memclrHasPointers(ptr unsafe.Pointer, n uintptr) 157 158 func memequal(x, y *any, size uintptr) bool 159 func memequal8(x, y *any) bool 160 func memequal16(x, y *any) bool 161 func memequal32(x, y *any) bool 162 func memequal64(x, y *any) bool 163 func memequal128(x, y *any) bool 164 165 // only used on 32-bit 166 func int64div(int64, int64) int64 167 func uint64div(uint64, uint64) uint64 168 func int64mod(int64, int64) int64 169 func uint64mod(uint64, uint64) uint64 170 func float64toint64(float64) int64 171 func float64touint64(float64) uint64 172 func float64touint32(float64) uint32 173 func int64tofloat64(int64) float64 174 func uint64tofloat64(uint64) float64 175 func uint32tofloat64(uint32) float64 176 177 func complex128div(num complex128, den complex128) (quo complex128) 178 179 // race detection 180 func racefuncenter(uintptr) 181 func racefuncexit() 182 func raceread(uintptr) 183 func racewrite(uintptr) 184 func racereadrange(addr, size uintptr) 185 func racewriterange(addr, size uintptr) 186 187 // memory sanitizer 188 func msanread(addr, size uintptr) 189 func msanwrite(addr, size uintptr) 190 191 // architecture variants 192 var support_popcnt bool