diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-02-09 02:18:12 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-08 19:18:12 +0100 |
| commit | 056bb38607d4a3e191cef0458c73dad962d2977d (patch) | |
| tree | 056be5e5ff7988c688e470e179ab8622f0b2027b /src | |
| parent | 1a01adb2efae4510c1efe46311071a4a121b206a (diff) | |
| download | box64-056bb38607d4a3e191cef0458c73dad962d2977d.tar.gz box64-056bb38607d4a3e191cef0458c73dad962d2977d.zip | |
[LA64_DYNAREC] Added more opcodes (#2333)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_f20f.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/dynarec/la64/dynarec_la64_f20f.c b/src/dynarec/la64/dynarec_la64_f20f.c index fcb32bdb..513cc492 100644 --- a/src/dynarec/la64/dynarec_la64_f20f.c +++ b/src/dynarec/la64/dynarec_la64_f20f.c @@ -304,6 +304,17 @@ uintptr_t dynarec64_F20F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int VEXTRINS_D(v0, q0, 0x0); // v0[63:0] = q0[63:0] } break; + case 0x7C: + INST_NAME("HADDPS Gx, Ex"); + nextop = F8; + GETGX(q0, 1); + GETEX(q1, 0, 1); + v0 = fpu_get_scratch(dyn); + v1 = fpu_get_scratch(dyn); + VPICKEV_W(v0, q1, q0); + VPICKOD_W(v1, q1, q0); + VFADD_S(q0, v0, v1); + break; case 0xC2: INST_NAME("CMPSD Gx, Ex, Ib"); nextop = F8; |