diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-02-11 17:53:33 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-11 10:53:33 +0100 |
| commit | 4b7e116aa7ec6234682553b0dab8affca06c4071 (patch) | |
| tree | 3d7d3a807495b6e5acac32d3396a867649e0c473 /src | |
| parent | 785d3ed5ab4c70c226fbedb2acd5ea8c7746c914 (diff) | |
| download | box64-4b7e116aa7ec6234682553b0dab8affca06c4071.tar.gz box64-4b7e116aa7ec6234682553b0dab8affca06c4071.zip | |
[LA64_DYNAREC] Added F3 0F 52 RSQRTSS opcode (#2343)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_f30f.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/dynarec/la64/dynarec_la64_f30f.c b/src/dynarec/la64/dynarec_la64_f30f.c index e14b43f1..9cd89b42 100644 --- a/src/dynarec/la64/dynarec_la64_f30f.c +++ b/src/dynarec/la64/dynarec_la64_f30f.c @@ -184,6 +184,19 @@ uintptr_t dynarec64_F30F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int FSQRT_S(d1, d0); VEXTRINS_W(v0, d1, 0); break; + case 0x52: + INST_NAME("RSQRTSS Gx, Ex"); + nextop = F8; + GETGX(v0, 1); + GETEXSS(v1, 0, 0); + q0 = fpu_get_scratch(dyn); + q1 = fpu_get_scratch(dyn); + LU12I_W(x3, 0x3f800); // 1.0f + MOVGR2FR_W(q0, x3); + FSQRT_S(q1, v1); + FDIV_S(q0, q0, q1); + VEXTRINS_W(v0, q0, 0); + break; case 0x53: INST_NAME("RCPSS Gx, Ex"); nextop = F8; |