diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-03-30 14:08:48 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-03-30 14:08:48 +0200 |
commit | 346848622660e06b352613d425fe6ad67194ed14 (patch) | |
tree | 0496b3e75a3aff2756eb607f32265f02c7ff1275 | |
parent | 6288d05f11827f993308e6a2693516e2c123c0fb (diff) | |
download | gdb-346848622660e06b352613d425fe6ad67194ed14.zip gdb-346848622660e06b352613d425fe6ad67194ed14.tar.gz gdb-346848622660e06b352613d425fe6ad67194ed14.tar.bz2 |
x86: drop REGNAM_{AL,AX,EAX}
The former two are unused anyway. And having such constants isn't very
helpful either, when they live in a place where updating the register
table wouldn't even allow noticing the need to adjust these constants.
-rw-r--r-- | gas/ChangeLog | 8 | ||||
-rw-r--r-- | gas/config/tc-i386-intel.c | 4 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 8 | ||||
-rw-r--r-- | opcodes/ChangeLog | 4 | ||||
-rw-r--r-- | opcodes/i386-opc.h | 5 |
5 files changed, 21 insertions, 8 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 468be74..210a938 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,13 @@ 2021-03-30 Jan Beulich <jbeulich@suse.com> + * config/tc-i386.c (reg_eax): New. + (md_begin): Initialize reg_eax. + * config/tc-i386-intel.c (i386_intel_simplify_register): Use + reg_eax. + (i386_intel_simplify): Likewise. + +2021-03-30 Jan Beulich <jbeulich@suse.com> + * config/tc-i386.c (reg_st0): New. (md_begin): Convert to switch(). Initialize reg_st0. Don't insert other st(N). diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c index 4c9f0b7..e61e757 100644 --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -335,7 +335,7 @@ i386_intel_simplify_register (expressionS *e) else { /* esp is invalid as index */ - intel_state.index = i386_regtab + REGNAM_EAX + ESP_REG_NUM; + intel_state.index = reg_eax + ESP_REG_NUM; } return 2; } @@ -500,7 +500,7 @@ static int i386_intel_simplify (expressionS *e) break; default: /* esp is invalid as index */ - intel_state.index = i386_regtab + REGNAM_EAX + ESP_REG_NUM; + intel_state.index = reg_eax + ESP_REG_NUM; break; } diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 3a7d504..7fa31da 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -214,6 +214,7 @@ static const char *default_arch = DEFAULT_ARCH; static const reg_entry bad_reg = { "<bad>", OPERAND_TYPE_NONE, 0, 0, { Dw2Inval, Dw2Inval } }; +static const reg_entry *reg_eax; static const reg_entry *reg_st0; static const reg_entry *reg_k0; @@ -3091,7 +3092,12 @@ md_begin (void) switch (regtab->reg_type.bitfield.class) { case Reg: - if (regtab->reg_type.bitfield.tbyte) + if (regtab->reg_type.bitfield.dword) + { + if (regtab->reg_type.bitfield.instance == Accum) + reg_eax = regtab; + } + else if (regtab->reg_type.bitfield.tbyte) { /* There's no point inserting st(<N>) in the hash table, as parentheses aren't included in register_chars[] anyway. */ diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 5acb021..fb5b8c7 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,9 @@ 2021-03-30 Jan Beulich <jbeulich@suse.com> + * i386-opc.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Delete. + +2021-03-30 Jan Beulich <jbeulich@suse.com> + * i386-opc.h (REGNAM_AL, REGNAM_AX, REGNAM_EAX): Adjust values. * i386-reg.tbl (st): Move down. (st(0)): Delete. Extend comment. diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index a2a657e..9c451de 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -990,11 +990,6 @@ typedef struct } reg_entry; -/* Entries in i386_regtab. */ -#define REGNAM_AL 0 -#define REGNAM_AX 24 -#define REGNAM_EAX 40 - extern const reg_entry i386_regtab[]; extern const unsigned int i386_regtab_size; |