about summary refs log tree commit diff stats
path: root/src/dynarec/la64/la64_printer.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* [LA64_DYNAREC] Refactor register mapping (#2940)Leslie Zhai2025-09-191-1/+1
| | | | | | | | | | | | | * [LA64_DYNAREC] Refactor register mapping * [LA64_DYNAREC] Fix typo * [LA64_DYNAREC] Remapping xSavedSP to fp ($r22) * [LA64_DYNAREC] Fix VPCLMULQDQ x3 and x4 issue * [LA64_DYNAREC] Fix typo * [LA64_DYNAREC] Fix typo
* [LA64_DYNAREC] Fix some la64 avx/sse ops. (#2882)phorcys2025-08-021-0/+44
| | | | | | | | | | | | Fix 66.0F.F3 PSLLQ Fix VEX.66.0F.7E VMOVD not zero-extend Fix Vex.66.0F.3A.06 VPERM2F128/VPERM2I128 Fix Vex.66.0F.3A.0D VBLENDPD Fix VEX.66.0F.3A.18/38 VINSERTF128/VINSERTI128 when q0 == q1 or q0 == q2 Fix VEX.66.0F.3A.21 VINSERTPS fix u8 get pos Fix VEX.66.0F.3A.40 VDPPS Fix VREPLVEIxy emit when vex.l Fix VEX.66.0F.38.0C VPERMILPS Fix VEX.66.0F.38.2B VPACKUSDW Fix VEX.66.0F.38.93 VGATHERQPD
* [LA64_DYNAREC] Add la64 avx cmp ops, part3. TEST ops. (#2857)phorcys2025-07-301-0/+52
| | | | VPTEST VTESTPD, VTESTPS
* [LA64_DYNAREC] Add la64 avx float ops part 3. (#2845)phorcys2025-07-291-0/+64
| | | | | | | | | * add cpuext.frecipe for LoongArch V1.1 * Fix VFRSQRTE in sse op RSQRTPS/RSQRTSS * Fix VFRECIPE in sse op RCPPS/RCPSS * V{MAX,MIN}{PD,PS,SD,SS} * VRCPPS,VRCPSS * VRSQRTPS,VRSQRTSS * VSQRT{PD,PS,SD,SS}
* [LA64_DYNAREC] Add la64 avx float ops VDPP{S,D}, VH{ADD,SUB}{PS,PD} (#2842)phorcys2025-07-231-0/+32
|
* [LA64_DYNAREC] Add la64 avx FMA insts. (#2838)phorcys2025-07-221-0/+64
| | | | * VF{MADD,MSUB,NMADD,NMSUB}{132,213,231}{PD,PS,SD,SS} * VFM{ADDSUB,SUBADD}{132,213,231}{PD,PS}
* [LA64_DYNAREC] add la64 avx pack/unpack ops, part4. (#2830)phorcys2025-07-211-0/+16
| | | | | | | | | Shuf/Permute ops. VSHUFPS, VSHUFPD VPSHUFD, VPSHUFQ, VPSHUFB, VPSHUFLW, VPSHUFHW VPERMQ, VPERMD VPERMPD, VPERMPS VPERMILPD, VPERMILPS VPERM2F128, VPERM2I128
* [LA64_DYNAREC] Add la64 avx load/store ops part 3. (#2774)phorcys2025-06-261-0/+196
| | | | | * VEX.0f VMOVMSKPS * VEX.66.0f VMOVMSKPD/VPMOVMSKB/VMASKMOVDQU * VEX.66.0f.38 VMASKMOVPS/VMASKMOVPD/VPMASKMOVD/VPMASKMOVQ
* [LA64_DYNAREC]Add basic avx support for la64. (#2745)phorcys2025-06-231-2/+3716
| | | | | | | | | * basic infra for avx * some basic ops for avx VMOVDQU/VMOVDQA/VMOVUPS/VMOVAPS/VMOVUPD/VMOVAPD VZEROUPPER/VZEROALL VMOVD/VMOVSD/VMOVSS VINSERTF128/VINSERTI128/VEXTRACTF128/VEXTRACTI128 VBROADCASTSS/VBROADCASTSD/VBROADCASTF128
* [LA64_DYNAREC] Update la64 mmx infra. (#2524)phorcys2025-04-121-22/+807
| | | Co-authored-by: phorcys <phorcys02@126.com>
* [LA64_DYNAREC] Add more sse ops (#2493)phorcys2025-04-031-0/+92
| | | | | | | | | | | fix 0F.5D/5F MINPS/MAXPS fix unordered. fix 66.0F.5D/5F MINPD/MAXPD fix unordered. 66.0F.3A.08/09/0A ROUNDPS/ROUNDPD/ROUNDSS 66.0F.3A.0C/0D BLENDPS/BLENDPD 66.0F.3A.21 INSERTPS 66.0F.C2 CMPPD printer add VFCMP.cond.s/d, vbitsel.v: Co-authored-by: phorcys <phorcys02@126.com>
* [LA64_DYNAREC] Added more MMX opcodes (#2477)Yang Liu2025-03-281-0/+8
|
* [LA64_DYNAREC] Added more opcodes (#2366)Yang Liu2025-02-171-0/+32
| | | | | * [LA64_DYNAREC] Added more opcodes * fix
* [LA64_DYNAREC] Added nativeflags support (#2202)Yang Liu2024-12-241-6/+6
|
* [LA64_DYNAREC] Remove xMASK and fixed 86 XCHG opcode (#1683)Yang Liu2024-07-161-1/+1
|
* Fixes (#1659)rajdakin2024-07-091-105/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Replaced some tabs with spaces * Fixed some signedness warnings * Added more debug info * Fixed an improper alignment * [WRAPPEDWAYLAND] Added return statements to wrappers * [EMU] [AVX] Fixed some issues * [ARM DYNAREC] Fixed some minor warnings * [ARM DYNAREC] Removed unused macro arguments * [EMU] Fixed a noisy warning * [ARM DYNAREC] Removed "empty body" warnings * [EMU] Fixed an opcode in dynarec, non-cosim builds * [LA64 DYNAREC] Minor warning fixes * [LA64 DYNAREC] Fixed empty body warnings * [LA64 DYNAREC] Added parenthesis around assignments in if statements * [LA64 DYNAREC] Fixed missing parenthesis in macro definitions * [RV64 DYNAREC] Fixed minor warnings * [RV64 DYNAREC] Fixed wrong/missing parentheses * [WRAPPER] Fixed the WaylandClient callback signatures
* [DYNAREC] Fixed IMUL sign extension issue (#1639)Yang Liu2024-07-041-7/+7
|
* [LA64_DYNAREC] Added more opcodes (#1480)Yang Liu2024-05-011-2/+2
|
* [LA64_DYNAREC] Added more opcodes and fixes (#1472)Yang Liu2024-04-271-4/+4
| | | | | | | | | | | | | | | | | | | | | * Fixed SHUFPS again * Added 0F 28 MOVAPS opcode * Added 0F 2E/2F [U]COMISS opcodes * Added F3 0F 5A CVTSS2SD opcode * Added 66 0F 7E MOVD opcode * Added 66 0F 28 MOVAPD opcode * fastnan handling * Added F3 0F 5D MINSS opcode * Added F3 0F 5F MAXSS opcode * Added F3 0F C2 CMPSS opcode
* [LA64_DYNAREC] Added more opcodes (#1468)Yang Liu2024-04-261-0/+17
| | | | | | | | | | | | | | | | | | | | | * Added 0F BF MOVSX opcode * Added F7 /5 IMUL opcode * Added 86 XCHG opcode * Added 66 0F PADDQ opcode * Added 0F C6 SHUFPS opcode * Added 66 0F 69 PUNPCKHWD opcode * Added 66 0F DB PAND opcode * Test * Review * Review
* [LA64_DYNAREC] Added more opcodes (#1447)Yang Liu2024-04-141-4/+4
| | | | | | | | | | | | | | | | | | | | | * Added B4..B7 MOV opcode * Added 66 81,83 /5 SUB opcode * Added 30 XOR opcode * Added F0 01 LOCK ADD opcode * Added 66 81,83 /0 ADD opcode * Added 66 39 CMP opcode * Added 66 0F D6 MOVQ opcode * Added 0F 57 XORPS opcode * Fix * Added 66 0F 61 opcode
* [LA64_DYNAREC] Added more opcodes to the printer (#1433)Yang Liu2024-04-101-423/+1950
| | | | | | | | | | | * Use ROTR * Added more opcodes to the printer * Added even more opcode to the printer * Fixed typos * More
* [LA64_DYNAREC] Added more SSE/SSE2 instructions (#1421)Haichen Wu2024-04-061-0/+15
| | | | | * [LA64_DYNAREC] Added more SSE/SSE2 instructions * [LA64_DYNAREC] Added more SSE/SSE2 instructions
* [LA64_DYNAREC] Added more SSE/SSE2 instructions (#1410)Haichen Wu2024-04-041-0/+32
|
* [LA64_DYNAREC] Added more LBT instructions to the printer (#1356)Yang Liu2024-03-111-0/+140
|
* [LA64_DYNAREC] Added more opcodes and more instructions in emitter and ↵Yang Liu2024-03-051-0/+10
| | | | printer (#1332)
* [LA64_DYNAREC] Added more opcodes and some fixes in the printer (#1330)Yang Liu2024-03-051-13/+58
| | | | | | | | | | | * Added 90..97 NOP/XCHG opcodes * More instructions and fixes to the emitter and printer * Added F0 0F C1 LOCK XADD opcode * Fix * Fix
* [LA64_DYNAREC] Added more opcodes (#1327)Yang Liu2024-03-041-2/+22
| | | | | | | | | | | | | | | | | | | * [LA64_DYNAREC] Added F7 /2 NOT opcode * [LA64_DYNAREC] Added 09 OR opcode * [LA64_DYNAREC] Added 64 MOVSXD opcode * [LA64_DYNAREC] Added more instructions to the emitter and printer, and fixed typos * Remove unused code * [LA64_DYNAREC] Added D3 /4 /6 SHL opcode * [LA64_DYNAREC] Added 0D OR opcode * [LA64_DYNAREC] Fixed a bug when LBT is present * Revert
* [LA64_DYNAREC] Utilizing bitmanip instructions because they're great (#1324)Yang Liu2024-03-041-0/+20
| | | | | | | * [LA64_DYNAREC] Added bitmanip instructions to emitter and printer * [LA64_DYNAREC] Utilizing bitmanip instructions because they're great * Review
* [LA64_DYNAREC] Added more opcodes and more fixes, SuperHexagon is working ↵Yang Liu2024-03-031-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#1319) * Made printer slightly better * [SIGNAL] Fixed a typo * Removed useless comma * Another typo * Keep'em in order * Added more opcodes and more fixes * A big fix of GOCOND macro * [LA64_DYNAREC] Added E8 CALL opcode * [LA64_DYNAREC] Added C6 MOV opcode * [LA64_DYNAREC] Added 39 CMP opcode * [LA64_DYNAREC] Added 0F 1F NOP opcode * BEWARE: shift instructions are NOT sign-extended! * More fixes * Try to be safe * Fixed printer * Fixed emitter & printer for B, briing superhexagon back
* [LA64_DYNAREC] Added more and more opcodes (#1314)Yang Liu2024-03-021-0/+20
| | | | | | | | | | | | | | | | | | | * [LA64_DYNAREC] Added C1 /5 SHR opcode * [LA64_DYNAREC] Added C1 /7 SAR opcode * [LA64_DYNAREC] Added D1 /7 SAR opcode * [LA64_DYNAREC] Added D1 /5 SHR opcode * [LA64_DYNAREC] Added FF /4 JMP opcode * [LA64_DYNAREC] Added 66 0F 1F NOP opcode * [LA64_DYNAREC] Added B8..BF MOV opcodes * [LA64_DYNAREC] Added C7 MOV opcode * [LA64_DYNAREC] Added 0F 05 SYSCALL opcode
* [LA64_DYNAREC] Added 70-7F Jcc opcodes, refine printer and some fixes too ↵Yang Liu2024-03-021-45/+536
| | | | | | | | | | | | | | | | | | | | | | | | | (#1307) * [LA64_DYNAREC] Added 70-7F Jcc opcodes and some fixes too * [LA64_DYNAREC] Added more instructions to the printer and made the format prettier * Make LBT truely optional * Do not test LBT in CI * Format * Optimize * Fixed printer format * Fixed CLEAR_FLAGS macro * Fixed xMASK * Use $r22 ($sp) in the prolog/epilog for better semantics * Fixed la64_next
* [LA64_DYNAREC] Added 1 more opcode and more fixes (#1305)Yang Liu2024-02-291-1/+1
| | | | | | | | | * Fixed printer name mapping * Fixed emit_sub32c * Remove a useless macro * Added 85 TEST opcode
* [LONGAARCH_DYNAREC] Added 00...05 and 28...2D opcodes (#1297)Haichen Wu2024-02-291-6/+6
| | | | | * [LONGAARCH] More renamed arch to LA64 * [LONGAARCH_DYNAREC] Added 00...05 and 28...2D opcodes
* [LONGAARCH] Renamed arch to LA64, as LA464 is code name for 3a5000, so that ↵ptitSeb2024-02-281-0/+285
way it's more generic (and sorry about that late minute change)