internal/load: support additional MOVQ forms
The Go assembler merges MOVD/MOVQ instruction forms. The logic in the avo instruction loader was discarding the MOVD forms. This diff should merge them correctly. Updates #50
This commit is contained in:
@@ -31,10 +31,14 @@ func (c *Context) mov(a, b operand.Op, an, bn int, t *types.Basic) {
|
||||
c.MOVLQZX(a, b)
|
||||
case (t.Info()&types.IsInteger) != 0 && an == 16 && bn == 16:
|
||||
c.MOVOU(a, b)
|
||||
case (t.Info()&types.IsInteger) != 0 && an == 4 && bn == 16:
|
||||
c.MOVQ(a, b)
|
||||
case (t.Info()&types.IsInteger) != 0 && an == 8 && bn == 8:
|
||||
c.MOVQ(a, b)
|
||||
case (t.Info()&types.IsInteger) != 0 && an == 8 && bn == 16:
|
||||
c.MOVQ(a, b)
|
||||
case (t.Info()&types.IsInteger) != 0 && an == 16 && bn == 4:
|
||||
c.MOVQ(a, b)
|
||||
case (t.Info()&types.IsInteger) != 0 && an == 16 && bn == 8:
|
||||
c.MOVQ(a, b)
|
||||
case (t.Info()&types.IsInteger) != 0 && an == 16 && bn == 16:
|
||||
|
||||
Reference in New Issue
Block a user