github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/third_party/gofrontend/libgo/go/runtime/export_test.go (about) 1 // Copyright 2010 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 // Export guts for testing. 6 7 package runtime 8 9 import "unsafe" 10 11 //var Fadd64 = fadd64 12 //var Fsub64 = fsub64 13 //var Fmul64 = fmul64 14 //var Fdiv64 = fdiv64 15 //var F64to32 = f64to32 16 //var F32to64 = f32to64 17 //var Fcmp64 = fcmp64 18 //var Fintto64 = fintto64 19 //var F64toint = f64toint 20 //var Sqrt = sqrt 21 22 func entersyscall(int32) 23 func exitsyscall(int32) 24 func golockedOSThread() bool 25 26 var Entersyscall = entersyscall 27 var Exitsyscall = exitsyscall 28 var LockedOSThread = golockedOSThread 29 30 // var Xadduintptr = xadduintptr 31 32 // var FuncPC = funcPC 33 34 type LFNode struct { 35 Next uint64 36 Pushcnt uintptr 37 } 38 39 func lfstackpush_go(head *uint64, node *LFNode) 40 func lfstackpop_go(head *uint64) *LFNode 41 42 var LFStackPush = lfstackpush_go 43 var LFStackPop = lfstackpop_go 44 45 type ParFor struct { 46 body func(*ParFor, uint32) 47 done uint32 48 Nthr uint32 49 thrseq uint32 50 Cnt uint32 51 wait bool 52 } 53 54 func newParFor(nthrmax uint32) *ParFor 55 func parForSetup(desc *ParFor, nthr, n uint32, wait bool, body func(*ParFor, uint32)) 56 func parForDo(desc *ParFor) 57 func parForIters(desc *ParFor, tid uintptr) (uintptr, uintptr) 58 59 var NewParFor = newParFor 60 var ParForSetup = parForSetup 61 var ParForDo = parForDo 62 63 func ParForIters(desc *ParFor, tid uint32) (uint32, uint32) { 64 begin, end := parForIters(desc, uintptr(tid)) 65 return uint32(begin), uint32(end) 66 } 67 68 func GCMask(x interface{}) (ret []byte) { 69 return nil 70 } 71 72 //func testSchedLocalQueue() 73 //func testSchedLocalQueueSteal() 74 // 75 //func RunSchedLocalQueueTest() { 76 // testSchedLocalQueue() 77 //} 78 // 79 //func RunSchedLocalQueueStealTest() { 80 // testSchedLocalQueueSteal() 81 //} 82 83 //var StringHash = stringHash 84 //var BytesHash = bytesHash 85 //var Int32Hash = int32Hash 86 //var Int64Hash = int64Hash 87 //var EfaceHash = efaceHash 88 //var IfaceHash = ifaceHash 89 //var MemclrBytes = memclrBytes 90 91 // var HashLoad = &hashLoad 92 93 // entry point for testing 94 //func GostringW(w []uint16) (s string) { 95 // s = gostringw(&w[0]) 96 // return 97 //} 98 99 //var Gostringnocopy = gostringnocopy 100 //var Maxstring = &maxstring 101 102 //type Uintreg uintreg 103 104 //extern __go_open 105 func open(path *byte, mode int32, perm int32) int32 106 107 func Open(path *byte, mode int32, perm int32) int32 { 108 return open(path, mode, perm) 109 } 110 111 //extern close 112 func close(int32) int32 113 114 func Close(fd int32) int32 { 115 return close(fd) 116 } 117 118 //extern read 119 func read(fd int32, buf unsafe.Pointer, size int32) int32 120 121 func Read(fd int32, buf unsafe.Pointer, size int32) int32 { 122 return read(fd, buf, size) 123 } 124 125 //extern write 126 func write(fd int32, buf unsafe.Pointer, size int32) int32 127 128 func Write(fd uintptr, buf unsafe.Pointer, size int32) int32 { 129 return write(int32(fd), buf, size) 130 } 131 132 func envs() []string 133 func setenvs([]string) 134 135 var Envs = envs 136 var SetEnvs = setenvs 137 138 //var BigEndian = _BigEndian 139 140 // For benchmarking. 141 142 /* 143 func BenchSetType(n int, x interface{}) { 144 e := *(*eface)(unsafe.Pointer(&x)) 145 t := e._type 146 var size uintptr 147 var p unsafe.Pointer 148 switch t.kind & kindMask { 149 case _KindPtr: 150 t = (*ptrtype)(unsafe.Pointer(t)).elem 151 size = t.size 152 p = e.data 153 case _KindSlice: 154 slice := *(*struct { 155 ptr unsafe.Pointer 156 len, cap uintptr 157 })(e.data) 158 t = (*slicetype)(unsafe.Pointer(t)).elem 159 size = t.size * slice.len 160 p = slice.ptr 161 } 162 allocSize := roundupsize(size) 163 systemstack(func() { 164 for i := 0; i < n; i++ { 165 heapBitsSetType(uintptr(p), allocSize, size, t) 166 } 167 }) 168 } 169 170 const PtrSize = ptrSize 171 172 var TestingAssertE2I2GC = &testingAssertE2I2GC 173 var TestingAssertE2T2GC = &testingAssertE2T2GC 174 */