github.com/q45/go@v0.0.0-20151101211701-a4fb8c13db3f/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 PACKAGE
    12  
    13  // emitted by compiler, not referred to by go programs
    14  
    15  func newobject(typ *byte) *any
    16  func panicindex()
    17  func panicslice()
    18  func panicdivide()
    19  func throwreturn()
    20  func throwinit()
    21  func panicwrap(string, string, string)
    22  
    23  func gopanic(interface{})
    24  func gorecover(*int32) interface{}
    25  
    26  func printbool(bool)
    27  func printfloat(float64)
    28  func printint(int64)
    29  func printhex(uint64)
    30  func printuint(uint64)
    31  func printcomplex(complex128)
    32  func printstring(string)
    33  func printpointer(any)
    34  func printiface(any)
    35  func printeface(any)
    36  func printslice(any)
    37  func printnl()
    38  func printsp()
    39  func printlock()
    40  func printunlock()
    41  
    42  func concatstring2(*[32]byte, string, string) string
    43  func concatstring3(*[32]byte, string, string, string) string
    44  func concatstring4(*[32]byte, string, string, string, string) string
    45  func concatstring5(*[32]byte, string, string, string, string, string) string
    46  func concatstrings(*[32]byte, []string) string
    47  
    48  func cmpstring(string, string) int
    49  func eqstring(string, string) bool
    50  func intstring(*[4]byte, int64) string
    51  func slicebytetostring(*[32]byte, []byte) string
    52  func slicebytetostringtmp([]byte) string
    53  func slicerunetostring(*[32]byte, []rune) string
    54  func stringtoslicebyte(*[32]byte, string) []byte
    55  func stringtoslicebytetmp(string) []byte
    56  func stringtoslicerune(*[32]rune, string) []rune
    57  func stringiter(string, int) int
    58  func stringiter2(string, int) (retk int, retv rune)
    59  func slicecopy(to any, fr any, wid uintptr) int
    60  func slicestringcopy(to any, fr any) int
    61  
    62  // interface conversions
    63  func typ2Itab(typ *byte, typ2 *byte, cache **byte) (ret *byte)
    64  func convI2E(elem any) (ret any)
    65  func convI2I(typ *byte, elem any) (ret any)
    66  func convT2E(typ *byte, elem, buf *any) (ret any)
    67  func convT2I(typ *byte, typ2 *byte, cache **byte, elem, buf *any) (ret any)
    68  
    69  // interface type assertions  x.(T)
    70  func assertE2E(typ *byte, iface any, ret *any)
    71  func assertE2E2(typ *byte, iface any, ret *any) bool
    72  func assertE2I(typ *byte, iface any, ret *any)
    73  func assertE2I2(typ *byte, iface any, ret *any) bool
    74  func assertE2T(typ *byte, iface any, ret *any)
    75  func assertE2T2(typ *byte, iface any, ret *any) bool
    76  func assertI2E(typ *byte, iface any, ret *any)
    77  func assertI2E2(typ *byte, iface any, ret *any) bool
    78  func assertI2I(typ *byte, iface any, ret *any)
    79  func assertI2I2(typ *byte, iface any, ret *any) bool
    80  func assertI2T(typ *byte, iface any, ret *any)
    81  func assertI2T2(typ *byte, iface any, ret *any) bool
    82  func panicdottype(have, want, iface *byte)
    83  
    84  func ifaceeq(i1 any, i2 any) (ret bool)
    85  func efaceeq(i1 any, i2 any) (ret bool)
    86  func ifacethash(i1 any) (ret uint32)
    87  func efacethash(i1 any) (ret uint32)
    88  
    89  // *byte is really *runtime.Type
    90  func makemap(mapType *byte, hint int64, mapbuf *any, bucketbuf *any) (hmap map[any]any)
    91  func mapaccess1(mapType *byte, hmap map[any]any, key *any) (val *any)
    92  func mapaccess1_fast32(mapType *byte, hmap map[any]any, key any) (val *any)
    93  func mapaccess1_fast64(mapType *byte, hmap map[any]any, key any) (val *any)
    94  func mapaccess1_faststr(mapType *byte, hmap map[any]any, key any) (val *any)
    95  func mapaccess2(mapType *byte, hmap map[any]any, key *any) (val *any, pres bool)
    96  func mapaccess2_fast32(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    97  func mapaccess2_fast64(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    98  func mapaccess2_faststr(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    99  func mapassign1(mapType *byte, hmap map[any]any, key *any, val *any)
   100  func mapiterinit(mapType *byte, hmap map[any]any, hiter *any)
   101  func mapdelete(mapType *byte, hmap map[any]any, key *any)
   102  func mapiternext(hiter *any)
   103  
   104  // *byte is really *runtime.Type
   105  func makechan(chanType *byte, hint int64) (hchan chan any)
   106  func chanrecv1(chanType *byte, hchan <-chan any, elem *any)
   107  func chanrecv2(chanType *byte, hchan <-chan any, elem *any) bool
   108  func chansend1(chanType *byte, hchan chan<- any, elem *any)
   109  func closechan(hchan any)
   110  
   111  var writeBarrierEnabled bool
   112  
   113  func writebarrierptr(dst *any, src any)
   114  func writebarrierstring(dst *any, src any)
   115  func writebarrierslice(dst *any, src any)
   116  func writebarrieriface(dst *any, src any)
   117  
   118  // The unused *byte argument makes sure that src is 2-pointer-aligned,
   119  // which is the maximum alignment on NaCl amd64p32
   120  // (and possibly on 32-bit systems if we start 64-bit aligning uint64s).
   121  // The bitmap in the name tells which words being copied are pointers.
   122  func writebarrierfat01(dst *any, _ uintptr, src any)
   123  func writebarrierfat10(dst *any, _ uintptr, src any)
   124  func writebarrierfat11(dst *any, _ uintptr, src any)
   125  func writebarrierfat001(dst *any, _ uintptr, src any)
   126  func writebarrierfat010(dst *any, _ uintptr, src any)
   127  func writebarrierfat011(dst *any, _ uintptr, src any)
   128  func writebarrierfat100(dst *any, _ uintptr, src any)
   129  func writebarrierfat101(dst *any, _ uintptr, src any)
   130  func writebarrierfat110(dst *any, _ uintptr, src any)
   131  func writebarrierfat111(dst *any, _ uintptr, src any)
   132  func writebarrierfat0001(dst *any, _ uintptr, src any)
   133  func writebarrierfat0010(dst *any, _ uintptr, src any)
   134  func writebarrierfat0011(dst *any, _ uintptr, src any)
   135  func writebarrierfat0100(dst *any, _ uintptr, src any)
   136  func writebarrierfat0101(dst *any, _ uintptr, src any)
   137  func writebarrierfat0110(dst *any, _ uintptr, src any)
   138  func writebarrierfat0111(dst *any, _ uintptr, src any)
   139  func writebarrierfat1000(dst *any, _ uintptr, src any)
   140  func writebarrierfat1001(dst *any, _ uintptr, src any)
   141  func writebarrierfat1010(dst *any, _ uintptr, src any)
   142  func writebarrierfat1011(dst *any, _ uintptr, src any)
   143  func writebarrierfat1100(dst *any, _ uintptr, src any)
   144  func writebarrierfat1101(dst *any, _ uintptr, src any)
   145  func writebarrierfat1110(dst *any, _ uintptr, src any)
   146  func writebarrierfat1111(dst *any, _ uintptr, src any)
   147  
   148  // *byte is really *runtime.Type
   149  func typedmemmove(typ *byte, dst *any, src *any)
   150  func typedslicecopy(typ *byte, dst any, src any) int
   151  
   152  func selectnbsend(chanType *byte, hchan chan<- any, elem *any) bool
   153  func selectnbrecv(chanType *byte, elem *any, hchan <-chan any) bool
   154  func selectnbrecv2(chanType *byte, elem *any, received *bool, hchan <-chan any) bool
   155  
   156  func newselect(sel *byte, selsize int64, size int32)
   157  func selectsend(sel *byte, hchan chan<- any, elem *any) (selected bool)
   158  func selectrecv(sel *byte, hchan <-chan any, elem *any) (selected bool)
   159  func selectrecv2(sel *byte, hchan <-chan any, elem *any, received *bool) (selected bool)
   160  func selectdefault(sel *byte) (selected bool)
   161  func selectgo(sel *byte)
   162  func block()
   163  
   164  func makeslice(typ *byte, nel int64, cap int64) (ary []any)
   165  func growslice(typ *byte, old []any, cap int) (ary []any)
   166  func growslice_n(typ *byte, old []any, n int) (ary []any)
   167  func memmove(to *any, frm *any, length uintptr)
   168  func memclr(ptr *byte, length uintptr)
   169  
   170  func memequal(x, y *any, size uintptr) bool
   171  func memequal8(x, y *any) bool
   172  func memequal16(x, y *any) bool
   173  func memequal32(x, y *any) bool
   174  func memequal64(x, y *any) bool
   175  func memequal128(x, y *any) bool
   176  
   177  // only used on 32-bit
   178  func int64div(int64, int64) int64
   179  func uint64div(uint64, uint64) uint64
   180  func int64mod(int64, int64) int64
   181  func uint64mod(uint64, uint64) uint64
   182  func float64toint64(float64) int64
   183  func float64touint64(float64) uint64
   184  func int64tofloat64(int64) float64
   185  func uint64tofloat64(uint64) float64
   186  
   187  func complex128div(num complex128, den complex128) (quo complex128)
   188  
   189  // race detection
   190  func racefuncenter(uintptr)
   191  func racefuncexit()
   192  func raceread(uintptr)
   193  func racewrite(uintptr)
   194  func racereadrange(addr, size uintptr)
   195  func racewriterange(addr, size uintptr)
   196  
   197  // memory sanitizer
   198  func msanread(addr, size uintptr)
   199  func msanwrite(addr, size uintptr)