about summary refs log tree commit diff stats
path: root/src/dynarec
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-07-19 17:02:09 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-07-19 17:02:09 +0200
commit5bf0f0215d4ec1606e8c76b0aa46208c5717de2c (patch)
treef72066b6669287ae736b8bd3f89595f6cc3e2b61 /src/dynarec
parent8f968e4c9c276b7575ffbddf0bf8e496f03a46fa (diff)
downloadbox64-5bf0f0215d4ec1606e8c76b0aa46208c5717de2c.tar.gz
box64-5bf0f0215d4ec1606e8c76b0aa46208c5717de2c.zip
Added 67 0F 11 opcode ([ARM64_DYNAREC] too) (for #892)
Diffstat (limited to 'src/dynarec')
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_67.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c
index b1a657f1..04065e7a 100755
--- a/src/dynarec/arm64/dynarec_arm64_67.c
+++ b/src/dynarec/arm64/dynarec_arm64_67.c
@@ -166,6 +166,28 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             opcode=F8;

             switch(opcode) {

 

+                case 0x11:

+                    switch(rep) {

+                        case 0:

+                            INST_NAME("MOVUPS Ex,Gx");

+                            nextop = F8;

+                            GETG;

+                            v0 = sse_get_reg(dyn, ninst, x1, gd, 0);

+                            if(MODREG) {

+                                ed = (nextop&7)+(rex.b<<3);

+                                v1 = sse_get_reg_empty(dyn, ninst, x1, ed);

+                                VMOVQ(v1, v0);

+                            } else {

+                                addr = geted32(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, &unscaled, 0xfff<<4, 15, rex, NULL, 0, 0);

+                                VST128(v0, ed, fixedaddress);

+                                SMWRITE2();

+                            }

+                            break;

+                        default:

+                            DEFAULT;

+                    }

+                    break;

+

                 case 0x2E:

                     // no special check...

                 case 0x2F: