MerryMage
370f654590
fuzz_arm: Add tests for parallel add/subtract (modulo)
2016-12-04 20:51:12 +00:00
Sebastian Valle
cda25c12b3
Added tests for the ARM parallel halving instructions. ( #49 )
2016-11-26 17:24:57 +00:00
Sebastian Valle
32615d0eff
Implemented the PKHTB and PKHBT instructions with tests. ( #40 )
2016-11-23 21:45:18 +00:00
Sebastian Valle
d589c63107
Implemented the ARM SEL instruction, with tests. ( #39 )
...
The test for this instruction is very peculiar. As the instruction's behavior depends on the value of the CPSR, we generate a MSR instruction after each SEL instruction to change the CPSR.
2016-11-23 18:14:07 +00:00
MerryMage
5c8bf5a15d
callbacks: CallSVC returns void
2016-09-05 19:15:45 +01:00
Mat M
6d53bb6d7e
arm_types: Split out LocationDescriptor ( #20 )
...
This isn't really an ARM-specific type, since it's used to indicate a
Block location.
2016-09-05 11:54:09 +01:00
Mat M
8c4df46580
FPSCR: Make value constructor explicit ( #13 )
...
Maintains consistency between the PSR helper.
2016-09-03 12:48:31 +01:00
Mat M
6ec651498d
arm: Add PSR helper type ( #3 )
2016-09-02 17:34:33 +01:00
bunnei
728b4ca0d4
tests: Fix compile errors. ( #4 )
2016-09-02 08:51:03 +01:00
MerryMage
4321e829d1
callbacks: Add user_arg argument to InterpreterFallback
2016-09-01 02:00:08 +01:00
Lioncash
e1ed160768
test_arm_disassembler: More tests
...
Adds tests for
- Half-word multiply and multiply accumulate instructions
- Multiply and multiply accumulate instructions
- Synchronization primitive instructions
2016-08-28 22:06:52 +01:00
Lioncash
d164184b1e
test_arm_disassembler: Add more data processing instruction tests
2016-08-28 20:28:32 +01:00
MerryMage
59a8e14d1c
reg_alloc: Correct OpArg::setBit for Reg
2016-08-26 15:23:38 +01:00
MerryMage
ed3a686d1d
Implement public header files
2016-08-26 00:44:50 +01:00
MerryMage
130b5510a6
tests/fuzz_arm: Fix MSVC conversion warnings
2016-08-25 17:46:22 +01:00
Lioncash
0e12fb6a56
basic_block: Move all variables behind a public interface
2016-08-25 16:14:37 +01:00
MerryMage
7d181f46ce
fuzz_arm: Print more than one IR basic block on failure
2016-08-25 13:00:46 +01:00
MerryMage
8d1b9f32ca
Standardize indentation of switch statments
2016-08-23 12:19:27 +01:00
MerryMage
74246cc3bf
tests/fuzz_arm: Randomize rounding mode in initial_fpscr
2016-08-22 15:54:22 +01:00
MerryMage
f014f3b7d4
tests/fuzz_arm: Update FPSCR in InterpreterFallback
2016-08-22 15:54:21 +01:00
Tillmann Karras
dad7724b86
TranlateArm: implement remaining multiplies
...
SMLALxy, SMLAxy, SMULxy SMLAWy, SMULWy, SMLAD, SMLALD, SMLSD, SMLSLD,
SMUAD, SMUSD
2016-08-19 01:08:38 +01:00
MerryMage
4acc481463
translate_arm/load_store: Handle unpredictable instructions
...
This necessated handling literal versions of the instructions separately
as they had different requirements. The rationale for detecting
unpredictable instructions is because:
a. they are unlikely to be outputted by a well-behaved compiler
b. their behaviour may change between different processors
I would rather unpredictable instructions fail loudly than silently do
approximately the right thing.
2016-08-19 00:59:02 +01:00
Lioncash
841098a0bc
ir: separate components out a little more
2016-08-17 20:46:21 +01:00
bunnei
30f3d869cc
TranslateArm: Implement VPUSH and VPOP.
2016-08-13 19:37:03 +01:00
bunnei
8e68e6fdd9
TranslateArm: Implement QADD16/QSUB16/UQADD16/UQSUB16.
2016-08-12 19:00:44 +01:00
bunnei
4b09c0d032
TranslateArm: Implement QADD8 and UQADD8.
2016-08-12 19:00:44 +01:00
bunnei
127fbe99cb
TranslateArm: Implement QSUB8.
2016-08-12 19:00:44 +01:00
bunnei
86fe29c6d2
TranslateArm: Implement UQSUB8.
2016-08-12 19:00:44 +01:00
MerryMage
b4c586d5ef
TranslateArm: VSTR: Correct behaviour in big-endian mode
2016-08-10 16:43:37 +01:00
bunnei
8e8db6e137
TranslateArm: Implement VSTR.
2016-08-10 15:01:23 +01:00
MerryMage
df39308e03
TranslateArm: Implement CLREX, LDREX, LDREXB, LDREXD, LDREXH, STREX, STREXB, STREXD, STREXH, SWP, SWPB
2016-08-09 22:57:20 +01:00
MerryMage
b3bb1d5048
Tests: Tidy up ARM fuzz tests
2016-08-07 21:55:38 +01:00
MerryMage
4dcd1d1859
Arm: BLX is UNPREDICTABLE when Rm is PC
2016-08-07 20:50:33 +01:00
MerryMage
1af5bef32c
TranslateArm: Implement BLX (imm), BLX (reg) and BXJ
2016-08-07 20:40:31 +01:00
MerryMage
3a465ba4a8
VFP: Implement VLDR
2016-08-07 19:59:35 +01:00
MerryMage
a2c2db277b
VFP: Implement VMOV (all variants)
2016-08-07 19:25:12 +01:00
Tillmann Karras
55204a80d0
Implement SMMLA, SMMLS, SMMUL
2016-08-06 21:17:11 +01:00
Tillmann Karras
81d9d4b012
Add Subv's sign/zero extension tests
2016-08-06 21:17:11 +01:00
Tillmann Karras
a281fcc744
Fix printf
2016-08-06 21:17:11 +01:00
MerryMage
9ab7626374
Tests/VFP: Add tests for VADD.F32
2016-08-06 20:03:15 +01:00
MerryMage
4b31ea25a7
VFP: Implement VADD.{F32,F64}
2016-08-06 20:03:15 +01:00
bunnei
a5e2116e12
fuzz_arm: Log write records on failure.
2016-08-05 20:04:57 -04:00
MerryMage
640ce48baa
VFP: Implement {Get,Set}ExtendedRegister{32,64}
2016-08-05 19:06:10 +01:00
MerryMage
6f6f60c61b
tests/FuzzArm: Only call raise(SIGTRAP) when __unix__ is defined
2016-08-05 16:04:16 +01:00
Tillmann Karras
eb2e6e8bea
Implement some multiplies
2016-08-05 02:09:54 +01:00
Tillmann Karras
a97668ead4
Simplify ARM fuzz tests
2016-08-05 02:09:30 +01:00
Tillmann Karras
023643b4fa
Disable load/store tests for now
...
I don't feel like debugging that right now.
2016-08-05 02:09:27 +01:00
Tillmann Karras
ab383b4be5
Break tests by fixing them
2016-08-05 02:08:41 +01:00
Tillmann Karras
af27ef8d6c
Optionally disassemble x86_64 code using LLVM
2016-08-05 02:08:41 +01:00
Tillmann Karras
dacaeadb6a
Raise SIGTRAP on non-Windows
2016-08-03 00:44:08 +01:00