aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-09-15 09:55:34 +0200
committerJan Beulich <jbeulich@suse.com>2023-09-15 09:55:34 +0200
commitb44fef84a9696d3e571f79aea3e0adea0b4ae02d (patch)
tree844f091a0b000970fe876f3751ef5dbc0da6b876 /gas
parentf8bf778c811236ea93c1b325bb9a2f38f9276104 (diff)
downloadgdb-b44fef84a9696d3e571f79aea3e0adea0b4ae02d.zip
gdb-b44fef84a9696d3e571f79aea3e0adea0b4ae02d.tar.gz
gdb-b44fef84a9696d3e571f79aea3e0adea0b4ae02d.tar.bz2
x86: re-order update_code_flag()
Do checks before updating state, and bail upon failure of either of the checks. While moving the code, eliminate some redundancy.
Diffstat (limited to 'gas')
-rw-r--r--gas/config/tc-i386.c35
1 files changed, 16 insertions, 19 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index e8ec296..1208e30 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -2609,7 +2609,21 @@ add_prefix (unsigned int prefix)
static void
update_code_flag (int value, int check)
{
- PRINTF_LIKE ((*as_error));
+ PRINTF_LIKE ((*as_error)) = check ? as_fatal : as_bad;
+
+ if (value == CODE_64BIT && !cpu_arch_flags.bitfield.cpulm )
+ {
+ as_error (_("64bit mode not supported on `%s'."),
+ cpu_arch_name ? cpu_arch_name : default_arch);
+ return;
+ }
+
+ if (value == CODE_32BIT && !cpu_arch_flags.bitfield.cpui386)
+ {
+ as_error (_("32bit mode not supported on `%s'."),
+ cpu_arch_name ? cpu_arch_name : default_arch);
+ return;
+ }
flag_code = (enum flag_code) value;
if (flag_code == CODE_64BIT)
@@ -2622,24 +2636,7 @@ update_code_flag (int value, int check)
cpu_arch_flags.bitfield.cpu64 = 0;
cpu_arch_flags.bitfield.cpuno64 = 1;
}
- if (value == CODE_64BIT && !cpu_arch_flags.bitfield.cpulm )
- {
- if (check)
- as_error = as_fatal;
- else
- as_error = as_bad;
- (*as_error) (_("64bit mode not supported on `%s'."),
- cpu_arch_name ? cpu_arch_name : default_arch);
- }
- if (value == CODE_32BIT && !cpu_arch_flags.bitfield.cpui386)
- {
- if (check)
- as_error = as_fatal;
- else
- as_error = as_bad;
- (*as_error) (_("32bit mode not supported on `%s'."),
- cpu_arch_name ? cpu_arch_name : default_arch);
- }
+
stackop_size = '\0';
}