Register definitions for treating the 4 ARM64 flags separately
authorSunny Shah <shah28@wisc.edu>
Fri, 23 Sep 2016 17:49:43 +0000 (12:49 -0500)
committerSunny Shah <shah28@wisc.edu>
Fri, 23 Sep 2016 17:49:43 +0000 (12:49 -0500)
commitae8875e306a2c2ad77d2ea9b4b9c41e1770c8d74
tree08d867d3af05a236c7a0dc04598924b634802a39
parent49e7cd96b6ba4e6db7607156cf6f126c2492021c
Register definitions for treating the 4 ARM64 flags separately

As with dataflow analysis on other architectures, each flag should be treated as a distinct unit. Following changes, made as part of this commit, achieve this:
- n, z, c and v have been added as individual register definitions in dyn_regs with their baseIDs indicating their positions in the pstate register. The conversions from Dyninst to ROSE registers for these new additions are also defined.
- The 'nzcv' enum value in ARMv8PstateFields (for use in ARM semantics) is split into 4 different values, one for each flag. Each of these is also added to the register dictionary for ARMv8 in Registers.C.
common/h/dyn_regs.h
common/src/dyn_regs.C
dataflowAPI/rose/semantics/Registers.C
external/rose/armv8InstructionEnum.h