Commit Graph

97 Commits

Author SHA1 Message Date
Kevin Quick
cf9b6c5a30
[arm] Updated disassemble operation to support A32 or T32 block disassembly. 2018-03-07 10:06:29 -08:00
Kevin Quick
acb8812d68
[arm] Fix non-semantics instruction matcher to return Nothing when unrecognized. 2018-03-07 00:42:01 -08:00
Kevin Quick
54f87526e7
[arm] Update test LoadOptions for new loadRegionBaseOffset parameter. 2018-03-07 00:40:40 -08:00
Kevin Quick
1e85a15146
[arm] Add operands and genExecInstruction support for Thumb. 2018-03-07 00:36:22 -08:00
Kevin Quick
c3d89976e6
[arm] Update Operand eval to clarify A32 and for GPR number abstraction. 2018-03-07 00:32:17 -08:00
Kevin Quick
9f66c7a773
[arm] Update A32 instruction generation for new type args. 2018-03-07 00:30:15 -08:00
Kevin Quick
97a5902408
[arm] Add appEval for URem since it is not handled directly by Macaw base. 2018-03-07 00:27:51 -08:00
Kevin Quick
40b13f63b3
[arm] Define ARM_GP as standalone instead of in terms of A32 GPR.
Removes a dependency of the general Macaw semantics on the underlying
A32 dismantle/semmc representation.
2018-03-05 16:10:54 -08:00
Kevin Quick
3af6050855
[arm] Explicit ARM Dismantle module reference to avoid confusion. 2018-03-01 12:53:49 -08:00
Kevin Quick
a7d3270520
[arm] Add ExtractValue instance for Word16 (Shift_so_reg_imm operand). 2018-03-01 12:51:12 -08:00
Kevin Quick
6d373bfcc5
[arm] Add value extraction for BranchExecuteTarget operand encoding. 2018-03-01 00:31:08 -08:00
Kevin Quick
610fdc93b5
[arm] Use renamed version of expected binary analysis results. 2018-02-27 10:48:11 -08:00
Kevin Quick
70d4cbee2d
[arm] Update ARMTests to validate binary analysis against expected results. 2018-02-27 10:46:01 -08:00
Kevin Quick
16dbc72948
[arm] Update naming scheme for generated A32 and T32 test executables. 2018-02-27 10:02:33 -08:00
Kevin Quick
1606ad994d
[arm] Add arch-specific handling for arm.isR15 uninterpreted function. 2018-02-23 15:40:19 -08:00
Kevin Quick
70a71cc64c
[arm] Minimal ELF binary format loading functionality for initial testing. 2018-02-22 18:00:18 -08:00
Kevin Quick
2983562204
[arm] Update for argument change to Macaw.Memory.LoadOptions. 2018-02-22 17:36:07 -08:00
Kevin Quick
50b4d3e784
[arm] remove unused semantics TH definitions. 2018-02-22 17:24:44 -08:00
Kevin Quick
83dc9ad394
[arm] Cleanup imports and avoid name conflicts in Macaw.ARM.Arch. 2018-02-22 17:16:55 -08:00
Kevin Quick
a15840ead7
[arm] whitespace/formatting cleanup. 2018-02-22 17:05:38 -08:00
Kevin Quick
b444c76969
[arm] Implement rewriteArchTermStmt (ARMSyscall only so far). 2018-02-22 17:03:26 -08:00
Kevin Quick
10d9144f1e
[arm] Added support for SVC syscall with argument. 2018-02-22 17:01:20 -08:00
Kevin Quick
747ce16f5f
[arm] Add arm_LR link register and initialize it in the abstract state. 2018-02-22 16:58:34 -08:00
Kevin Quick
3120eda53f
[arm] Add value extraction for LdstSoReg operand. 2018-02-22 16:24:02 -08:00
Kevin Quick
1027ad0c06
[arm] Simple armNonceAppEval: no arch-specific overrides needed. 2018-02-22 16:22:54 -08:00
Kevin Quick
a9b55b655b
[arm] Added identifyCall and identifyReturn trivial implementations. 2018-02-22 16:15:34 -08:00
Kevin Quick
cc623ae16f
[arm] Added trivial rewriteArchFn ... currently no ARM primitives. 2018-02-22 16:09:32 -08:00
Kevin Quick
99bbff0f5f
[arm] Add rewriteStmt (trivial implementation). 2018-02-22 16:08:01 -08:00
Kevin Quick
d2fb7b751a
[arm] Output logging information while generating instructions. 2018-02-22 15:43:54 -08:00
Kevin Quick
24f1f65cc6
[arm] Add value extraction for SoRegReg operand. 2018-02-20 08:52:02 -08:00
Kevin Quick
2e6245b378
[arm] Add value extraction for SoRegImm operand 2018-02-20 08:50:56 -08:00
Kevin Quick
0e540d2025
[arm] Added CPSR as a known register. 2018-02-20 08:38:17 -08:00
Kevin Quick
075a0f54e4
[arm] ExtractValue instances for Pred, SBit, and BranchExecuteTarget operands. 2018-02-07 11:38:04 -08:00
Kevin Quick
0ccba8974d
[arm] Initial nonce app eval, covering arm_is_r15 2018-02-02 16:49:56 -08:00
Kevin Quick
d5292afc76
[arm] add missing import for Operand support with genInstruction. 2018-02-02 16:46:47 -08:00
Kevin Quick
4595a15cc3
[arm] Initial operand support with GP registers handled. 2018-02-02 16:06:52 -08:00
Kevin Quick
f6a0f7bc49
[arm] ARM uses the term PC (Program Counter) instead of IP (Instruction Ptr). 2018-02-02 15:57:02 -08:00
Kevin Quick
f4280134cc
[arm] Correct word size import for disassembly errors. 2018-02-02 15:48:01 -08:00
Kevin Quick
55320831b4
[arm] Use error for TBD functions for runtime visible identification 2018-01-24 11:08:03 -08:00
Kevin Quick
7bc9b2c65b
[arm] Misc cleanup in ARM disassembly. 2018-01-08 13:40:57 -08:00
Kevin Quick
e48fcbd073
[arm] Initial support for abstract statement evaluation via semmc info. 2018-01-08 13:38:28 -08:00
Kevin Quick
704c778acd
Added initial ARM architecture-specific evaluation function. 2018-01-05 06:44:29 -08:00
Kevin Quick
b533f4a92a
Added ARM Macaw disassembly functionality. 2018-01-04 17:18:22 -08:00
Kevin Quick
716ae2a28f
Minimal initial ARM abstract block state creation and dependencies. 2018-01-04 16:14:20 -08:00
Kevin Quick
cd1c676554
[arm] Initial ARM ELF file macaw import and parse. 2017-12-28 16:30:25 -08:00
Kevin Quick
77d4341ac1
Initial tests for analyzing test-just-exit ARM binary. 2017-12-20 15:26:01 -08:00
Kevin Quick
046ce166d3
Initial empty framwork for macaw-arm ARM support. 2017-12-18 17:46:17 -08:00