x86: Always define TC_PARSE_CONS_EXPRESSION
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 11 Jun 2021 13:19:16 +0000 (06:19 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 11 Jun 2021 13:31:59 +0000 (06:31 -0700)
Always define TC_PARSE_CONS_EXPRESSION to properly wrap constants for
all x86 targets.

* config/tc-i386.c (x86_cons): Handle GOT/PLT relocations only
if needed.
* config/tc-i386.h (TC_PARSE_CONS_EXPRESSION): Always define.

gas/ChangeLog
gas/config/tc-i386.c
gas/config/tc-i386.h

index 11693d33182131d27e345f8c7f46ead2cca1404e..6bcb035621e348eba91e1131c2a638cc5b532a83 100644 (file)
@@ -1,3 +1,9 @@
+2021-06-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (x86_cons): Handle GOT/PLT relocations only
+       if needed.
+       * config/tc-i386.h (TC_PARSE_CONS_EXPRESSION): Always define.
+
 2021-06-11  Nelson Chu  <nelson.chu@sifive.com>
 
        * config/tc-riscv.c (riscv_set_arch): Call riscv_set_rvc
index 47c12b97651d059a301c03b5503da75b1e368823..b3f9f31db768abac979ddf60a63937745a0ce6c7 100644 (file)
@@ -10413,6 +10413,9 @@ x86_cons (expressionS *exp, int size)
 {
   bfd_reloc_code_real_type got_reloc = NO_RELOC;
 
+#if ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
+      && !defined (LEX_AT)) \
+    || defined (TE_PE)
   intel_syntax = -intel_syntax;
 
   exp->X_md = 0;
@@ -10468,6 +10471,9 @@ x86_cons (expressionS *exp, int size)
 
   if (intel_syntax)
     i386_intel_simplify (exp);
+#else
+  expression (exp);
+#endif
 
   /* If not 64bit, massage value, to account for wraparound when !BFD64.  */
   if (size == 4 && exp->X_op == O_constant && !object_64bit)
index 9ca9727d4ca26451fc6b361105ac7cc4ecd3cb95..90d23da7d91b480e41a538924d128baa96cf5034 100644 (file)
@@ -126,10 +126,7 @@ extern const char *i386_comment_chars;
 #define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
 #endif
 
-#if ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \
-     && !defined (LEX_AT)) || defined (TE_PE)
 #define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) x86_cons (EXP, NBYTES)
-#endif
 extern bfd_reloc_code_real_type x86_cons (expressionS *, int);
 
 #define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP, RELOC)    \