aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Cox <coxs@gnu.org>1996-06-09 02:13:52 +0000
committerStan Cox <coxs@gnu.org>1996-06-09 02:13:52 +0000
commit2d49677f9c86b2daf35e3cef2e3ff4635fb15dfc (patch)
tree938c77512e178e5c45ec4310a95eb947656ddaa1
parentd9118e7b3a36b50ffe51c24b04417d43df0c39c4 (diff)
downloadgcc-2d49677f9c86b2daf35e3cef2e3ff4635fb15dfc.zip
gcc-2d49677f9c86b2daf35e3cef2e3ff4635fb15dfc.tar.gz
gcc-2d49677f9c86b2daf35e3cef2e3ff4635fb15dfc.tar.bz2
(ix86_expand_prologue): Keep pic register load ahead
(ix86_expand_prologue): Keep pic register load ahead (print_operand): new letter 's' From-SVN: r12254
-rw-r--r--gcc/config/i386/i386.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 44852cd..4c72b0c 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1782,6 +1782,7 @@ ix86_expand_prologue ()
emit_insn (gen_prologue_set_got (xops[0],
gen_rtx (SYMBOL_REF, Pmode, "$_GLOBAL_OFFSET_TABLE_"),
gen_rtx (CONST_INT, Pmode, CODE_LABEL_NUMBER(xops[1]))));
+ SCHED_GROUP_P (get_last_insn()) = 1;
/* output_asm_insn ("addl $_GLOBAL_OFFSET_TABLE_,%0", xops);*/
}
else if (pic_reg_used)
@@ -1798,6 +1799,7 @@ ix86_expand_prologue ()
emit_insn (gen_prologue_set_got (xops[0],
gen_rtx (SYMBOL_REF, Pmode, "$_GLOBAL_OFFSET_TABLE_"),
gen_rtx (CONST_INT, Pmode, CODE_LABEL_NUMBER (xops[1]))));
+ SCHED_GROUP_P (get_last_insn()) = 1;
/* output_asm_insn ("addl $_GLOBAL_OFFSET_TABLE_+[.-%P1],%0", xops);*/
}
}
@@ -2681,6 +2683,8 @@ put_condition_code (code, file)
w -- print the operand as if it's a "word" (HImode) even if it isn't.
c -- don't print special prefixes before constant operands.
J -- print the appropriate jump operand.
+ s -- print a shift double count, followed by the assemblers argument
+ delimiter.
*/
void
@@ -2797,6 +2801,14 @@ print_operand (file, x, code)
}
abort ();
+ case 's':
+ if (GET_CODE (x) == CONST_INT || ! SHIFT_DOUBLE_OMITS_COUNT)
+ {
+ PRINT_OPERAND (file, x, 0);
+ fputs (AS2C (,) + 1, file);
+ }
+ return;
+
/* This is used by the conditional move instructions. */
case 'C':
put_condition_code (GET_CODE (x), file);