aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2020-06-08 08:38:54 +0200
committerJan Beulich <jbeulich@suse.com>2020-06-08 08:38:54 +0200
commitaf32b7220966364b083ce771ba45f35491293d55 (patch)
treec5fdea2de131791e24bfd08c2389201633333f9c /gas
parent8a6fb3f9bb5105e58f6800de9089a4bdb0cc0cd6 (diff)
downloadgdb-af32b7220966364b083ce771ba45f35491293d55.zip
gdb-af32b7220966364b083ce771ba45f35491293d55.tar.gz
gdb-af32b7220966364b083ce771ba45f35491293d55.tar.bz2
x86: also allow %st(N) in CFI directives
In 0e0eea782025 ("x86: x87-related adjustments") I screwed up CFI directives with FPU support disabled, by moving the conditional there across a check of "allow_pseudo_reg". Add the missing check.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-i386.c3
-rw-r--r--gas/testsuite/gas/cfi/cfi-i386.s1
3 files changed, 9 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d244ab4..787c0fd 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,11 @@
2020-06-08 Jan Beulich <jbeulich@suse.com>
+ * config/tc-i386.c (parse_real_register): Add allow_pseudo_reg
+ check to %st(N) parsing logic.
+ * testsuite/gas/cfi/cfi-i386.s: Set "generic32" arch.
+
+2020-06-08 Jan Beulich <jbeulich@suse.com>
+
* config/tc-i386.c (bad_reg): New.
(check_VecOperations, i386_att_operand, i386_parse_name): Check
for it.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index e34ff85..6b94798 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -12452,7 +12452,8 @@ parse_real_register (char *reg_string, char **end_op)
{
if (!cpu_arch_flags.bitfield.cpu8087
&& !cpu_arch_flags.bitfield.cpu287
- && !cpu_arch_flags.bitfield.cpu387)
+ && !cpu_arch_flags.bitfield.cpu387
+ && !allow_pseudo_reg)
return (const reg_entry *) NULL;
if (is_space_char (*s))
diff --git a/gas/testsuite/gas/cfi/cfi-i386.s b/gas/testsuite/gas/cfi/cfi-i386.s
index 09fd466..0816a0c 100644
--- a/gas/testsuite/gas/cfi/cfi-i386.s
+++ b/gas/testsuite/gas/cfi/cfi-i386.s
@@ -1,4 +1,5 @@
.text
+ .arch generic32
#; func_locvars
#; - function with a space on the stack