diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-03-02 18:10:41 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-03-02 18:10:41 +0000 |
commit | f3ad332b7e9c0af3d6113f57269449a54511432d (patch) | |
tree | 993836c3443e07de1f50d05e90f891a86bcd1d74 /gcc/config/m68k/m68k.c | |
parent | 4b4494ef2297c07108037e29275a754119dc22ea (diff) |
(output_function_prologue): Use m68k svr4 PIC format to
load the address of _GLOBAL_OFFSET_TABLE_ into PIC_OFFSET_TABLE_REG
in function prologue when doing PIC.
(print_operand_address): Always add "@GOT" suffix for the
global object operand when doing PIC.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3595 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/m68k.c')
-rw-r--r-- | gcc/config/m68k/m68k.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index c7f3dc1dcfb..a5d210cd493 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -216,10 +216,7 @@ output_function_prologue (stream, size) if (flag_pic && current_function_uses_pic_offset_table) { #ifdef MOTOROLA - asm_fprintf (stream, "\t%Omove.l %0I__GLOBAL_OFFSET_TABLE_, %s\n", - reg_names[PIC_OFFSET_TABLE_REGNUM]); - asm_fprintf (stream, "\tlea.l (%Rpc,%s.l),%s\n", - reg_names[PIC_OFFSET_TABLE_REGNUM], + asm_fprintf (stream, "\t%Olea (%Rpc, %U_GLOBAL_OFFSET_TABLE_@GOTPC), %s\n", reg_names[PIC_OFFSET_TABLE_REGNUM]); #else asm_fprintf (stream, "\tmovel %0I__GLOBAL_OFFSET_TABLE_, %s\n", @@ -1873,10 +1870,8 @@ print_operand_address (file, addr) if (addr != 0) { output_addr_const (file, addr); - if ((flag_pic == 1) && (breg == pic_offset_table_rtx)) - fprintf (file, ".w"); - if ((flag_pic == 2) && (breg == pic_offset_table_rtx)) - fprintf (file, ".l"); + if (flag_pic && (breg == pic_offset_table_rtx)) + fprintf (file, "@GOT"); } fprintf (file, "(%s", reg_names[REGNO (breg)]); if (ireg != 0) |