mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: add 32 bit float registers/variables on wasm
Before this change, wasm only used float variables with a size of 64 bit and applied rounding to 32 bit precision where necessary. This change adds proper 32 bit float variables. Reduces the size of pkg/js_wasm by 254 bytes. Change-Id: Ieabe846a8cb283d66def3cdf11e2523b3b31f345 Reviewed-on: https://go-review.googlesource.com/c/go/+/195117 Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
d6c2f1e90e
commit
1c50fcf853
10 changed files with 802 additions and 375 deletions
|
|
@ -25,6 +25,8 @@ type Config struct {
|
|||
registers []Register // machine registers
|
||||
gpRegMask regMask // general purpose integer register mask
|
||||
fpRegMask regMask // floating point register mask
|
||||
fp32RegMask regMask // floating point register mask
|
||||
fp64RegMask regMask // floating point register mask
|
||||
specialRegMask regMask // special register mask
|
||||
GCRegMap []*Register // garbage collector register map, by GC register index
|
||||
FPReg int8 // register number of frame pointer, -1 if not used
|
||||
|
|
@ -324,6 +326,8 @@ func NewConfig(arch string, types Types, ctxt *obj.Link, optimize bool) *Config
|
|||
c.registers = registersWasm[:]
|
||||
c.gpRegMask = gpRegMaskWasm
|
||||
c.fpRegMask = fpRegMaskWasm
|
||||
c.fp32RegMask = fp32RegMaskWasm
|
||||
c.fp64RegMask = fp64RegMaskWasm
|
||||
c.FPReg = framepointerRegWasm
|
||||
c.LinkReg = linkRegWasm
|
||||
c.hasGReg = true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue