]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: respect Xoffset of static data
authorJosh Bleecher Snyder <josharian@gmail.com>
Tue, 28 Jul 2015 18:08:44 +0000 (11:08 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Tue, 28 Jul 2015 19:44:06 +0000 (19:44 +0000)
Together with teaching SSA to generate static data,
this fixes the encoding/pem and hash/adler32 tests.

Change-Id: I75f81f6c995dcb9c6d99bd3acda94a4feea8b87b
Reviewed-on: https://go-review.googlesource.com/12791
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/ssa.go

index 29b6a141a51f95a2f45af90c93bd9de4dcc466b9..c33c1224f1e2b9a07ce0b7a4a907f68cb0cf4659 100644 (file)
@@ -1161,7 +1161,12 @@ func (s *state) addr(n *Node) *ssa.Value {
                case PEXTERN:
                        // global variable
                        aux := &ssa.ExternSymbol{n.Type, n.Sym}
-                       return s.entryNewValue1A(ssa.OpAddr, Ptrto(n.Type), aux, s.sb)
+                       v := s.entryNewValue1A(ssa.OpAddr, Ptrto(n.Type), aux, s.sb)
+                       // TODO: Make OpAddr use AuxInt as well as Aux.
+                       if n.Xoffset != 0 {
+                               v = s.entryNewValue1I(ssa.OpOffPtr, v.Type, n.Xoffset, v)
+                       }
+                       return v
                case PPARAM, PPARAMOUT, PAUTO:
                        // parameter/result slot or local variable
                        v := s.decladdrs[n]