]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/6g, cmd/internal/gc: use Etype instead of Ostk
authorJosh Bleecher Snyder <josharian@gmail.com>
Fri, 15 May 2015 02:50:41 +0000 (19:50 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Mon, 18 May 2015 21:55:23 +0000 (21:55 +0000)
Change-Id: Ifda5d84b28717986c93b63767298180a6d6236c0
Reviewed-on: https://go-review.googlesource.com/10140
Reviewed-by: Russ Cox <rsc@golang.org>
src/cmd/6g/ggen.go
src/cmd/internal/gc/syntax.go

index 7282ac53e00393c14da31e775dcc2b4e7766c0cc..e0e1b8a4df8bbc4080b27067940bf038c1395b9b 100644 (file)
@@ -306,7 +306,7 @@ func dodiv(op int, nl *gc.Node, nr *gc.Node, res *gc.Node) {
  * known to be dead.
  */
 func savex(dr int, x *gc.Node, oldx *gc.Node, res *gc.Node, t *gc.Type) {
-       r := int(reg[dr])
+       r := reg[dr]
 
        // save current ax and dx if they are live
        // and not the destination
@@ -318,7 +318,7 @@ func savex(dr int, x *gc.Node, oldx *gc.Node, res *gc.Node, t *gc.Type) {
                x.Type = gc.Types[gc.TINT64]
                gmove(x, oldx)
                x.Type = t
-               oldx.Ostk = int32(r) // squirrel away old r value
+               oldx.Etype = r // squirrel away old r value
                reg[dr] = 1
        }
 }
@@ -326,7 +326,7 @@ func savex(dr int, x *gc.Node, oldx *gc.Node, res *gc.Node, t *gc.Type) {
 func restx(x *gc.Node, oldx *gc.Node) {
        if oldx.Op != 0 {
                x.Type = gc.Types[gc.TINT64]
-               reg[x.Reg] = uint8(oldx.Ostk)
+               reg[x.Reg] = oldx.Etype
                gmove(oldx, x)
                gc.Regfree(oldx)
        }
index 50de7f74de62824433c55a372aca278c369a5c43..d4ede60c900ad3ebcc8289a9f96a00cc0bda4e88 100644 (file)
@@ -27,7 +27,7 @@ type Node struct {
        Nointerface bool
        Ullman      uint8 // sethi/ullman number
        Addable     bool  // addressable
-       Etype       uint8 // op for OASOP, etype for OTYPE, exclam for export
+       Etype       uint8 // op for OASOP, etype for OTYPE, exclam for export, 6g saved reg
        Bounded     bool  // bounds check unnecessary
        Class       uint8 // PPARAM, PAUTO, PEXTERN, etc
        Embedded    uint8 // ODCLFIELD embedded type
@@ -97,7 +97,6 @@ type Node struct {
        Lineno   int32
        Xoffset  int64
        Stkdelta int64 // offset added by stack frame compaction phase.
-       Ostk     int32 // 6g only
        Iota     int32
        Walkgen  uint32
        Esclevel Level