]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: implement OIMAG and OREAL
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 7 Sep 2015 02:24:59 +0000 (19:24 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Mon, 7 Sep 2015 16:05:25 +0000 (16:05 +0000)
Change-Id: I17c83f6552367d42d48c1ec62fbb494f010fd866
Reviewed-on: https://go-review.googlesource.com/14343
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/ssa.go

index f92238b4a6e95cb6fd841951f08b84ca75e24706..098a1e15f6835e09ad42b7b01a0f88e42b181c8a 100644 (file)
@@ -823,6 +823,11 @@ var opToSSA = map[opAndType]ssa.Op{
        opAndType{OCOM, TINT64}:  ssa.OpCom64,
        opAndType{OCOM, TUINT64}: ssa.OpCom64,
 
+       opAndType{OIMAG, TCOMPLEX64}:  ssa.OpComplexImag,
+       opAndType{OIMAG, TCOMPLEX128}: ssa.OpComplexImag,
+       opAndType{OREAL, TCOMPLEX64}:  ssa.OpComplexReal,
+       opAndType{OREAL, TCOMPLEX128}: ssa.OpComplexReal,
+
        opAndType{OMUL, TINT8}:    ssa.OpMul8,
        opAndType{OMUL, TUINT8}:   ssa.OpMul8,
        opAndType{OMUL, TINT16}:   ssa.OpMul16,
@@ -1612,7 +1617,7 @@ func (s *state) expr(n *Node) *ssa.Value {
                                s.newValue1(negop, tp, s.newValue1(ssa.OpComplexImag, tp, a)))
                }
                return s.newValue1(s.ssaOp(n.Op, n.Type), a.Type, a)
-       case ONOT, OCOM:
+       case ONOT, OCOM, OIMAG, OREAL:
                a := s.expr(n.Left)
                return s.newValue1(s.ssaOp(n.Op, n.Type), a.Type, a)
        case OPLUS: