about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-04-08 10:47:42 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-04-08 10:47:42 +0200
commit2092da29076801111338a4bfa83b59e8e0f8c32d (patch)
tree9622d6e9f332e1030e27536159c95e2a90aa7069 /src
parent9b9e489b61040780c85c11338f6b25b80b923b09 (diff)
downloadbox64-2092da29076801111338a4bfa83b59e8e0f8c32d.tar.gz
box64-2092da29076801111338a4bfa83b59e8e0f8c32d.zip
Fixed 66 0F 3A 08/09/0A/0B opcode
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run660f.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c
index 33ba2c8f..448cdf65 100644
--- a/src/emu/x64run660f.c
+++ b/src/emu/x64run660f.c
@@ -756,7 +756,7 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr)
                         break;

                     case ROUND_Chop:

                         for(int i=0; i<4; ++i)

-                            GX->f[i] = EX->f[i];

+                            GX->f[i] = truncf(EX->f[i]);

                         break;

                 }

                 break;

@@ -783,8 +783,8 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr)
                         GX->d[1] = ceil(EX->d[1]);

                         break;

                     case ROUND_Chop:

-                        GX->d[0] = EX->d[0];

-                        GX->d[1] = EX->d[1];

+                        GX->d[0] = trunc(EX->d[0]);

+                        GX->d[1] = trunc(EX->d[1]);

                         break;

                 }

                 break;

@@ -808,7 +808,7 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr)
                         GX->f[0] = ceilf(EX->f[0]);

                         break;

                     case ROUND_Chop:

-                        GX->f[0] = EX->f[0];

+                        GX->f[0] = truncf(EX->f[0]);

                         break;

                 }

                 break;

@@ -832,7 +832,7 @@ uintptr_t Run660F(x64emu_t *emu, rex_t rex, uintptr_t addr)
                         GX->d[0] = ceil(EX->d[0]);

                         break;

                     case ROUND_Chop:

-                        GX->d[0] = EX->d[0];

+                        GX->d[0] = trunc(EX->d[0]);

                         break;

                 }

                 break;