OSDN Git Service

Donn Terry <donn@interix.com>
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Apr 1999 19:15:29 +0000 (19:15 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Apr 1999 19:15:29 +0000 (19:15 +0000)
        * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _.
        * i386.c (print_operand): New %_ operator.
        (load_pic_register): Proper number of leading _ in GOT literal.
        * i386.md (prologue_get_pc_and_set_got): Likewise.
        * i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26525 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/i386.md
gcc/config/i386/unix.h

index 5d81e68..84223a7 100644 (file)
@@ -1,4 +1,12 @@
-Mon Apr 19 08:12:30 1999  Richard Henderson  <rth@cygnus.com>
+Sat Apr 17 19:13:22 1999  Donn Terry  <donn@interix.com>
+
+        * i386.h (PRINT_OPERAND_PUNCT_VALID_P): Allow _.
+        * i386.c (print_operand): New %_ operator.
+       (load_pic_register): Proper number of leading _ in GOT literal.
+        * i386.md (prologue_get_pc_and_set_got): Likewise.
+        * i386/unix.h (ASM_OUTPUT_MI_THUNK): Likewise.
+
+Sat Apr 17 19:13:07 1999  Richard Henderson  <rth@cygnus.com>
 
        * alpha.c (alpha_expand_prologue): Use gen_adddi3 instead of 
        emit_move_insn+plus_constant.  For NT, don't use the stack probe
index 843c84c..2ac0767 100644 (file)
@@ -1879,14 +1879,19 @@ load_pic_register (do_rtl)
        {
          emit_insn (gen_prologue_get_pc (xops[0], xops[1]));
          emit_insn (gen_prologue_set_got (xops[0],
-                                          gen_rtx (SYMBOL_REF, Pmode,
-                                                   "$_GLOBAL_OFFSET_TABLE_"),
+#ifdef YES_UNDERSCORES
+                                          gen_rtx_SYMBOL_REF (Pmode,
+                                                   "$__GLOBAL_OFFSET_TABLE_"),
+#else
+                                          gen_rtx_SYMBOL_REF (Pmode,
+                                                   "$_GLOBAL_OFFSET_TABLE_"),
+#endif
                                           xops[1]));
        }
       else
        {
          output_asm_insn (AS1 (call,%X1), xops);
-         output_asm_insn ("addl $_GLOBAL_OFFSET_TABLE_,%0", xops);
+         output_asm_insn ("addl $%__GLOBAL_OFFSET_TABLE_,%0", xops);
          pic_label_rtx = 0;
        }
     }
@@ -1909,7 +1914,7 @@ load_pic_register (do_rtl)
          ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
                                     CODE_LABEL_NUMBER (xops[1]));
          output_asm_insn (AS1 (pop%L0,%0), xops);
-         output_asm_insn ("addl $_GLOBAL_OFFSET_TABLE_+[.-%P1],%0", xops);
+         output_asm_insn ("addl $%__GLOBAL_OFFSET_TABLE_+[.-%P1],%0", xops);
        }
     }
 
@@ -3372,7 +3377,8 @@ put_condition_code (code, reverse_cc, mode, file)
    k --  likewise, print the SImode name of the register.
    h --  print the QImode name for a "high" register, either ah, bh, ch or dh.
    y --  print "st(0)" instead of "st" as a register.
-   P --  print as a PIC constant */
+   P --  print as a PIC constant 
+   _ --  output "_" if YES_UNDERSCORES */
 
 void
 print_operand (file, x, code)
@@ -3389,6 +3395,12 @@ print_operand (file, x, code)
            putc ('*', file);
          return;
 
+       case '_':
+#ifdef YES_UNDERSCORES
+         putc ('_', file);
+#endif
+         return;
+
        case 'L':
          PUT_OP_SIZE (code, 'l', file);
          return;
index a455d2d..b485471 100644 (file)
@@ -2578,7 +2578,7 @@ do { long l;                                              \
    F,f -- likewise, but for floating-point.  */
 
 #define PRINT_OPERAND_PUNCT_VALID_P(CODE)                              \
-  ((CODE) == '*')
+  ((CODE) == '*' || (CODE) == '_')
 
 /* Print the name of a register based on its machine mode and number.
    If CODE is 'w', pretend the mode is HImode.
index 28e35e4..e18c592 100644 (file)
@@ -6894,7 +6894,7 @@ byte_xor_operation:
   ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, \"L\",
                             CODE_LABEL_NUMBER (operands[1]));
   output_asm_insn (AS1 (pop%L0,%0), operands);
-  output_asm_insn (\"addl $_GLOBAL_OFFSET_TABLE_+[.-%X1],%0\", operands);
+  output_asm_insn (\"addl $%__GLOBAL_OFFSET_TABLE_+[.-%X1],%0\", operands);
   RET;
 }"
   [(set_attr "memory" "none")])
index 3ff2075..771d802 100644 (file)
@@ -176,7 +176,7 @@ do {                                                                              \
       output_asm_insn (AS1 (call,%P1), xops);                                \
       ASM_OUTPUT_INTERNAL_LABEL (FILE, "L", CODE_LABEL_NUMBER (xops[1]));     \
       output_asm_insn (AS1 (pop%L0,%0), xops);                               \
-      output_asm_insn ("addl $_GLOBAL_OFFSET_TABLE_+[.-%P1],%0", xops);              \
+      output_asm_insn ("addl $%__GLOBAL_OFFSET_TABLE_+[.-%P1],%0", xops);     \
       fprintf (FILE, "\tmovl ");                                             \
       assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0));         \
       fprintf (FILE, "@GOT(%%ebx),%%ecx\n\tpopl %%ebx\n\tjmp *%%ecx\n");      \