Introduce target-specific macro for the concrete/symbolic limit

Define two target-specific macros, S2E_TARGET_CONC_LIMIT and
CPU_CONC_LIMIT, to specify the concrete/symbolic limit in CPU state.
These are often used to get the offset of each area on copying.
We currently support I386 (32/64 bits) and ARM targets.

Signed-off-by: Luca Bruno <lucab@debian.org>
Make use of S2E_TARGET_CONC_LIMIT and CPU_CONC_LIMIT

Minimize target-specific code and number of #ifdef, by reusing the
S2E_TARGET_CONC_LIMIT and CPU_CONC_LIMIT macro when handling CPU state
offsets and areas, in conjuction with the neutral CPUArchState struct.

Signed-off-by: Luca Bruno <lucab@debian.org>
Clean and fix BaseInstructions.o CFLAGS

Signed-off-by: Luca Bruno <lucab@debian.org>
Centralize S2E opcodes register usage definition

Make more esplicit the register usage of custom S2E opcodes.
This helps documenting the ASM interface and at the same time
removes a lot of target-specific code in favor of compile-time
constants.

Signed-off-by: Luca Bruno <lucab@debian.org>
Move debug messages to proper debug stream

Signed-off-by: Luca Bruno <lucab@debian.org>
Enable sleep opcode (0x32) for ARM

This commit enables the sleep custom instruction on ARM, and provides
one basic testcase for it.

Signed-off-by: Luca Bruno <lucab@debian.org>
Improve building of ARM testcases

Build all testcases via a proper Makefile and let passing environmental
options to it.

Signed-off-by: Luca Bruno <lucab@debian.org>
Enable building EdgeKiller plugin for ARM

Signed-off-by: Luca Bruno <lucab@debian.org>
Enable building CacheSim plugin for ARM

Signed-off-by: Luca Bruno <lucab@debian.org>