Move lenType definition to runtime (partially)

Этот коммит содержится в:
Ayke van Laethem 2018-08-29 20:48:56 +02:00
родитель abaae5b90d
коммит bf160d096b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED
5 изменённых файлов: 24 добавлений и 4 удалений

Просмотреть файл

@ -88,7 +88,7 @@ func NewCompiler(pkgName, triple string, dumpSSA bool) (*Compiler, error) {
// Depends on platform (32bit or 64bit), but fix it here for now.
c.intType = llvm.Int32Type()
c.lenType = llvm.Int32Type()
c.lenType = llvm.Int32Type() // also defined as runtime.lenType
c.uintptrType = c.targetData.IntPtrType()
c.i8ptrType = llvm.PointerType(llvm.Int8Type(), 0)

Просмотреть файл

@ -13,11 +13,15 @@ func Compile(pkgName, runtimePath, outpath, target string, printIR, dumpSSA bool
var buildTags []string
// TODO: put this somewhere else
if target == "pca10040" {
buildTags = append(buildTags, "nrf", "nrf52", "nrf52832")
// Pretend to be a WASM target, not ARM (for standard library support).
buildTags = append(buildTags, "nrf", "nrf52", "nrf52832", "js", "wasm")
target = "armv7m-none-eabi"
} else if target == "arduino" {
buildTags = append(buildTags, "avr", "avr8", "atmega", "atmega328p")
// Pretend to be a WASM target, not AVR (for standard library support).
buildTags = append(buildTags, "avr", "avr8", "atmega", "atmega328p", "js", "wasm")
target = "avr--"
} else {
buildTags = append(buildTags, "linux", "amd64")
}
c, err := NewCompiler(pkgName, target, dumpSSA)

8
src/runtime/arch_amd64.go Обычный файл
Просмотреть файл

@ -0,0 +1,8 @@
// +build amd64
package runtime
const GOARCH = "amd64"
// The length type used inside strings and slices.
type lenType uint32

8
src/runtime/arch_wasm.go Обычный файл
Просмотреть файл

@ -0,0 +1,8 @@
// +build wasm
package runtime
const GOARCH = "wasm"
// The length type used inside strings and slices.
type lenType uint32

Просмотреть файл

@ -13,7 +13,7 @@ import (
type hashmap struct {
next *hashmap // hashmap after evacuate (for iterators)
buckets unsafe.Pointer // pointer to array of buckets
count uint
count lenType
keySize uint8 // maybe this can store the key type as well? E.g. keysize == 5 means string?
valueSize uint8
bucketBits uint8