* config/obj-coff.c (fixup_segment): PE doens't use
authorSteve Chamberlain <sac@cygnus>
Thu, 29 Jun 1995 00:41:02 +0000 (00:41 +0000)
committerSteve Chamberlain <sac@cygnus>
Thu, 29 Jun 1995 00:41:02 +0000 (00:41 +0000)
the strange common symbol format that other 386s formats
do.
* config/tc-i386.c (md_begin): If LEX_AT defined then
'@' is in the set of identifiers.
(i386_operand): If LEX_AT, then don't look for @goto stuff.
* config/te-pe.h: Define LEX_AT.

gas/ChangeLog
gas/config/obj-coff.c
gas/config/tc-i386.c

index 7a31445..01a7439 100644 (file)
@@ -1,3 +1,13 @@
+Wed Jun 28 17:33:13 1995  Steve Chamberlain  <sac@slash.cygnus.com>
+
+       * config/obj-coff.c (fixup_segment): PE doens't use
+       the strange common symbol format that other 386s formats
+       do.
+       * config/tc-i386.c (md_begin): If LEX_AT defined then
+       '@' is in the set of identifiers.
+       (i386_operand): If LEX_AT, then don't look for @goto stuff.
+       * config/te-pe.h: Define LEX_AT.
+
 Wed Jun 28 17:49:59 1995  Ken Raeburn  <raeburn@cygnus.com>
 
        * doc/as.texinfo (H8/500 Floating Point): Indicate that IEEE FP
index 82b5e96..e80eeb9 100644 (file)
@@ -2983,7 +2983,7 @@ write_object_file ()
 
   H_SET_FILE_MAGIC_NUMBER (&headers, COFF_MAGIC);
 #ifndef OBJ_COFF_OMIT_TIMESTAMP
-  H_SET_TIME_STAMP (&headers, (long)time((long*)0));
+  H_SET_TIME_STAMP (&headers, (long)time((time_t *)0));
 #else
   H_SET_TIME_STAMP (&headers, 0);
 #endif
@@ -3674,7 +3674,7 @@ fixup_segment (segP, this_segment_type)
                      continue;
                    }           /* COBR */
 #endif /* TC_I960 */
-#if defined (TC_I386) || defined (TE_LYNX)
+#if (defined (TC_I386) || defined (TE_LYNX)) && !defined(TE_PE)
                  /* 386 COFF uses a peculiar format in which the
                     value of a common symbol is stored in the .text
                     segment (I've checked this on SVR3.2 and SCO
index 2b58aff..29c6b50 100644 (file)
@@ -477,6 +477,10 @@ md_begin ()
        if (isalpha (c) || c == '_' || c == '.' || isdigit (c))
          identifier_chars[c] = c;
 
+#ifdef LEX_AT
+       identifier_chars['@'] = '@';
+#endif
+
        if (c == ' ' || c == '\t')
          space_chars[c] = c;
       }
@@ -2158,7 +2162,7 @@ i386_operand (operand_string)
          save_input_line_pointer = input_line_pointer;
          input_line_pointer = displacement_string_start;
          END_STRING_AND_SAVE (displacement_string_end);
-
+#ifndef LEX_AT
          {
            /*
             * We can have operands of the form
@@ -2196,7 +2200,7 @@ i386_operand (operand_string)
              input_line_pointer = tmpbuf;
            }
          }
-
+#endif
          exp_seg = expression (exp);
 
 #ifdef BFD_ASSEMBLER
@@ -2795,17 +2799,6 @@ md_undefined_symbol (name)
   return 0;
 }
 
-/* Parse an operand that is machine-specific.
-   We just return without modifying the expression if we have nothing
-   to do.  */
-
-/* ARGSUSED */
-void
-md_operand (expressionP)
-     expressionS *expressionP;
-{
-}
-
 /* Round up a section size to the appropriate boundary.  */
 valueT
 md_section_align (segment, size)