]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: move OAS2 to its own case in order
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Sat, 12 Oct 2019 01:47:51 +0000 (08:47 +0700)
committerMatthew Dempsky <mdempsky@google.com>
Sat, 12 Oct 2019 08:01:10 +0000 (08:01 +0000)
Change-Id: Id0f4955588ae8027a24465b456c90d0543d60db2
Reviewed-on: https://go-review.googlesource.com/c/go/+/200581
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/order.go

index 176d7a3cce467ec94622d3c37062b3a894aa8169..0e28f8267f07e2b8a62443a8a7a6550517e9881d 100644 (file)
@@ -513,26 +513,6 @@ func (o *Order) stmt(n *Node) {
                o.mapAssign(n)
                o.cleanTemp(t)
 
-       case OAS2,
-               OCLOSE,
-               OCOPY,
-               OPRINT,
-               OPRINTN,
-               ORECOVER,
-               ORECV:
-               t := o.markTemp()
-               n.Left = o.expr(n.Left, nil)
-               n.Right = o.expr(n.Right, nil)
-               o.exprList(n.List)
-               o.exprList(n.Rlist)
-               switch n.Op {
-               case OAS2:
-                       o.mapAssign(n)
-               default:
-                       o.out = append(o.out, n)
-               }
-               o.cleanTemp(t)
-
        case OASOP:
                t := o.markTemp()
                n.Left = o.expr(n.Left, nil)
@@ -562,6 +542,13 @@ func (o *Order) stmt(n *Node) {
                o.mapAssign(n)
                o.cleanTemp(t)
 
+       case OAS2:
+               t := o.markTemp()
+               o.exprList(n.List)
+               o.exprList(n.Rlist)
+               o.mapAssign(n)
+               o.cleanTemp(t)
+
        // Special: avoid copy of func call n.Right
        case OAS2FUNC:
                t := o.markTemp()
@@ -620,6 +607,20 @@ func (o *Order) stmt(n *Node) {
                o.out = append(o.out, n)
                o.cleanTemp(t)
 
+       case OCLOSE,
+               OCOPY,
+               OPRINT,
+               OPRINTN,
+               ORECOVER,
+               ORECV:
+               t := o.markTemp()
+               n.Left = o.expr(n.Left, nil)
+               n.Right = o.expr(n.Right, nil)
+               o.exprList(n.List)
+               o.exprList(n.Rlist)
+               o.out = append(o.out, n)
+               o.cleanTemp(t)
+
        // Special: order arguments to inner call but not call itself.
        case ODEFER, OGO:
                t := o.markTemp()