summaryrefslogtreecommitdiff
path: root/src/target/arm_disassembler.h
diff options
context:
space:
mode:
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-03-28 16:31:55 +0000
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-03-28 16:31:55 +0000
commit4a5f45e87d593d6911da680cb92ffbc9b43c9486 (patch)
treed41ddb8594b5fab03c12075cbc4d3888d59ed027 /src/target/arm_disassembler.h
parent5ed126c4f90948fbf53d186dc4ef49018fb5ecfc (diff)
downloadopenocd+libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.tar.gz
openocd+libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.tar.bz2
openocd+libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.tar.xz
openocd+libswd-4a5f45e87d593d6911da680cb92ffbc9b43c9486.zip
- merged XScale branch back into trunk
- fixed some compiler warnigns in amt_jtagaccel.c, bitbang.c, parport.c - free working area and register stuff if str7x block write algorithm failed - check PC after exiting a target algorithm in armv4_5.c git-svn-id: svn://svn.berlios.de/openocd/trunk@135 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/arm_disassembler.h')
-rw-r--r--src/target/arm_disassembler.h36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/target/arm_disassembler.h b/src/target/arm_disassembler.h
index c6dc6967..b55c8855 100644
--- a/src/target/arm_disassembler.h
+++ b/src/target/arm_disassembler.h
@@ -126,28 +126,30 @@ typedef struct arm_b_bl_bx_blx_instr_s
u32 target_address;
} arm_b_bl_bx_blx_instr_t;
+union arm_shifter_operand
+{
+ struct {
+ u32 immediate;
+ } immediate;
+ struct {
+ u8 Rm;
+ u8 shift;
+ u8 shift_imm;
+ } immediate_shift;
+ struct {
+ u8 Rm;
+ u8 shift;
+ u8 Rs;
+ } register_shift;
+};
+
typedef struct arm_data_proc_instr_s
{
int variant; /* 0: immediate, 1: immediate_shift, 2: register_shift */
u8 S;
u8 Rn;
u8 Rd;
- union
- {
- struct {
- u8 immediate;
- } immediate;
- struct {
- u8 Rm;
- u8 shift;
- u8 shift_imm;
- } immediate_shift;
- struct {
- u8 Rm;
- u8 shift;
- u8 Rs;
- } register_shift;
- } shifter_operand;
+ union arm_shifter_operand shifter_operand;
} arm_data_proc_instr_t;
typedef struct arm_load_store_instr_s
@@ -192,7 +194,7 @@ typedef struct arm_instruction_s
} arm_instruction_t;
-extern int evaluate_opcode(u32 opcode, u32 address, arm_instruction_t *instruction);
+extern int arm_evaluate_opcode(u32 opcode, u32 address, arm_instruction_t *instruction);
#define COND(opcode) (arm_condition_strings[(opcode & 0xf0000000)>>28])