diff options
author | Chen Gang <gang.chen.5i5j@gmail.com> | 2015-09-26 13:00:35 +0800 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2015-10-07 20:03:15 +1100 |
commit | dd8070d865ad1b32876931f812a80645f97112ff (patch) | |
tree | 8817853137d05d0a14298dd80ffae1b8c1612686 /target-tilegx/cpu.h | |
parent | bf0f60a61b92f4f9ddf09a3cf4fc41796fa42aed (diff) |
target-tilegx: Decode ill pseudo-instructions
Notice raise and bpt, decoding the constants embedded in the
nop addil instruction in the x0 slot.
[rth: Generalize TILEGX_EXCP_OPCODE_ILL to TILEGX_EXCP_SIGNAL.
Drop validation of signal values.]
Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
Message-Id: <1443243635-4886-1-git-send-email-gang.chen.5i5j@gmail.com>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target-tilegx/cpu.h')
-rw-r--r-- | target-tilegx/cpu.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/target-tilegx/cpu.h b/target-tilegx/cpu.h index b9f5082b95..023ccd4735 100644 --- a/target-tilegx/cpu.h +++ b/target-tilegx/cpu.h @@ -61,6 +61,7 @@ typedef enum { TILEGX_EXCP_NONE = 0, TILEGX_EXCP_SYSCALL = 1, TILEGX_EXCP_SEGV = 2, + TILEGX_EXCP_SIGNAL = 3, TILEGX_EXCP_OPCODE_UNKNOWN = 0x101, TILEGX_EXCP_OPCODE_UNIMPLEMENTED = 0x102, TILEGX_EXCP_OPCODE_CMPEXCH = 0x103, @@ -87,10 +88,12 @@ typedef struct CPUTLGState { uint64_t pc; /* Current pc */ #if defined(CONFIG_USER_ONLY) + uint64_t excaddr; /* exception address */ uint64_t atomic_srca; /* Arguments to atomic "exceptions" */ uint64_t atomic_srcb; uint32_t atomic_dstr; - uint64_t excaddr; /* exception address */ + uint32_t signo; /* Signal number */ + uint32_t sigcode; /* Signal code */ #endif CPU_COMMON |