306 Commits

Author SHA1 Message Date
SachinVin
2a209226f9 backend\A64\reg_alloc.cpp: Fix assert 2020-05-16 18:18:29 +05:30
SachinVin
6a41c5d0ef a64_emiter: CountLeadingZeros intrinsic shortcuts 2020-05-16 17:18:43 +05:30
BreadFish64
2c94eea72e emit_a64: get rid of useless NOP generation
We don't actually patch anything in those locations beside a jump.
2020-05-16 17:18:43 +05:30
SachinVin
0885ffdc50 emit_a64: Do not clear fast_dispatch_table unnecessarily
port 4305c74 - emit_x64: Do not clear fast_dispatch_table unnecessarily
2020-05-16 17:18:43 +05:30
SachinVin
fe229b4a8e backend/A64/block_of_code.cpp: Clean up C style casts 2020-05-16 17:18:42 +05:30
SachinVin
4c27fb78a8 backend/A64/a32_emit_a64.cpp: EmitA32{Get,Set}Fpscr, set the guest_fpcr to host fpcr 2020-05-16 17:18:42 +05:30
SachinVin
b07864321e backend/A64: Add Step 2020-05-16 17:18:42 +05:30
SachinVin
6f95f6d311 backend/A64/block_of_code: Always specify codeptr to run from 2020-05-16 17:18:42 +05:30
BreadFish64
7d7b8edf31 backend/A64: fix mp 2020-05-16 17:18:41 +05:30
SachinVin
0b81c5a3c1 backend/A64: Move SP to FP in GenMemoryAccessors + Minor cleanup and 2020-05-16 17:18:41 +05:30
SachinVin
941a6ba808 backend/A64: Use X26 for storing remaining cycles. 2020-05-16 17:18:41 +05:30
BreadFish64
eeb7c609fc backend/A64: add fastmem support
fix crash on game close

fix generic exception handler

reorder hostloc gpr list

use temp register instead of X0 for writes

