2008-06-04 15:37:38 -06:00
|
|
|
// Copyright 2009 The Go Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
2010-01-22 17:58:33 -07:00
|
|
|
// NOTE: If you change this file you must run "./mkbuiltin"
|
|
|
|
// to update builtin.c.boot. This is not done automatically
|
|
|
|
// to avoid depending on having a working compiler binary.
|
|
|
|
|
2008-12-08 20:46:39 -07:00
|
|
|
package PACKAGE
|
2008-10-03 17:15:55 -06:00
|
|
|
|
2009-01-09 16:52:43 -07:00
|
|
|
// emitted by compiler, not referred to by go programs
|
|
|
|
|
runtime: ,s/[a-zA-Z0-9_]+/runtime·&/g, almost
Prefix all external symbols in runtime by runtime·,
to avoid conflicts with possible symbols of the same
name in linked-in C libraries. The obvious conflicts
are printf, malloc, and free, but hide everything to
avoid future pain.
The symbols left alone are:
** known to cgo **
_cgo_free
_cgo_malloc
libcgo_thread_start
initcgo
ncgocall
** known to linker **
_rt0_$GOARCH
_rt0_$GOARCH_$GOOS
text
etext
data
end
pclntab
epclntab
symtab
esymtab
** known to C compiler **
_divv
_modv
_div64by32
etc (arch specific)
Tested on darwin/386, darwin/amd64, linux/386, linux/amd64.
Built (but not tested) for freebsd/386, freebsd/amd64, linux/arm, windows/386.
R=r, PeterGo
CC=golang-dev
https://golang.org/cl/2899041
2010-11-04 12:00:19 -06:00
|
|
|
func new(int32) *any
|
2010-04-01 23:31:27 -06:00
|
|
|
func panicindex()
|
|
|
|
func panicslice()
|
2009-10-06 12:42:55 -06:00
|
|
|
func throwreturn()
|
|
|
|
func throwinit()
|
2010-03-30 11:53:16 -06:00
|
|
|
|
|
|
|
func panic(interface{})
|
2010-03-31 12:46:01 -06:00
|
|
|
func recover(*int32) interface{}
|
2009-01-16 15:58:14 -07:00
|
|
|
|
2009-10-06 12:42:55 -06:00
|
|
|
func printbool(bool)
|
|
|
|
func printfloat(float64)
|
|
|
|
func printint(int64)
|
|
|
|
func printuint(uint64)
|
2010-02-18 18:55:11 -07:00
|
|
|
func printcomplex(complex128)
|
2009-10-06 12:42:55 -06:00
|
|
|
func printstring(string)
|
|
|
|
func printpointer(any)
|
|
|
|
func printiface(any)
|
|
|
|
func printeface(any)
|
|
|
|
func printslice(any)
|
|
|
|
func printnl()
|
|
|
|
func printsp()
|
runtime: ,s/[a-zA-Z0-9_]+/runtime·&/g, almost
Prefix all external symbols in runtime by runtime·,
to avoid conflicts with possible symbols of the same
name in linked-in C libraries. The obvious conflicts
are printf, malloc, and free, but hide everything to
avoid future pain.
The symbols left alone are:
** known to cgo **
_cgo_free
_cgo_malloc
libcgo_thread_start
initcgo
ncgocall
** known to linker **
_rt0_$GOARCH
_rt0_$GOARCH_$GOOS
text
etext
data
end
pclntab
epclntab
symtab
esymtab
** known to C compiler **
_divv
_modv
_div64by32
etc (arch specific)
Tested on darwin/386, darwin/amd64, linux/386, linux/amd64.
Built (but not tested) for freebsd/386, freebsd/amd64, linux/arm, windows/386.
R=r, PeterGo
CC=golang-dev
https://golang.org/cl/2899041
2010-11-04 12:00:19 -06:00
|
|
|
func goprintf()
|
2009-01-16 15:58:14 -07:00
|
|
|
|
2010-09-11 22:53:04 -06:00
|
|
|
// filled in by compiler: int n, string, string, ...
|
|
|
|
func concatstring()
|
|
|
|
|
2010-10-27 18:56:32 -06:00
|
|
|
// filled in by compiler: Type*, int n, Slice, ...
|
|
|
|
func append()
|
|
|
|
func appendslice(typ *byte, x any, y []any) any
|
|
|
|
|
2009-10-06 12:42:55 -06:00
|
|
|
func cmpstring(string, string) int
|
|
|
|
func slicestring(string, int, int) string
|
2009-11-20 12:42:28 -07:00
|
|
|
func slicestring1(string, int) string
|
2009-10-06 12:42:55 -06:00
|
|
|
func intstring(int64) string
|
|
|
|
func slicebytetostring([]byte) string
|
|
|
|
func sliceinttostring([]int) string
|
2010-02-25 16:11:07 -07:00
|
|
|
func stringtoslicebyte(string) []byte
|
|
|
|
func stringtosliceint(string) []int
|
2009-10-06 12:42:55 -06:00
|
|
|
func stringiter(string, int) int
|
|
|
|
func stringiter2(string, int) (retk int, retv int)
|
2009-11-17 21:41:44 -07:00
|
|
|
func slicecopy(to any, fr any, wid uint32) int
|
2010-10-26 09:36:07 -06:00
|
|
|
func slicestringcopy(to any, fr any) int
|
2009-01-16 15:58:14 -07:00
|
|
|
|
2010-06-08 19:50:02 -06:00
|
|
|
// interface conversions
|
|
|
|
func convI2E(elem any) (ret any)
|
|
|
|
func convI2I(typ *byte, elem any) (ret any)
|
|
|
|
func convT2E(typ *byte, elem any) (ret any)
|
|
|
|
func convT2I(typ *byte, typ2 *byte, elem any) (ret any)
|
|
|
|
|
|
|
|
// interface type assertions x.(T)
|
|
|
|
func assertE2E(typ *byte, iface any) (ret any)
|
|
|
|
func assertE2E2(typ *byte, iface any) (ret any, ok bool)
|
|
|
|
func assertE2I(typ *byte, iface any) (ret any)
|
|
|
|
func assertE2I2(typ *byte, iface any) (ret any, ok bool)
|
|
|
|
func assertE2T(typ *byte, iface any) (ret any)
|
|
|
|
func assertE2T2(typ *byte, iface any) (ret any, ok bool)
|
|
|
|
func assertI2E(typ *byte, iface any) (ret any)
|
|
|
|
func assertI2E2(typ *byte, iface any) (ret any, ok bool)
|
|
|
|
func assertI2I(typ *byte, iface any) (ret any)
|
|
|
|
func assertI2I2(typ *byte, iface any) (ret any, ok bool)
|
|
|
|
func assertI2T(typ *byte, iface any) (ret any)
|
|
|
|
func assertI2T2(typ *byte, iface any) (ret any, ok bool)
|
|
|
|
|
2009-10-06 12:42:55 -06:00
|
|
|
func ifaceeq(i1 any, i2 any) (ret bool)
|
|
|
|
func efaceeq(i1 any, i2 any) (ret bool)
|
|
|
|
func ifacethash(i1 any) (ret uint32)
|
|
|
|
func efacethash(i1 any) (ret uint32)
|
2009-01-16 15:58:14 -07:00
|
|
|
|
2009-09-08 14:46:54 -06:00
|
|
|
// *byte is really *runtime.Type
|
2010-05-01 14:15:42 -06:00
|
|
|
func makemap(key, val *byte, hint int64) (hmap map[any]any)
|
2009-10-06 12:42:55 -06:00
|
|
|
func mapaccess1(hmap map[any]any, key any) (val any)
|
|
|
|
func mapaccess2(hmap map[any]any, key any) (val any, pres bool)
|
|
|
|
func mapassign1(hmap map[any]any, key any, val any)
|
|
|
|
func mapassign2(hmap map[any]any, key any, val any, pres bool)
|
|
|
|
func mapiterinit(hmap map[any]any, hiter *any)
|
|
|
|
func mapiternext(hiter *any)
|
|
|
|
func mapiter1(hiter *any) (key any)
|
|
|
|
func mapiter2(hiter *any) (key any, val any)
|
2009-01-16 15:58:14 -07:00
|
|
|
|
2009-09-08 14:46:54 -06:00
|
|
|
// *byte is really *runtime.Type
|
2010-05-01 14:15:42 -06:00
|
|
|
func makechan(elem *byte, hint int64) (hchan chan any)
|
2009-10-06 12:42:55 -06:00
|
|
|
func chanrecv1(hchan <-chan any) (elem any)
|
|
|
|
func chanrecv2(hchan <-chan any) (elem any, pres bool)
|
2011-01-18 13:59:19 -07:00
|
|
|
func chanrecv3(hchan <-chan any) (elem any, closed bool)
|
2009-10-06 12:42:55 -06:00
|
|
|
func chansend1(hchan chan<- any, elem any)
|
|
|
|
func chansend2(hchan chan<- any, elem any) (pres bool)
|
|
|
|
func closechan(hchan any)
|
|
|
|
func closedchan(hchan any) bool
|
2009-01-16 15:58:14 -07:00
|
|
|
|
2009-10-06 12:42:55 -06:00
|
|
|
func newselect(size int) (sel *byte)
|
|
|
|
func selectsend(sel *byte, hchan chan<- any, elem any) (selected bool)
|
|
|
|
func selectrecv(sel *byte, hchan <-chan any, elem *any) (selected bool)
|
|
|
|
func selectdefault(sel *byte) (selected bool)
|
|
|
|
func selectgo(sel *byte)
|
2009-01-16 15:58:14 -07:00
|
|
|
|
2010-05-01 14:15:42 -06:00
|
|
|
func makeslice(typ *byte, nel int64, cap int64) (ary []any)
|
2010-08-03 01:26:02 -06:00
|
|
|
func sliceslice1(old []any, lb uint64, width uint64) (ary []any)
|
|
|
|
func sliceslice(old []any, lb uint64, hb uint64, width uint64) (ary []any)
|
|
|
|
func slicearray(old *any, nel uint64, lb uint64, hb uint64, width uint64) (ary []any)
|
2008-10-03 17:15:55 -06:00
|
|
|
|
2009-12-15 16:33:31 -07:00
|
|
|
func closure() // has args, but compiler fills in
|
2009-05-26 22:07:26 -06:00
|
|
|
|
|
|
|
// only used on 32-bit
|
2009-10-06 12:42:55 -06:00
|
|
|
func int64div(int64, int64) int64
|
|
|
|
func uint64div(uint64, uint64) uint64
|
|
|
|
func int64mod(int64, int64) int64
|
|
|
|
func uint64mod(uint64, uint64) uint64
|
2009-10-10 23:06:26 -06:00
|
|
|
func float64toint64(float64) int64
|
2010-11-12 13:46:46 -07:00
|
|
|
func float64touint64(float64) uint64
|
2009-10-10 23:06:26 -06:00
|
|
|
func int64tofloat64(int64) float64
|
2010-11-12 13:46:46 -07:00
|
|
|
func uint64tofloat64(uint64) float64
|
2010-03-09 13:49:24 -07:00
|
|
|
|
|
|
|
func complex128div(num complex128, den complex128) (quo complex128)
|