2192 Commits

Author SHA1 Message Date
SachinVin
a79bd7e8c8 backend/A64/a32_jitstate: Upstream changes from x64 backend 2020-04-07 23:07:24 -05:00
SachinVin
ef898c6181 backend/A64: Add test for q flag being incorrectly set 2020-04-07 23:07:24 -05:00
SachinVin
9f07aa0b7d backend/A64/a32_emit_a64.cpp: Use unused HostCall registers 2020-04-07 23:07:24 -05:00
SachinVin
ff5c3d5ab5 backend/A64/a32_emit_a64.cpp: Use MOVP2R instead of MOVI2R. 2020-04-07 23:07:24 -05:00
SachinVin
3972263e73 backend/A64/abi: Fix FP caller and callee save registers 2020-04-07 23:07:24 -05:00
SachinVin
c3bc26b6f5 a64/block_of_code: use GetWritableCodePtr() instead of const_cast<...>(GetCodePtr()) 2020-04-07 23:07:24 -05:00
SachinVin
b7b65f10e6 backend/A64/constant_pool: Clean up unused stuff 2020-04-07 23:07:24 -05:00
SachinVin
aa95927614 emit_a64_data_processing.cpp: remove pointless DoNZCV. 2020-04-07 23:07:24 -05:00
SachinVin
8cd195beaf IR + backend/*: add SetCpsrNZCVRaw and change arg1 type of SetCpsrNZCV to IR::NZCV 2020-04-07 23:07:24 -05:00
SachinVin
5246568d10 backend/A64: Fix ASR impl 2020-04-07 23:07:24 -05:00
SachinVin
103ab07fa4 a64_emitter: Use Correct alias for ZR and WZR in CMP 2020-04-07 23:07:24 -05:00
SachinVin
1e37ecaa25 backend/A64: Use CSLE instead of branches for LSL LSR and ASR + minor cleanup 2020-04-07 23:07:24 -05:00
SachinVin
6ab3c04037 backend/A64: Use correct register size for EmitNot64 2020-04-07 23:07:24 -05:00
SachinVin
ea2c5e6dce tests/A32: Check if Q flag is cleared properly 2020-04-07 23:07:24 -05:00
SachinVin
fcfd3f3183 backend/A64: SignedSaturatedSub and SignedSaturatedAdd 2020-04-07 23:07:24 -05:00
SachinVin
1b6d9e417f backend/A64/emit_a64_saturation.cpp: Implement EmitSignedSaturation and EmitUnsignedSaturation
Implements SSAT SSAT16 USAT USAT16 QASX QSAX UQASX UQSAX
2020-04-07 23:07:24 -05:00
SachinVin
82488c7feb backend/A64: add emit_a64_saturation.cpp 2020-04-07 23:07:24 -05:00
SachinVin
8eea0660ce backend/A64: Fix EmitA32SetCpsr 2020-04-07 23:07:24 -05:00
SachinVin
cc1caa5007 backend/A64/devirtualize: remove unused DevirtualizeItanium 2020-04-07 23:07:24 -05:00
SachinVin
4cdb8ec142 backend/A64: refactor to fpscr from mxcsr 2020-04-07 23:07:24 -05:00
SachinVin
f671e1ef4d backend/A64: Use ScratchGpr() instead of ABI_SCRATCH1 where possible 2020-04-07 23:07:24 -05:00
SachinVin
743aa2385e backend/A64: support for always_little_endian 2020-04-07 23:07:24 -05:00
SachinVin
a11111bcde backend/a64: Add hook_hint_instructions option
534eb0f
2020-04-07 23:07:24 -05:00
SachinVin
2d5b21ecc2 backend /A64: cleanup 2020-04-07 23:07:24 -05:00
SachinVin
23d30423d7 gitignore: add .vs dir 2020-04-07 23:07:24 -05:00
SachinVin
962a359ec4 Minor style fix 2020-04-07 23:07:24 -05:00
SachinVin
b883dbe240 backend\A64\emit_a64_packed.cpp: Implement AddSub halving and non halving 2020-04-07 23:07:24 -05:00
SachinVin
6adc894ffd backend\A64: Instructions that got implemented on the way 2020-04-07 23:07:24 -05:00
SachinVin
93a183de02 backend\A64\emit_a64_packed.cpp: Implement Unsigned Sum of Absolute Differences 2020-04-07 23:07:24 -05:00
SachinVin
e3b8eb1735 a64 emitter: Absolute Difference and add across vector instructions 2020-04-07 23:07:24 -05:00
SachinVin
664914d141 backend\A64\emit_a64_packed.cpp: Implement Packed Select 2020-04-07 23:07:24 -05:00
SachinVin
a4ca210798 Backend/a64: Fix asset when falling back to interpreter 2020-04-07 23:07:24 -05:00
SachinVin
ea2c98a7c3 backend\A64\emit_a64_packed.cpp: Implement Packed Halving Add/Sub instructions 2020-04-07 23:07:24 -05:00
SachinVin
93c946dfb3 backend\A64\emit_a64_packed.cpp: Implement Packed Saturating instructions 2020-04-07 23:07:24 -05:00
SachinVin
d3c4ffbdc8 backend\A64\emit_a64_packed.cpp: Implement SignedPacked*- ADD and SUB 2020-04-07 23:07:24 -05:00
SachinVin
0f00a1a00b a64 emitter: Vector Halving and Saturation instructions 2020-04-07 23:07:24 -05:00
SachinVin
d2847a202e backend\A64\emit_a64_packed.cpp: Implement UnsignedPacked*- ADD and SUB...
with few other in the emitter
2020-04-07 23:07:24 -05:00
SachinVin
5550e6f157 a64 emitter: fix Scalar Saturating Instructions 2020-04-07 23:07:24 -05:00
SachinVin
5d6242ac46 A64 Emitter: Implement Saturating Add and Sub 2020-04-07 23:07:24 -05:00
SachinVin
5e55e8297f backend\A64\emit_a64_data_processing.cpp: Implement Division 2020-04-07 23:07:24 -05:00
SachinVin
d6f0b3532f backend\A64\emit_a64_data_processing.cpp: Implement 64bit CLZ 2020-04-07 23:07:24 -05:00
SachinVin
b9c6a99cf5 backend\A64\emit_a64_data_processing.cpp: Implement 64bit LSL and ROR Instructions
Also EmitTestBit
2020-04-07 23:07:24 -05:00
SachinVin
2ff25d4fbb backend\A64\emit_a64_data_processing.cpp: Implement 64bit Logical Instructions 2020-04-07 23:07:24 -05:00
SachinVin
f33a51cb09 backend/a64: implememnt CheckBit 2020-04-07 23:07:23 -05:00
SachinVin
2dc985237b backend/a64: Redesign Const Pool 2020-04-07 23:07:23 -05:00
SachinVin
66978a9fb7 backend\A64\emit_a64_floating_point.cpp: Fix include paths 2020-04-07 23:07:23 -05:00
SachinVin
5af7146374 backend\A64\a32_emit_a64.cpp: Fix Coproc* after rebase 2020-04-07 23:07:23 -05:00
SachinVin
0fbb8a5a73 backend/a64/opcodes.inc: Coproc instructions 2020-04-07 23:07:23 -05:00
SachinVin
49dce5c8fa a64 emitter: Fix LDR literal 2020-04-07 23:07:23 -05:00
SachinVin
ec41144951 a64 emitter: Move IsInRange* and MaskImm* into anon namespace 2020-04-07 23:07:23 -05:00