github.com/tcnksm/go@v0.0.0-20141208075154-439b32936367/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, ok bool)
    71  func assertE2I(typ *byte, iface any) (ret any)
    72  func assertE2I2(typ *byte, iface any) (ret any, ok bool)
    73  func assertE2T(typ *byte, iface any) (ret any)
    74  func assertE2T2(typ *byte, iface any) (ret any, ok bool)
    75  func assertI2E(typ *byte, iface any) (ret any)
    76  func assertI2E2(typ *byte, iface any) (ret any, ok bool)
    77  func assertI2I(typ *byte, iface any) (ret any)
    78  func assertI2I2(typ *byte, iface any) (ret any, ok bool)
    79  func assertI2T(typ *byte, iface any) (ret any)
    80  func assertI2T2(typ *byte, iface any) (ret any, ok bool)
    81  func assertI2TOK(typ *byte, iface any) (ok bool)
    82  func assertE2TOK(typ *byte, iface any) (ok bool)
    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) (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  // *byte is really *runtime.Type
   112  func writebarrierptr(dst *any, src any)
   113  func writebarrierstring(dst *any, src any)
   114  func writebarrierslice(dst *any, src any)
   115  func writebarrieriface(dst *any, src any)
   116  
   117  // The unused *byte argument makes sure that src is 2-pointer-aligned,
   118  // which is the maximum alignment on NaCl amd64p32
   119  // (and possibly on 32-bit systems if we start 64-bit aligning uint64s).
   120  // The bitmap in the name tells which words being copied are pointers.
   121  func writebarrierfat01(dst *any, _ *byte, src any)
   122  func writebarrierfat10(dst *any, _ *byte, src any)
   123  func writebarrierfat11(dst *any, _ *byte, src any)
   124  func writebarrierfat001(dst *any, _ *byte, src any)
   125  func writebarrierfat010(dst *any, _ *byte, src any)
   126  func writebarrierfat011(dst *any, _ *byte, src any)
   127  func writebarrierfat100(dst *any, _ *byte, src any)
   128  func writebarrierfat101(dst *any, _ *byte, src any)
   129  func writebarrierfat110(dst *any, _ *byte, src any)
   130  func writebarrierfat111(dst *any, _ *byte, src any)
   131  func writebarrierfat0001(dst *any, _ *byte, src any)
   132  func writebarrierfat0010(dst *any, _ *byte, src any)
   133  func writebarrierfat0011(dst *any, _ *byte, src any)
   134  func writebarrierfat0100(dst *any, _ *byte, src any)
   135  func writebarrierfat0101(dst *any, _ *byte, src any)
   136  func writebarrierfat0110(dst *any, _ *byte, src any)
   137  func writebarrierfat0111(dst *any, _ *byte, src any)
   138  func writebarrierfat1000(dst *any, _ *byte, src any)
   139  func writebarrierfat1001(dst *any, _ *byte, src any)
   140  func writebarrierfat1010(dst *any, _ *byte, src any)
   141  func writebarrierfat1011(dst *any, _ *byte, src any)
   142  func writebarrierfat1100(dst *any, _ *byte, src any)
   143  func writebarrierfat1101(dst *any, _ *byte, src any)
   144  func writebarrierfat1110(dst *any, _ *byte, src any)
   145  func writebarrierfat1111(dst *any, _ *byte, src any)
   146  
   147  func writebarrierfat(typ *byte, dst *any, src *any)
   148  func writebarriercopy(typ *byte, dst any, src any) int
   149  
   150  func selectnbsend(chanType *byte, hchan chan<- any, elem *any) bool
   151  func selectnbrecv(chanType *byte, elem *any, hchan <-chan any) bool
   152  func selectnbrecv2(chanType *byte, elem *any, received *bool, hchan <-chan any) bool
   153  
   154  func newselect(sel *byte, selsize int64, size int32)
   155  func selectsend(sel *byte, hchan chan<- any, elem *any) (selected bool)
   156  func selectrecv(sel *byte, hchan <-chan any, elem *any) (selected bool)
   157  func selectrecv2(sel *byte, hchan <-chan any, elem *any, received *bool) (selected bool)
   158  func selectdefault(sel *byte) (selected bool)
   159  func selectgo(sel *byte)
   160  func block()
   161  
   162  func makeslice(typ *byte, nel int64, cap int64) (ary []any)
   163  func growslice(typ *byte, old []any, n int64) (ary []any)
   164  func memmove(to *any, frm *any, length uintptr)
   165  
   166  func memequal(x, y *any, size uintptr) bool
   167  func memequal8(x, y *any, size uintptr) bool
   168  func memequal16(x, y *any, size uintptr) bool
   169  func memequal32(x, y *any, size uintptr) bool
   170  func memequal64(x, y *any, size uintptr) bool
   171  func memequal128(x, y *any, size uintptr) bool
   172  
   173  // only used on 32-bit
   174  func int64div(int64, int64) int64
   175  func uint64div(uint64, uint64) uint64
   176  func int64mod(int64, int64) int64
   177  func uint64mod(uint64, uint64) uint64
   178  func float64toint64(float64) int64
   179  func float64touint64(float64) uint64
   180  func int64tofloat64(int64) float64
   181  func uint64tofloat64(uint64) float64
   182  
   183  func complex128div(num complex128, den complex128) (quo complex128)
   184  
   185  // race detection
   186  func racefuncenter(uintptr)
   187  func racefuncexit()
   188  func raceread(uintptr)
   189  func racewrite(uintptr)
   190  func racereadrange(addr, size uintptr)
   191  func racewriterange(addr, size uintptr)