Files
capstone/suite
semihalf-oleksy-michalina 85960f9edd arm64: handling of system registers added in ARMv8.1/2 (#960)
* arm64: handling of system registers added in ARMv8.2

This commit adds handling of system registers added in ARMv8.2.
Those registers are accessed by mrs and msr instructions.
Changes based on https://static.docs.arm.com/ddi0487/b/DDI0487B_a_armv8_arm.pdf, chapters D7.2-5.

List of added registers:
id_mmfr4_el1
id_aa64mmfr2_el1
sctlr_el12
cpacr_el12
ttbr0_el12
ttbr1_el12
ttbr1_el2
tcr_el12
spsr_el12
elr_el12
afsr0_el12
afsr1_el12
esr_el12
far_el12
mair_el12
amair_el12
vbar_el12
cntkctl_el12
cnthv_ctl_el2
cnthv_cval_el2
cnthv_tval_el2
cntp_tval_el02
cntp_cval_el02
cntv_ctl_el02
ntv_cval_el02
cntv_tval_el02
lorid_el1
lorc_el1
lorea_el1
lorn_el1
lorsa_el1
contextidr_el12

sign-of: Michalina Oleksy (https://github.com/layika)

* arm64: handling of system registers added in ARMv8.1/2

v8.1:
PAN (https://static.docs.arm.com/ddi0487/b/DDI0487B_a_armv8_arm.pdf, page 358)
PAN (as pstate field)
contextdir_el2

v8.2:
UAO (https://static.docs.arm.com/ddi0487/b/DDI0487B_a_armv8_arm.pdf, page 403)
UAO (as pstate field)

* arm64: handling of system registers for statistical profiling

Added handling of system registers for statistical profiling extension based on https://static.docs.arm.com/ddi0586/a/DDI0586A_Statistical_Profiling_Extension.pdf

* Update AArch64BaseInfo.h

* arm64: An attempt to fix indentation
2017-07-29 18:27:32 +08:00
..
2016-04-26 09:47:30 +08:00
2014-10-01 18:17:37 +08:00
2014-01-21 12:02:30 +08:00
2014-03-10 15:44:48 +08:00

This directory contains some tools used by developers of Capstone project.
Average users should ignore all the contents here.


- arm/
	Test some ARM's special input.

- MC/
	Input used to test various architectures & modes.

- benchmark.py
	This script benchmarks Python binding by disassembling some random code.

- test_*.sh
	Run all the tests and send the output to external file to be compared later.
	This is useful when we want to verify if a commit (wrongly) changes
	the disassemble result.

- compile_all.sh
	Compile Capstone for all platforms (*nix32, clang, cygwin, cross-compile) &
	report the result as pass or fail.

- fuzz.py
	This simple script disassembles random code for all archs (or selected arch)
	in order to find segfaults.

- test_mc.sh
    This script compares the output of Capstone with LLVM's llvm-mc with the
	input coming from MC/. This relies on test_mc.py to do all the hard works.

- x86odd.py
	Test some tricky X86 instructions.

- ppcbranch.py
	Test some tricky branch PPC instructions.