From: Cherry Zhang Date: Mon, 18 Apr 2016 14:30:20 +0000 (-0400) Subject: cmd/compile/internal/gc: fix return value offset for SSA backend on ARM X-Git-Tag: go1.7beta1~561 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=508a424eedccfe77f64d50c9870988a8c15b46b1;p=gostls13.git cmd/compile/internal/gc: fix return value offset for SSA backend on ARM Progress on SSA backend for ARM. Still not complete. It compiles a Fibonacci function, but the caller picked the return value from an incorrect offset. This CL adjusts it to match the stack frame layout for architectures with link register. Updates #15365. Change-Id: I01e03c3e95f5503a185e8ac2b6d9caf4faf3d014 Reviewed-on: https://go-review.googlesource.com/22186 Reviewed-by: Keith Randall Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 11e362c116..4a33a3808e 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -2668,7 +2668,7 @@ func (s *state) call(n *Node, k callKind) *ssa.Value { return nil } fp := res.Field(0) - return s.entryNewValue1I(ssa.OpOffPtr, Ptrto(fp.Type), fp.Offset, s.sp) + return s.entryNewValue1I(ssa.OpOffPtr, Ptrto(fp.Type), fp.Offset+Ctxt.FixedFrameSize(), s.sp) } // etypesign returns the signed-ness of e, for integer/pointer etypes.