From 67df7934cc9f11a31395e2ade1d6c332aab67e23 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Tue, 28 Jul 2015 11:08:44 -0700 Subject: [PATCH] [dev.ssa] cmd/compile: respect Xoffset of static data 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 --- src/cmd/compile/internal/gc/ssa.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 29b6a141a5..c33c1224f1 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -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]