about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-06-24 16:04:29 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-06-24 16:04:29 +0200
commit3dfcc278e0f736b578718e663fff470fa6a89dab (patch)
treedd84271e27195310598c5e34e35030048ce0d800 /src
parente312fa392d0b22e639e8c3383706c5c422a75212 (diff)
downloadbox64-3dfcc278e0f736b578718e663fff470fa6a89dab.tar.gz
box64-3dfcc278e0f736b578718e663fff470fa6a89dab.zip
[ARM64_DYNAREC] Minor fix on printer for SMOV/UMOV
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/arm64_printer.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/dynarec/arm64/arm64_printer.c b/src/dynarec/arm64/arm64_printer.c
index ff5b8a2c..bacf5490 100644
--- a/src/dynarec/arm64/arm64_printer.c
+++ b/src/dynarec/arm64/arm64_printer.c
@@ -916,7 +916,6 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
     }

     // UMOV

     if(isMask(opcode, "0Q001110000rrrrr001111nnnnnddddd", &a)) {

-        char q = a.Q?'Q':'D';

         char s = '?';

         int sz=0;

         if(a.Q==0 && immr&1) {s='B'; sz=0; }

@@ -925,14 +924,13 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
         else if(a.Q==1 && (immr&15)==8) {s='D'; sz=3; }

         int index = (immr)>>(sz+1);

         if(sz>2)

-            snprintf(buff, sizeof(buff), "MOV %s, %c%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], q, Rn, s, index);

+            snprintf(buff, sizeof(buff), "MOV %s, V%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], Rn, s, index);

         else

-            snprintf(buff, sizeof(buff), "UMOV %s, %c%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], q, Rn, s, index);

+            snprintf(buff, sizeof(buff), "UMOV %s, V%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], Rn, s, index);

         return buff;

     }

     // SMOV

     if(isMask(opcode, "0Q001110000rrrrr001011nnnnnddddd", &a)) {

-        char q = a.Q?'Q':'D';

         char s = '?';

         int sz=0;

         if(a.Q==0 && immr&1) {s='B'; sz=0; }

@@ -941,9 +939,9 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr)
         else if(a.Q==1 && (immr&15)==8) {s='D'; sz=3; }

         int index = (immr)>>(sz+1);

         if(sz>2)

-            snprintf(buff, sizeof(buff), "MOV %s, %c%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], q, Rn, s, index);

+            snprintf(buff, sizeof(buff), "MOV %s, V%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], Rn, s, index);

         else

-            snprintf(buff, sizeof(buff), "SMOV %s, %c%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], q, Rn, s, index);

+            snprintf(buff, sizeof(buff), "SMOV %s, V%d.%c[%d]", a.Q?Xt[Rd]:Wt[Rd], Rn, s, index);

         return buff;

     }

     // VEOR