x86: also allow %st(N) in CFI directives
authorJan Beulich <jbeulich@suse.com>
Mon, 8 Jun 2020 06:38:54 +0000 (08:38 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 8 Jun 2020 06:38:54 +0000 (08:38 +0200)
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.

gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/cfi/cfi-i386.s

index d244ab4c574c740e0fb87c90211db4670b9d0bce..787c0fd44ed5881a407a7209992364581f1891bd 100644 (file)
@@ -1,3 +1,9 @@
+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.
index e34ff8568d464ec4d6dbc775e827e54c5cf09529..6b9479872c239349ff59ad4ee493d5f8ac72a365 100644 (file)
@@ -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))
index 09fd466d364a2c40f06d875cea9a6a725a77d973..0816a0c524b8c932ef7040444cee4c1ccba4b201 100644 (file)
@@ -1,4 +1,5 @@
        .text
+       .arch generic32
 
 #; func_locvars
 #; - function with a space on the stack