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
..
MC arm64: handling of system registers added in ARMv8.1/2 (#960) 2017-07-29 18:27:32 +08:00
arm fixed issue #726 (snprintf undefined in test_arm_regression) 2016-09-15 15:58:05 +02:00
benchmark remove myinttypes.h 2016-04-26 09:47:30 +08:00
fuzz suite: move fuzz_hardness.c to suite/fuzz/ 2015-06-16 17:32:03 +08:00
regress Add Makefile to suite/regress/ directory. 2015-11-18 21:36:39 +01:00
README suite: add testsuite tool 'test_mc.sh' to compare output of Capstone & LLVM 2014-11-07 17:24:01 +08:00
benchmark.py suite: change CS_MODE_32 -> CS_MODE_MIPS32, CS_MODE_64 -> CS_MODE_MIPS64 for fuzz.py & benchmark.py 2014-11-17 17:38:18 +08:00
compile_all.sh last change to support BSD broke cross-comple. fix Makefile so cross-compile work again 2014-01-16 21:07:59 +08:00
fuzz.py suite: change CS_MODE_32 -> CS_MODE_MIPS32, CS_MODE_64 -> CS_MODE_MIPS64 for fuzz.py & benchmark.py 2014-11-17 17:38:18 +08:00
patch_major_os_version.py suite: correct authors of patch_major_os_version.py 2015-05-06 10:39:28 +08:00
ppcbranch.py suite: chmod +x ppcbranch.py 2014-10-01 18:17:37 +08:00
python_capstone_setup.py suite: add python_capstone_setup.py 2015-06-07 15:55:05 +08:00
regress.py suite: add verbose output mode to regress.py 2015-08-24 20:53:43 +08:00
test_all.sh suite: add test_all.sh 2014-01-21 12:02:30 +08:00
test_c.sh suite: add missing tests to test_c.sh 2014-11-13 11:39:58 +08:00
test_group_name.py suite: better support for Python3 for test_group_name.py 2015-04-26 17:00:51 +08:00
test_mc.py suite: update Mips modes of MC input to CS_MODE_MIPS32 & CS_MODE_MIPS64 2014-11-13 12:46:48 +08:00
test_mc.sh suite: add testsuite tool 'test_mc.sh' to compare output of Capstone & LLVM 2014-11-07 17:24:01 +08:00
test_python.sh suite: add Sparc support 2014-03-10 15:44:48 +08:00
x86odd.py suite: add crc32 instruction to x86odd.py 2014-11-16 19:48:41 +08:00

README

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.