@@ -679,20 +679,19 @@ func init() {
679
679
// Note: LEAx{1,2,4,8} must not have OpSB as either argument.
680
680
681
681
// auxint+aux == add auxint and the offset of the symbol in aux (if any) to the effective address
682
- {name : "MOVBload" , argLength : 2 , reg : gpload , asm : "MOVBLZX" , aux : "SymOff" , typ : "UInt8" , faultOnNilArg0 : true , symEffect : "Read" }, // load byte from arg0+auxint+aux. arg1=mem. Zero extend.
683
- {name : "MOVBQSXload" , argLength : 2 , reg : gpload , asm : "MOVBQSX" , aux : "SymOff" , faultOnNilArg0 : true , symEffect : "Read" }, // ditto, sign extend to int64
684
- {name : "MOVWload" , argLength : 2 , reg : gpload , asm : "MOVWLZX" , aux : "SymOff" , typ : "UInt16" , faultOnNilArg0 : true , symEffect : "Read" }, // load 2 bytes from arg0+auxint+aux. arg1=mem. Zero extend.
685
- {name : "MOVWQSXload" , argLength : 2 , reg : gpload , asm : "MOVWQSX" , aux : "SymOff" , faultOnNilArg0 : true , symEffect : "Read" }, // ditto, sign extend to int64
686
- {name : "MOVLload" , argLength : 2 , reg : gpload , asm : "MOVL" , aux : "SymOff" , typ : "UInt32" , faultOnNilArg0 : true , symEffect : "Read" }, // load 4 bytes from arg0+auxint+aux. arg1=mem. Zero extend.
687
- {name : "MOVLQSXload" , argLength : 2 , reg : gpload , asm : "MOVLQSX" , aux : "SymOff" , faultOnNilArg0 : true , symEffect : "Read" }, // ditto, sign extend to int64
688
- {name : "MOVQload" , argLength : 2 , reg : gpload , asm : "MOVQ" , aux : "SymOff" , typ : "UInt64" , faultOnNilArg0 : true , symEffect : "Read" }, // load 8 bytes from arg0+auxint+aux. arg1=mem
689
- {name : "MOVBstore" , argLength : 3 , reg : gpstore , asm : "MOVB" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store byte in arg1 to arg0+auxint+aux. arg2=mem
690
- {name : "MOVWstore" , argLength : 3 , reg : gpstore , asm : "MOVW" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 2 bytes in arg1 to arg0+auxint+aux. arg2=mem
691
- {name : "MOVLstore" , argLength : 3 , reg : gpstore , asm : "MOVL" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 4 bytes in arg1 to arg0+auxint+aux. arg2=mem
692
- {name : "MOVQstore" , argLength : 3 , reg : gpstore , asm : "MOVQ" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 8 bytes in arg1 to arg0+auxint+aux. arg2=mem
693
- {name : "MOVOload" , argLength : 2 , reg : fpload , asm : "MOVUPS" , aux : "SymOff" , typ : "Int128" , faultOnNilArg0 : true , symEffect : "Read" }, // load 16 bytes from arg0+auxint+aux. arg1=mem
694
- {name : "MOVOstore" , argLength : 3 , reg : fpstore , asm : "MOVUPS" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 16 bytes in arg1 to arg0+auxint+aux. arg2=mem
695
- {name : "MOVOstorezero" , argLength : 2 , reg : regInfo {inputs : []regMask {gpspsb , 0 }}, asm : "MOVUPS" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 16 bytes of zero to arg0+auxint+aux. arg1=mem
682
+ {name : "MOVBload" , argLength : 2 , reg : gpload , asm : "MOVBLZX" , aux : "SymOff" , typ : "UInt8" , faultOnNilArg0 : true , symEffect : "Read" }, // load byte from arg0+auxint+aux. arg1=mem. Zero extend.
683
+ {name : "MOVBQSXload" , argLength : 2 , reg : gpload , asm : "MOVBQSX" , aux : "SymOff" , faultOnNilArg0 : true , symEffect : "Read" }, // ditto, sign extend to int64
684
+ {name : "MOVWload" , argLength : 2 , reg : gpload , asm : "MOVWLZX" , aux : "SymOff" , typ : "UInt16" , faultOnNilArg0 : true , symEffect : "Read" }, // load 2 bytes from arg0+auxint+aux. arg1=mem. Zero extend.
685
+ {name : "MOVWQSXload" , argLength : 2 , reg : gpload , asm : "MOVWQSX" , aux : "SymOff" , faultOnNilArg0 : true , symEffect : "Read" }, // ditto, sign extend to int64
686
+ {name : "MOVLload" , argLength : 2 , reg : gpload , asm : "MOVL" , aux : "SymOff" , typ : "UInt32" , faultOnNilArg0 : true , symEffect : "Read" }, // load 4 bytes from arg0+auxint+aux. arg1=mem. Zero extend.
687
+ {name : "MOVLQSXload" , argLength : 2 , reg : gpload , asm : "MOVLQSX" , aux : "SymOff" , faultOnNilArg0 : true , symEffect : "Read" }, // ditto, sign extend to int64
688
+ {name : "MOVQload" , argLength : 2 , reg : gpload , asm : "MOVQ" , aux : "SymOff" , typ : "UInt64" , faultOnNilArg0 : true , symEffect : "Read" }, // load 8 bytes from arg0+auxint+aux. arg1=mem
689
+ {name : "MOVBstore" , argLength : 3 , reg : gpstore , asm : "MOVB" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store byte in arg1 to arg0+auxint+aux. arg2=mem
690
+ {name : "MOVWstore" , argLength : 3 , reg : gpstore , asm : "MOVW" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 2 bytes in arg1 to arg0+auxint+aux. arg2=mem
691
+ {name : "MOVLstore" , argLength : 3 , reg : gpstore , asm : "MOVL" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 4 bytes in arg1 to arg0+auxint+aux. arg2=mem
692
+ {name : "MOVQstore" , argLength : 3 , reg : gpstore , asm : "MOVQ" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 8 bytes in arg1 to arg0+auxint+aux. arg2=mem
693
+ {name : "MOVOload" , argLength : 2 , reg : fpload , asm : "MOVUPS" , aux : "SymOff" , typ : "Int128" , faultOnNilArg0 : true , symEffect : "Read" }, // load 16 bytes from arg0+auxint+aux. arg1=mem
694
+ {name : "MOVOstore" , argLength : 3 , reg : fpstore , asm : "MOVUPS" , aux : "SymOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 16 bytes in arg1 to arg0+auxint+aux. arg2=mem
696
695
697
696
// indexed loads/stores
698
697
{name : "MOVBloadidx1" , argLength : 3 , reg : gploadidx , commutative : true , asm : "MOVBLZX" , scale : 1 , aux : "SymOff" , typ : "UInt8" , symEffect : "Read" }, // load a byte from arg0+arg1+auxint+aux. arg2=mem
@@ -717,10 +716,11 @@ func init() {
717
716
// For storeconst ops, the AuxInt field encodes both
718
717
// the value to store and an address offset of the store.
719
718
// Cast AuxInt to a ValAndOff to extract Val and Off fields.
720
- {name : "MOVBstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVB" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store low byte of ValAndOff(AuxInt).Val() to arg0+ValAndOff(AuxInt).Off()+aux. arg1=mem
721
- {name : "MOVWstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVW" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store low 2 bytes of ...
722
- {name : "MOVLstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVL" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store low 4 bytes of ...
723
- {name : "MOVQstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVQ" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 8 bytes of ...
719
+ {name : "MOVBstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVB" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store low byte of ValAndOff(AuxInt).Val() to arg0+ValAndOff(AuxInt).Off()+aux. arg1=mem
720
+ {name : "MOVWstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVW" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store low 2 bytes of ...
721
+ {name : "MOVLstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVL" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store low 4 bytes of ...
722
+ {name : "MOVQstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVQ" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 8 bytes of ...
723
+ {name : "MOVOstoreconst" , argLength : 2 , reg : gpstoreconst , asm : "MOVUPS" , aux : "SymValAndOff" , typ : "Mem" , faultOnNilArg0 : true , symEffect : "Write" }, // store 16 bytes of ...
724
724
725
725
{name : "MOVBstoreconstidx1" , argLength : 3 , reg : gpstoreconstidx , commutative : true , asm : "MOVB" , scale : 1 , aux : "SymValAndOff" , typ : "Mem" , symEffect : "Write" }, // store low byte of ValAndOff(AuxInt).Val() to arg0+1*arg1+ValAndOff(AuxInt).Off()+aux. arg2=mem
726
726
{name : "MOVWstoreconstidx1" , argLength : 3 , reg : gpstoreconstidx , commutative : true , asm : "MOVW" , scale : 1 , aux : "SymValAndOff" , typ : "Mem" , symEffect : "Write" }, // store low 2 bytes of ... arg1 ...
0 commit comments