cpu.x86.assembler: add MOVQ xmm, xmm/m64 and MOVQ xmm/m64, xmm instructions
parent
01d67104f6
commit
732befe272
|
@ -103,6 +103,15 @@ cell 4 = [
|
|||
[ [ EAX [] XMM1 UCOMISD ] { } make ] must-fail
|
||||
[ { HEX: 66 HEX: 0f HEX: 38 HEX: 2a HEX: 01 } ] [ [ XMM0 ECX [] MOVNTDQA ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: 48 HEX: 0f HEX: 6e HEX: c8 } ] [ [ XMM1 RAX MOVD ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 6e HEX: c8 } ] [ [ XMM1 EAX MOVD ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 48 HEX: 0f HEX: 7e HEX: c8 } ] [ [ RAX XMM1 MOVD ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 7e HEX: c8 } ] [ [ EAX XMM1 MOVD ] { } make ] unit-test
|
||||
|
||||
[ { HEX: f3 HEX: 0f HEX: 7e HEX: 08 } ] [ [ XMM1 EAX [] MOVQ ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: 7e HEX: 08 } ] [ [ XMM1 EAX [] MOVQ ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: 7e HEX: ca } ] [ [ XMM1 XMM2 MOVQ ] { } make ] unit-test
|
||||
|
||||
! rm-r only sse instructions
|
||||
[ { HEX: 0f HEX: 2b HEX: 08 } ] [ [ EAX [] XMM1 MOVNTPS ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: e7 HEX: 08 } ] [ [ EAX [] XMM1 MOVNTDQ ] { } make ] unit-test
|
||||
|
|
|
@ -554,6 +554,9 @@ PRIVATE>
|
|||
: 2-operand-rm-mr-sse ( dst src op1{rm,mr} op2 -- )
|
||||
[ , ] when* direction-op-sse extended-opcode (2-operand) ;
|
||||
|
||||
: 2-operand-rm-mr-sse* ( dst src op12{rm,mr} -- )
|
||||
direction-op-sse first2 [ , ] when* extended-opcode (2-operand) ;
|
||||
|
||||
: 2-operand-rm-sse ( dst src op1 op2 -- )
|
||||
[ , ] when* extended-opcode (2-operand) ;
|
||||
|
||||
|
@ -771,6 +774,9 @@ ALIAS: PINSRQ PINSRD
|
|||
: MOVDQA ( dest src -- ) { HEX: 6f HEX: 7f } HEX: 66 2-operand-rm-mr-sse ;
|
||||
: MOVDQU ( dest src -- ) { HEX: 6f HEX: 7f } HEX: f3 2-operand-rm-mr-sse ;
|
||||
|
||||
: MOVQ ( dest src -- )
|
||||
{ { HEX: 7e HEX: f3 } { HEX: d6 HEX: 66 } } 2-operand-rm-mr-sse* ;
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: 2shuffler ( indexes/mask -- mask )
|
||||
|
|
Loading…
Reference in New Issue