summaryrefslogtreecommitdiff
path: root/target-tilegx/cpu.h
diff options
context:
space:
mode:
authorChen Gang <gang.chen.5i5j@gmail.com>2015-09-26 13:00:35 +0800
committerRichard Henderson <rth@twiddle.net>2015-10-07 20:03:15 +1100
commitdd8070d865ad1b32876931f812a80645f97112ff (patch)
tree8817853137d05d0a14298dd80ffae1b8c1612686 /target-tilegx/cpu.h
parentbf0f60a61b92f4f9ddf09a3cf4fc41796fa42aed (diff)
downloadqemu-dd8070d865ad1b32876931f812a80645f97112ff.tar.gz
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.h5
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