github.com/zach-klippenstein/go@v0.0.0-20150108044943-fcfbeb3adf58/src/cmd/gc/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 "./mkbuiltin"
     6  // to update builtin.c.  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(string, string) string
    43  func concatstring3(string, string, string) string
    44  func concatstring4(string, string, string, string) string
    45  func concatstring5(string, string, string, string, string) string
    46  func concatstrings([]string) string
    47  
    48  func cmpstring(string, string) int
    49  func eqstring(string, string) bool
    50  func intstring(int64) string
    51  func slicebytetostring([]byte) string
    52  func slicebytetostringtmp([]byte) string
    53  func slicerunetostring([]rune) string
    54  func stringtoslicebyte(string) []byte
    55  func stringtoslicerune(string) []rune
    56  func stringiter(string, int) int
    57  func stringiter2(string, int) (retk int, retv rune)
    58  func slicecopy(to any, fr any, wid uintptr) int
    59  func slicestringcopy(to any, fr any) int
    60  
    61  // interface conversions
    62  func typ2Itab(typ *byte, typ2 *byte, cache **byte) (ret *byte)
    63  func convI2E(elem any) (ret any)
    64  func convI2I(typ *byte, elem any) (ret any)
    65  func convT2E(typ *byte, elem *any) (ret any)
    66  func convT2I(typ *byte, typ2 *byte, cache **byte, elem *any) (ret any)
    67  
    68  // interface type assertions  x.(T)
    69  func assertE2E(typ *byte, iface any, ret *any)
    70  func assertE2E2(typ *byte, iface any, ret *any) bool
    71  func assertE2I(typ *byte, iface any, ret *any)
    72  func assertE2I2(typ *byte, iface any, ret *any) bool
    73  func assertE2T(typ *byte, iface any, ret *any)
    74  func assertE2T2(typ *byte, iface any, ret *any) bool
    75  func assertI2E(typ *byte, iface any, ret *any)
    76  func assertI2E2(typ *byte, iface any, ret *any) bool
    77  func assertI2I(typ *byte, iface any, ret *any)
    78  func assertI2I2(typ *byte, iface any, ret *any) bool
    79  func assertI2T(typ *byte, iface any, ret *any)
    80  func assertI2T2(typ *byte, iface any, ret *any) bool
    81  
    82  func ifaceeq(i1 any, i2 any) (ret bool)
    83  func efaceeq(i1 any, i2 any) (ret bool)
    84  func ifacethash(i1 any) (ret uint32)
    85  func efacethash(i1 any) (ret uint32)
    86  
    87  // *byte is really *runtime.Type
    88  func makemap(mapType *byte, hint int64) (hmap map[any]any)
    89  func mapaccess1(mapType *byte, hmap map[any]any, key *any) (val *any)
    90  func mapaccess1_fast32(mapType *byte, hmap map[any]any, key any) (val *any)
    91  func mapaccess1_fast64(mapType *byte, hmap map[any]any, key any) (val *any)
    92  func mapaccess1_faststr(mapType *byte, hmap map[any]any, key any) (val *any)
    93  func mapaccess2(mapType *byte, hmap map[any]any, key *any) (val *any, pres bool)
    94  func mapaccess2_fast32(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    95  func mapaccess2_fast64(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    96  func mapaccess2_faststr(mapType *byte, hmap map[any]any, key any) (val *any, pres bool)
    97  func mapassign1(mapType *byte, hmap map[any]any, key *any, val *any)
    98  func mapiterinit(mapType *byte, hmap map[any]any, hiter *any)
    99  func mapdelete(mapType *byte, hmap map[any]any, key *any)
   100  func mapiternext(hiter *any)
   101  
   102  // *byte is really *runtime.Type
   103  func makechan(chanType *byte, hint int64) (hchan chan any)
   104  func chanrecv1(chanType *byte, hchan <-chan any, elem *any)
   105  func chanrecv2(chanType *byte, hchan <-chan any, elem *any) bool
   106  func chansend1(chanType *byte, hchan chan<- any, elem *any)
   107  func closechan(hchan any)
   108  
   109  // *byte is really *runtime.Type
   110  func writebarrierptr(dst *any, src any)
   111  func writebarrierstring(dst *any, src any)
   112  func writebarrierslice(dst *any, src any)
   113  func writebarrieriface(dst *any, src any)
   114  
   115  // The unused *byte argument makes sure that src is 2-pointer-aligned,
   116  // which is the maximum alignment on NaCl amd64p32
   117  // (and possibly on 32-bit systems if we start 64-bit aligning uint64s).
   118  // The bitmap in the name tells which words being copied are pointers.
   119  func writebarrierfat01(dst *any, _ *byte, src any)
   120  func writebarrierfat10(dst *any, _ *byte, src any)
   121  func writebarrierfat11(dst *any, _ *byte, src any)
   122  func writebarrierfat001(dst *any, _ *byte, src any)
   123  func writebarrierfat010(dst *any, _ *byte, src any)
   124  func writebarrierfat011(dst *any, _ *byte, src any)
   125  func writebarrierfat100(dst *any, _ *byte, src any)
   126  func writebarrierfat101(dst *any, _ *byte, src any)
   127  func writebarrierfat110(dst *any, _ *byte, src any)
   128  func writebarrierfat111(dst *any, _ *byte, src any)
   129  func writebarrierfat0001(dst *any, _ *byte, src any)
   130  func writebarrierfat0010(dst *any, _ *byte, src any)
   131  func writebarrierfat0011(dst *any, _ *byte, src any)
   132  func writebarrierfat0100(dst *any, _ *byte, src any)
   133  func writebarrierfat0101(dst *any, _ *byte, src any)
   134  func writebarrierfat0110(dst *any, _ *byte, src any)
   135  func writebarrierfat0111(dst *any, _ *byte, src any)
   136  func writebarrierfat1000(dst *any, _ *byte, src any)
   137  func writebarrierfat1001(dst *any, _ *byte, src any)
   138  func writebarrierfat1010(dst *any, _ *byte, src any)
   139  func writebarrierfat1011(dst *any, _ *byte, src any)
   140  func writebarrierfat1100(dst *any, _ *byte, src any)
   141  func writebarrierfat1101(dst *any, _ *byte, src any)
   142  func writebarrierfat1110(dst *any, _ *byte, src any)
   143  func writebarrierfat1111(dst *any, _ *byte, src any)
   144  
   145  func typedmemmove(typ *byte, dst *any, src *any)
   146  func typedslicecopy(typ *byte, dst any, src any) int
   147  
   148  func selectnbsend(chanType *byte, hchan chan<- any, elem *any) bool
   149  func selectnbrecv(chanType *byte, elem *any, hchan <-chan any) bool
   150  func selectnbrecv2(chanType *byte, elem *any, received *bool, hchan <-chan any) bool
   151  
   152  func newselect(sel *byte, selsize int64, size int32)
   153  func selectsend(sel *byte, hchan chan<- any, elem *any) (selected bool)
   154  func selectrecv(sel *byte, hchan <-chan any, elem *any) (selected bool)
   155  func selectrecv2(sel *byte, hchan <-chan any, elem *any, received *bool) (selected bool)
   156  func selectdefault(sel *byte) (selected bool)
   157  func selectgo(sel *byte)
   158  func block()
   159  
   160  func makeslice(typ *byte, nel int64, cap int64) (ary []any)
   161  func growslice(typ *byte, old []any, n int64) (ary []any)
   162  func memmove(to *any, frm *any, length uintptr)
   163  
   164  func memequal(x, y *any, size uintptr) bool
   165  func memequal8(x, y *any) bool
   166  func memequal16(x, y *any) bool
   167  func memequal32(x, y *any) bool
   168  func memequal64(x, y *any) bool
   169  func memequal128(x, y *any) bool
   170  
   171  // only used on 32-bit
   172  func int64div(int64, int64) int64
   173  func uint64div(uint64, uint64) uint64
   174  func int64mod(int64, int64) int64
   175  func uint64mod(uint64, uint64) uint64
   176  func float64toint64(float64) int64
   177  func float64touint64(float64) uint64
   178  func int64tofloat64(int64) float64
   179  func uint64tofloat64(uint64) float64
   180  
   181  func complex128div(num complex128, den complex128) (quo complex128)
   182  
   183  // race detection
   184  func racefuncenter(uintptr)
   185  func racefuncexit()
   186  func raceread(uintptr)
   187  func racewrite(uintptr)
   188  func racereadrange(addr, size uintptr)
   189  func racewriterange(addr, size uintptr)