go back to regular std::partition
2020-05-16 17:18:41 +05:30
SachinVin
2d7f2b11b2 backend\A64\constant_pool.cpp: Correct offset calculation 2020-05-16 17:18:40 +05:30
SachinVin
6a3c3579d1 backend/A64/a32_jitstate: Upstream changes from x64 backend 2020-05-16 17:18:40 +05:30
SachinVin
d3e5bd4b43 backend/A64/a32_emit_a64.cpp: Use unused HostCall registers 2020-05-16 17:18:39 +05:30
SachinVin
5aa7b3cbed backend/A64/a32_emit_a64.cpp: Use MOVP2R instead of MOVI2R. 2020-05-16 17:18:39 +05:30
SachinVin
8fd3c5c4f3 backend/A64/abi: Fix FP caller and callee save registers 2020-05-16 17:18:39 +05:30
SachinVin
0f22688948 a64/block_of_code: use GetWritableCodePtr() instead of const_cast<...>(GetCodePtr()) 2020-05-16 17:18:38 +05:30
SachinVin
58450e7b42 backend/A64/constant_pool: Clean up unused stuff 2020-05-16 17:18:38 +05:30
SachinVin
c3dab59e46 emit_a64_data_processing.cpp: remove pointless DoNZCV. 2020-05-16 17:18:38 +05:30
SachinVin
351a557618 IR + backend/*: add SetCpsrNZCVRaw and change arg1 type of SetCpsrNZCV to IR::NZCV 2020-05-16 17:18:37 +05:30
SachinVin
75ed09b939 backend/A64: Fix ASR impl 2020-05-16 17:18:37 +05:30
SachinVin
fd4a8f277d a64_emitter: Use Correct alias for ZR and WZR in CMP 2020-05-16 17:18:37 +05:30
SachinVin
722e76f75f backend/A64: Use CSLE instead of branches for LSL LSR and ASR + minor cleanup 2020-05-16 17:18:36 +05:30
SachinVin
40463bde01 backend/A64: Use correct register size for EmitNot64 2020-05-16 17:18:36 +05:30
SachinVin
5a54320fea backend/A64: SignedSaturatedSub and SignedSaturatedAdd 2020-05-16 17:15:37 +05:30
SachinVin
571d3c49c9 backend/A64/emit_a64_saturation.cpp: Implement EmitSignedSaturation and EmitUnsignedSaturation
Implements SSAT SSAT16 USAT USAT16 QASX QSAX UQASX UQSAX
2020-05-16 17:15:37 +05:30
SachinVin
d61d21593f backend/A64: add emit_a64_saturation.cpp 2020-05-16 17:15:36 +05:30
SachinVin
1a295642fb backend/A64: Fix EmitA32SetCpsr 2020-05-16 17:15:36 +05:30
SachinVin
631274453a backend/A64/devirtualize: remove unused DevirtualizeItanium 2020-05-16 17:15:35 +05:30
SachinVin
d815a9bd08 backend/A64: refactor to fpscr from mxcsr 2020-05-16 17:15:35 +05:30
SachinVin
e06008a530 backend/A64: Use ScratchGpr() instead of ABI_SCRATCH1 where possible 2020-05-16 17:15:35 +05:30
SachinVin
3c30758dca backend/A64: support for always_little_endian 2020-05-16 17:15:35 +05:30
SachinVin
1a32b5501c backend/a64: Add hook_hint_instructions option
534eb0f
2020-05-16 17:15:34 +05:30
SachinVin
0d05eeb90a backend /A64: cleanup 2020-05-16 17:15:34 +05:30
SachinVin
6faf2816bc Minor style fix 2020-05-16 17:15:34 +05:30
SachinVin
e45461ef9f backend\A64\emit_a64_packed.cpp: Implement AddSub halving and non halving 2020-05-16 17:15:33 +05:30
SachinVin
04a59768c6 backend\A64\emit_a64_packed.cpp: Implement Unsigned Sum of Absolute Differences 2020-05-16 17:15:32 +05:30
SachinVin
6ba3bbf7d4 a64 emitter: Absolute Difference and add across vector instructions 2020-05-16 17:15:32 +05:30
SachinVin
8216b2f7aa backend\A64\emit_a64_packed.cpp: Implement Packed Select 2020-05-16 17:15:32 +05:30
SachinVin
f889ecaf4d Backend/a64: Fix asset when falling back to interpreter 2020-05-16 17:15:31 +05:30
SachinVin
340e772c1f backend\A64\emit_a64_packed.cpp: Implement Packed Halving Add/Sub instructions 2020-05-16 17:15:31 +05:30
SachinVin
9e0a3e7aa0 backend\A64\emit_a64_packed.cpp: Implement Packed Saturating instructions 2020-05-16 17:15:30 +05:30
SachinVin
79157ef109 backend\A64\emit_a64_packed.cpp: Implement SignedPacked*- ADD and SUB 2020-05-16 17:15:30 +05:30
SachinVin
3ed0a9a593 a64 emitter: Vector Halving and Saturation instructions 2020-05-16 17:15:30 +05:30
SachinVin
42d5e1bc0e backend\A64\emit_a64_packed.cpp: Implement UnsignedPacked*- ADD and SUB...
with few other in the emitter
2020-05-16 17:15:29 +05:30
SachinVin
c78aa47c00 a64 emitter: fix Scalar Saturating Instructions 2020-05-16 17:15:29 +05:30
SachinVin
cc19981999 A64 Emitter: Implement Saturating Add and Sub 2020-05-16 17:15:29 +05:30
SachinVin
45a6d5d025 backend\A64\emit_a64_data_processing.cpp: Implement Division 2020-05-16 17:15:28 +05:30
SachinVin
3910b7b1bb backend\A64\emit_a64_data_processing.cpp: Implement 64bit CLZ 2020-05-16 17:15:28 +05:30