github.com/rakyll/go@v0.0.0-20170216000551-64c02460d703/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  func newobject(typ *byte) *any
    16  func panicindex()
    17  func panicslice()
    18  func panicdivide()
    19  func throwinit()
    20  func panicwrap()
    21  
    22  func gopanic(interface{})
    23  func gorecover(*int32) interface{}
    24  func goschedguarded()
    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 stringtoslicerune(*[32]rune, string) []rune
    56  func decoderune(string, int) (retv rune, retk int)
    57  func slicecopy(to any, fr any, wid uintptr) int
    58  func slicestringcopy(to any, fr any) int
    59  
    60  // interface conversions
    61  func convI2I(typ *byte, elem any) (ret any)
    62  func convT2E(typ *byte, elem *any) (ret any)
    63  func convT2I(tab *byte, elem *any) (ret any)
    64  
    65  // interface type assertions  x.(T)
    66  func assertE2I(typ *byte, iface any) (ret any)
    67  func assertE2I2(typ *byte, iface any) (ret any, b bool)
    68  func assertI2I(typ *byte, iface any) (ret any)
    69  func assertI2I2(typ *byte, iface any) (ret any, b bool)
    70  func panicdottypeE(have, want, iface *byte)
    71  func panicdottypeI(have, want, iface *byte)
    72  func panicnildottype(want *byte)
    73  
    74  func ifaceeq(i1 any, i2 any) (ret bool)
    75  func efaceeq(i1 any, i2 any) (ret bool)
    76  
    77  // *byte is really *runtime.Type
    78  func makemap(mapType *byte, hint int64, mapbuf *any, bucketbuf *any) (hmap map[any]any)
    79  func mapaccess1(mapType *byte, hmap map[any]any, key *any) (val *any)
    80  func mapaccess1_fast32(mapType *byte, hmap map[any]any, key any) (val *any)
    81  func mapaccess1_fast64(mapType *byte, hmap map[any]any, key any) (val *any)
    82  func mapaccess1_faststr(mapType *byte, hmap map[any]any, key any) (val *any)
    83  func mapaccess1_fat(mapType *byte, hmap map[any]any, key *any, zero *byte) (val *any)
    84  func mapaccess2(mapType *byte, hmap map[any]any, key *any) (val *any, pres bool)
    85  func mapaccess2_fast32(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    86  func mapaccess2_fast64(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    87  func mapaccess2_faststr(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    88  func mapaccess2_fat(mapType *byte, hmap map[any]any, key *any, zero *byte) (val *any, pres bool)
    89  func mapassign(mapType *byte, hmap map[any]any, key *any) (val *any)
    90  func mapiterinit(mapType *byte, hmap map[any]any, hiter *any)
    91  func mapdelete(mapType *byte, hmap map[any]any, key *any)
    92  func mapiternext(hiter *any)
    93  
    94  // *byte is really *runtime.Type
    95  func makechan(chanType *byte, hint int64) (hchan chan any)
    96  func chanrecv1(chanType *byte, hchan <-chan any, elem *any)
    97  func chanrecv2(chanType *byte, hchan <-chan any, elem *any) bool
    98  func chansend1(chanType *byte, hchan chan<- any, elem *any)
    99  func closechan(hchan any)
   100  
   101  var writeBarrier struct {
   102  	enabled bool
   103  	needed  bool
   104  	cgo     bool
   105  }
   106  
   107  func writebarrierptr(dst *any, src any)
   108  
   109  // *byte is really *runtime.Type
   110  func typedmemmove(typ *byte, dst *any, src *any)
   111  func typedmemclr(typ *byte, dst *any)
   112  func typedslicecopy(typ *byte, dst any, src any) int
   113  
   114  func selectnbsend(chanType *byte, hchan chan<- any, elem *any) bool
   115  func selectnbrecv(chanType *byte, elem *any, hchan <-chan any) bool
   116  func selectnbrecv2(chanType *byte, elem *any, received *bool, hchan <-chan any) bool
   117  
   118  func newselect(sel *byte, selsize int64, size int32)
   119  func selectsend(sel *byte, hchan chan<- any, elem *any) (selected bool)
   120  func selectrecv(sel *byte, hchan <-chan any, elem *any) (selected bool)
   121  func selectrecv2(sel *byte, hchan <-chan any, elem *any, received *bool) (selected bool)
   122  func selectdefault(sel *byte) (selected bool)
   123  func selectgo(sel *byte)
   124  func block()
   125  
   126  func makeslice(typ *byte, len int, cap int) (ary []any)
   127  func makeslice64(typ *byte, len int64, cap int64) (ary []any)
   128  func growslice(typ *byte, old []any, cap int) (ary []any)
   129  func memmove(to *any, frm *any, length uintptr)
   130  func memclrNoHeapPointers(ptr *byte, length uintptr)
   131  func memclrHasPointers(ptr *byte, length uintptr)
   132  
   133  func memequal(x, y *any, size uintptr) bool
   134  func memequal8(x, y *any) bool
   135  func memequal16(x, y *any) bool
   136  func memequal32(x, y *any) bool
   137  func memequal64(x, y *any) bool
   138  func memequal128(x, y *any) bool
   139  
   140  // only used on 32-bit
   141  func int64div(int64, int64) int64
   142  func uint64div(uint64, uint64) uint64
   143  func int64mod(int64, int64) int64
   144  func uint64mod(uint64, uint64) uint64
   145  func float64toint64(float64) int64
   146  func float64touint64(float64) uint64
   147  func float64touint32(float64) uint32
   148  func int64tofloat64(int64) float64
   149  func uint64tofloat64(uint64) float64
   150  func uint32tofloat64(uint32) float64
   151  
   152  func complex128div(num complex128, den complex128) (quo complex128)
   153  
   154  // race detection
   155  func racefuncenter(uintptr)
   156  func racefuncexit()
   157  func raceread(uintptr)
   158  func racewrite(uintptr)
   159  func racereadrange(addr, size uintptr)
   160  func racewriterange(addr, size uintptr)
   161  
   162  // memory sanitizer
   163  func msanread(addr, size uintptr)
   164  func msanwrite(addr, size uintptr)