Commit cff29c8d authored by Julian Kranz's avatar Julian Kranz

X86 RREIL Translator

- Added semantics of: (V)PUNPCKLBW, (V)PUNPCKLWD, (V)PUNPCKLDQ, (V)PUNPCKLQDQ
parent 005b79a1
......@@ -426,14 +426,23 @@ main:
#vptest %xmm1, %xmm2
#vptest %ymm1, %ymm2
punpckhbw %mm1, %mm2
punpckhwd %xmm1, %xmm2
punpckhdq %mm1, %mm2
punpckhqdq %xmm1, %xmm2
vpunpckhbw %xmm1, %xmm2, %xmm3
vpunpckhwd %xmm1, %xmm2, %xmm3
vpunpckhdq %xmm1, %xmm2, %xmm3
vpunpckhqdq %xmm1, %xmm2, %xmm3
#punpckhbw %mm1, %mm2
#punpckhwd %xmm1, %xmm2
#punpckhdq %mm1, %mm2
#punpckhqdq %xmm1, %xmm2
#vpunpckhbw %xmm1, %xmm2, %xmm3
#vpunpckhwd %xmm1, %xmm2, %xmm3
#vpunpckhdq %xmm1, %xmm2, %xmm3
#vpunpckhqdq %xmm1, %xmm2, %xmm3
punpcklbw %mm1, %mm2
punpcklwd %xmm1, %xmm2
punpckldq %mm1, %mm2
punpcklqdq %xmm1, %xmm2
vpunpcklbw %xmm1, %xmm2, %xmm3
vpunpcklwd %xmm1, %xmm2, %xmm3
vpunpckldq %xmm1, %xmm2, %xmm3
vpunpcklqdq %xmm1, %xmm2, %xmm3
#vmovd %xmm5, %ebx
......
......@@ -1723,6 +1723,9 @@ end
val sem-punpckh element-size x = sem-punpck-vpunpck-opnd '0' 1 element-size x.opnd1 x.opnd1 x.opnd2
val sem-vpunpckh element-size x = sem-punpck-vpunpck-opnd '1' 1 element-size x.opnd1 x.opnd2 x.opnd3
val sem-punpckl element-size x = sem-punpck-vpunpck-opnd '0' 0 element-size x.opnd1 x.opnd1 x.opnd2
val sem-vpunpckl element-size x = sem-punpck-vpunpck-opnd '1' 0 element-size x.opnd1 x.opnd2 x.opnd3
val ps-push opnd-sz opnd = do
mode64 <- mode64?;
stack-addr-sz <- runtime-stack-address-size;
......
......@@ -1465,10 +1465,10 @@ val semantics insn =
| PUNPCKHDQ x: sem-punpckh 32 x
| PUNPCKHQDQ x: sem-punpckh 64 x
| PUNPCKHWD x: sem-punpckh 16 x
| PUNPCKLBW x: sem-undef-arity2 x
| PUNPCKLDQ x: sem-undef-arity2 x
| PUNPCKLQDQ x: sem-undef-arity2 x
| PUNPCKLWD x: sem-undef-arity2 x
| PUNPCKLBW x: sem-punpckl 8 x
| PUNPCKLDQ x: sem-punpckl 32 x
| PUNPCKLQDQ x: sem-punpckl 64 x
| PUNPCKLWD x: sem-punpckl 16 x
| PUSH x: sem-push x
| PUSHA x: sem-undef-arity0 x
| PUSHAD x: sem-undef-arity0 x
......@@ -2177,10 +2177,22 @@ val semantics insn =
case v of
VA3 x: sem-vpunpckh 16 x
end
| VPUNPCKLBW x: sem-undef-varity x
| VPUNPCKLDQ x: sem-undef-varity x
| VPUNPCKLQDQ x: sem-undef-varity x
| VPUNPCKLWD x: sem-undef-varity x
| VPUNPCKLBW v:
case v of
VA3 x: sem-vpunpckl 8 x
end
| VPUNPCKLDQ v:
case v of
VA3 x: sem-vpunpckl 32 x
end
| VPUNPCKLQDQ v:
case v of
VA3 x: sem-vpunpckl 64 x
end
| VPUNPCKLWD v:
case v of
VA3 x: sem-vpunpckl 16 x
end
| VPXOR x: sem-undef-varity x
| VRCPPS x: sem-undef-varity x
| VRCPSS x: sem-undef-varity x
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment