Commit 1eeed24e by Jeffrey A Law Committed by Jeff Law

mips.c (block_move_loop): Test Pmode == DImode instead of TARGET_MIPS64.

        * mips.c (block_move_loop): Test Pmode == DImode instead of
        TARGET_MIPS64.
        (expand_block_move, save_restore_insns): Likewise.
        (function_prologue, mips_expand_prologue): Likewise.
        (mips_expand_epilogue): Likewise.
        * mips.h (POINTER_SIZE): Allow specific targets to override.
        (Pmode): Allow specific targets to override.
        (FUNCTION_PROFILER): Test Pmode == DImode instead of TARGET_MIPS64
        (POINTER_BOUNDARY, FUNCTION_MODE): Likewise.
        (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
        (TRAMPOLINE_ALIGNMENT, INITIALIZE_TRAMPOLINE): Likewise.
        (CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
        (ASM_OUTPUT_ADDR_DIFF_ELT, SIZE_TYPE, PTRDIFF_TYPE): Likewise.
        * mips.md (indirect, tablejump & casesi support): Test for
        Pmode == DImode instead of TARGET_MIPS64.
        (call patterns): Likewise.

From-SVN: r19354
parent d2f5ef70
Tue Apr 21 12:05:32 1998 Jeffrey A Law (law@cygnus.com)
* mips.c (block_move_loop): Test Pmode == DImode instead of
TARGET_MIPS64.
(expand_block_move, save_restore_insns): Likewise.
(function_prologue, mips_expand_prologue): Likewise.
(mips_expand_epilogue): Likewise.
* mips.h (POINTER_SIZE): Allow specific targets to override.
(Pmode): Allow specific targets to override.
(FUNCTION_PROFILER): Test Pmode == DImode instead of TARGET_MIPS64
(POINTER_BOUNDARY, FUNCTION_MODE): Likewise.
(TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
(TRAMPOLINE_ALIGNMENT, INITIALIZE_TRAMPOLINE): Likewise.
(CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
(ASM_OUTPUT_ADDR_DIFF_ELT, SIZE_TYPE, PTRDIFF_TYPE): Likewise.
* mips.md (indirect, tablejump & casesi support): Test for
Pmode == DImode instead of TARGET_MIPS64.
(call patterns): Likewise.
Tue Apr 21 09:43:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Tue Apr 21 09:43:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* objc/sendmsg.c: Define gen_rtx_MEM() to 1, as is already done * objc/sendmsg.c: Define gen_rtx_MEM() to 1, as is already done
......
...@@ -3008,7 +3008,7 @@ block_move_loop (dest_reg, src_reg, bytes, align, orig_dest, orig_src) ...@@ -3008,7 +3008,7 @@ block_move_loop (dest_reg, src_reg, bytes, align, orig_dest, orig_src)
if (bytes > 0x7fff) if (bytes > 0x7fff)
{ {
if (TARGET_LONG64) if (Pmode == DImode)
{ {
emit_insn (gen_movdi (final_src, bytes_rtx)); emit_insn (gen_movdi (final_src, bytes_rtx));
emit_insn (gen_adddi3 (final_src, final_src, src_reg)); emit_insn (gen_adddi3 (final_src, final_src, src_reg));
...@@ -3021,7 +3021,7 @@ block_move_loop (dest_reg, src_reg, bytes, align, orig_dest, orig_src) ...@@ -3021,7 +3021,7 @@ block_move_loop (dest_reg, src_reg, bytes, align, orig_dest, orig_src)
} }
else else
{ {
if (TARGET_LONG64) if (Pmode == DImode)
emit_insn (gen_adddi3 (final_src, src_reg, bytes_rtx)); emit_insn (gen_adddi3 (final_src, src_reg, bytes_rtx));
else else
emit_insn (gen_addsi3 (final_src, src_reg, bytes_rtx)); emit_insn (gen_addsi3 (final_src, src_reg, bytes_rtx));
...@@ -3031,7 +3031,7 @@ block_move_loop (dest_reg, src_reg, bytes, align, orig_dest, orig_src) ...@@ -3031,7 +3031,7 @@ block_move_loop (dest_reg, src_reg, bytes, align, orig_dest, orig_src)
bytes_rtx = GEN_INT (MAX_MOVE_BYTES); bytes_rtx = GEN_INT (MAX_MOVE_BYTES);
emit_insn (gen_movstrsi_internal (dest_mem, src_mem, bytes_rtx, align_rtx)); emit_insn (gen_movstrsi_internal (dest_mem, src_mem, bytes_rtx, align_rtx));
if (TARGET_LONG64) if (Pmode == DImode)
{ {
emit_insn (gen_adddi3 (src_reg, src_reg, bytes_rtx)); emit_insn (gen_adddi3 (src_reg, src_reg, bytes_rtx));
emit_insn (gen_adddi3 (dest_reg, dest_reg, bytes_rtx)); emit_insn (gen_adddi3 (dest_reg, dest_reg, bytes_rtx));
...@@ -3143,7 +3143,7 @@ expand_block_move (operands) ...@@ -3143,7 +3143,7 @@ expand_block_move (operands)
bytes -= leftover; bytes -= leftover;
if (TARGET_LONG64) if (Pmode == DImode)
{ {
emit_insn (gen_iordi3 (temp, src_reg, dest_reg)); emit_insn (gen_iordi3 (temp, src_reg, dest_reg));
emit_insn (gen_anddi3 (temp, temp, GEN_INT (UNITS_PER_WORD-1))); emit_insn (gen_anddi3 (temp, temp, GEN_INT (UNITS_PER_WORD-1)));
...@@ -5733,7 +5733,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -5733,7 +5733,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
base_offset = large_offset; base_offset = large_offset;
if (file == (FILE *)0) if (file == (FILE *)0)
{ {
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_adddi3 (base_reg_rtx, large_reg, stack_pointer_rtx)); insn = emit_insn (gen_adddi3 (base_reg_rtx, large_reg, stack_pointer_rtx));
else else
insn = emit_insn (gen_addsi3 (base_reg_rtx, large_reg, stack_pointer_rtx)); insn = emit_insn (gen_addsi3 (base_reg_rtx, large_reg, stack_pointer_rtx));
...@@ -5742,7 +5742,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -5742,7 +5742,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
} }
else else
fprintf (file, "\t%s\t%s,%s,%s\n", fprintf (file, "\t%s\t%s,%s,%s\n",
TARGET_LONG64 ? "daddu" : "addu", Pmode == DImode ? "daddu" : "addu",
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
reg_names[REGNO (large_reg)], reg_names[REGNO (large_reg)],
reg_names[STACK_POINTER_REGNUM]); reg_names[STACK_POINTER_REGNUM]);
...@@ -5780,7 +5780,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -5780,7 +5780,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
RTX_FRAME_RELATED_P (insn) = 1; RTX_FRAME_RELATED_P (insn) = 1;
} }
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_adddi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx)); insn = emit_insn (gen_adddi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx));
else else
insn = emit_insn (gen_addsi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx)); insn = emit_insn (gen_addsi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx));
...@@ -5792,7 +5792,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -5792,7 +5792,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
(long)base_offset, (long)base_offset,
(long)base_offset, (long)base_offset,
TARGET_LONG64 ? "daddu" : "addu", Pmode == DImode ? "daddu" : "addu",
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
reg_names[STACK_POINTER_REGNUM]); reg_names[STACK_POINTER_REGNUM]);
...@@ -5947,7 +5947,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -5947,7 +5947,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
base_offset = large_offset; base_offset = large_offset;
if (file == (FILE *)0) if (file == (FILE *)0)
{ {
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_adddi3 (base_reg_rtx, large_reg, stack_pointer_rtx)); insn = emit_insn (gen_adddi3 (base_reg_rtx, large_reg, stack_pointer_rtx));
else else
insn = emit_insn (gen_addsi3 (base_reg_rtx, large_reg, stack_pointer_rtx)); insn = emit_insn (gen_addsi3 (base_reg_rtx, large_reg, stack_pointer_rtx));
...@@ -5956,7 +5956,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -5956,7 +5956,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
} }
else else
fprintf (file, "\t%s\t%s,%s,%s\n", fprintf (file, "\t%s\t%s,%s,%s\n",
TARGET_LONG64 ? "daddu" : "addu", Pmode == DImode ? "daddu" : "addu",
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
reg_names[REGNO (large_reg)], reg_names[REGNO (large_reg)],
reg_names[STACK_POINTER_REGNUM]); reg_names[STACK_POINTER_REGNUM]);
...@@ -5996,7 +5996,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -5996,7 +5996,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
if (store_p) if (store_p)
RTX_FRAME_RELATED_P (insn) = 1; RTX_FRAME_RELATED_P (insn) = 1;
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_adddi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx)); insn = emit_insn (gen_adddi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx));
else else
insn = emit_insn (gen_addsi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx)); insn = emit_insn (gen_addsi3 (base_reg_rtx, base_reg_rtx, stack_pointer_rtx));
...@@ -6008,7 +6008,7 @@ save_restore_insns (store_p, large_reg, large_offset, file) ...@@ -6008,7 +6008,7 @@ save_restore_insns (store_p, large_reg, large_offset, file)
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
(long)base_offset, (long)base_offset,
(long)base_offset, (long)base_offset,
TARGET_LONG64 ? "daddu" : "addu", Pmode == DImode ? "daddu" : "addu",
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
reg_names[MIPS_TEMP2_REGNUM], reg_names[MIPS_TEMP2_REGNUM],
reg_names[STACK_POINTER_REGNUM]); reg_names[STACK_POINTER_REGNUM]);
...@@ -6242,7 +6242,7 @@ function_prologue (file, size) ...@@ -6242,7 +6242,7 @@ function_prologue (file, size)
if (tsize > 0) if (tsize > 0)
{ {
fprintf (file, "\t%s\t%s,%s,%ld\n", fprintf (file, "\t%s\t%s,%s,%ld\n",
(TARGET_LONG64 ? "dsubu" : "subu"), (Pmode == DImode ? "dsubu" : "subu"),
sp_str, sp_str, tsize); sp_str, sp_str, tsize);
fprintf (file, "\t.cprestore %ld\n", current_frame_info.args_size); fprintf (file, "\t.cprestore %ld\n", current_frame_info.args_size);
} }
...@@ -6403,7 +6403,7 @@ mips_expand_prologue () ...@@ -6403,7 +6403,7 @@ mips_expand_prologue ()
if (TARGET_MIPS16 && current_function_outgoing_args_size != 0) if (TARGET_MIPS16 && current_function_outgoing_args_size != 0)
{ {
rtx incr = GEN_INT (current_function_outgoing_args_size); rtx incr = GEN_INT (current_function_outgoing_args_size);
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_adddi3 (hard_frame_pointer_rtx, insn = emit_insn (gen_adddi3 (hard_frame_pointer_rtx,
stack_pointer_rtx, stack_pointer_rtx,
incr)); incr));
...@@ -6412,7 +6412,7 @@ mips_expand_prologue () ...@@ -6412,7 +6412,7 @@ mips_expand_prologue ()
stack_pointer_rtx, stack_pointer_rtx,
incr)); incr));
} }
else if (TARGET_LONG64) else if (Pmode == DImode)
insn = emit_insn (gen_movdi (hard_frame_pointer_rtx, stack_pointer_rtx)); insn = emit_insn (gen_movdi (hard_frame_pointer_rtx, stack_pointer_rtx));
else else
insn = emit_insn (gen_movsi (hard_frame_pointer_rtx, stack_pointer_rtx)); insn = emit_insn (gen_movsi (hard_frame_pointer_rtx, stack_pointer_rtx));
...@@ -6501,7 +6501,7 @@ mips_expand_prologue () ...@@ -6501,7 +6501,7 @@ mips_expand_prologue ()
tsize_rtx = tmp_rtx; tsize_rtx = tmp_rtx;
} }
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_subdi3 (stack_pointer_rtx, stack_pointer_rtx, insn = emit_insn (gen_subdi3 (stack_pointer_rtx, stack_pointer_rtx,
tsize_rtx)); tsize_rtx));
else else
...@@ -6528,7 +6528,7 @@ mips_expand_prologue () ...@@ -6528,7 +6528,7 @@ mips_expand_prologue ()
reg_rtx = gen_rtx (REG, Pmode, 3); reg_rtx = gen_rtx (REG, Pmode, 3);
emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx); emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx);
emit_move_insn (reg_rtx, tsize_rtx); emit_move_insn (reg_rtx, tsize_rtx);
if (TARGET_LONG64) if (Pmode == DImode)
emit_insn (gen_subdi3 (hard_frame_pointer_rtx, emit_insn (gen_subdi3 (hard_frame_pointer_rtx,
hard_frame_pointer_rtx, hard_frame_pointer_rtx,
reg_rtx)); reg_rtx));
...@@ -6557,7 +6557,7 @@ mips_expand_prologue () ...@@ -6557,7 +6557,7 @@ mips_expand_prologue ()
if (current_function_outgoing_args_size != 0) if (current_function_outgoing_args_size != 0)
{ {
rtx incr = GEN_INT (current_function_outgoing_args_size); rtx incr = GEN_INT (current_function_outgoing_args_size);
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_adddi3 (hard_frame_pointer_rtx, insn = emit_insn (gen_adddi3 (hard_frame_pointer_rtx,
hard_frame_pointer_rtx, hard_frame_pointer_rtx,
incr)); incr));
...@@ -6570,7 +6570,7 @@ mips_expand_prologue () ...@@ -6570,7 +6570,7 @@ mips_expand_prologue ()
else if (TARGET_MIPS16 && current_function_outgoing_args_size != 0) else if (TARGET_MIPS16 && current_function_outgoing_args_size != 0)
{ {
rtx incr = GEN_INT (current_function_outgoing_args_size); rtx incr = GEN_INT (current_function_outgoing_args_size);
if (TARGET_LONG64) if (Pmode == DImode)
insn = emit_insn (gen_adddi3 (hard_frame_pointer_rtx, insn = emit_insn (gen_adddi3 (hard_frame_pointer_rtx,
stack_pointer_rtx, stack_pointer_rtx,
incr)); incr));
...@@ -6579,7 +6579,7 @@ mips_expand_prologue () ...@@ -6579,7 +6579,7 @@ mips_expand_prologue ()
stack_pointer_rtx, stack_pointer_rtx,
incr)); incr));
} }
else if (TARGET_LONG64) else if (Pmode == DImode)
insn = emit_insn (gen_movdi (hard_frame_pointer_rtx, stack_pointer_rtx)); insn = emit_insn (gen_movdi (hard_frame_pointer_rtx, stack_pointer_rtx));
else else
insn = emit_insn (gen_movsi (hard_frame_pointer_rtx, stack_pointer_rtx)); insn = emit_insn (gen_movsi (hard_frame_pointer_rtx, stack_pointer_rtx));
...@@ -6749,7 +6749,7 @@ mips_expand_epilogue () ...@@ -6749,7 +6749,7 @@ mips_expand_epilogue ()
rtx g6_rtx = gen_rtx (REG, Pmode, GP_REG_FIRST + 6); rtx g6_rtx = gen_rtx (REG, Pmode, GP_REG_FIRST + 6);
emit_move_insn (g6_rtx, GEN_INT (tsize)); emit_move_insn (g6_rtx, GEN_INT (tsize));
if (TARGET_LONG64) if (Pmode == DImode)
emit_insn (gen_adddi3 (hard_frame_pointer_rtx, emit_insn (gen_adddi3 (hard_frame_pointer_rtx,
hard_frame_pointer_rtx, hard_frame_pointer_rtx,
g6_rtx)); g6_rtx));
...@@ -6764,7 +6764,7 @@ mips_expand_epilogue () ...@@ -6764,7 +6764,7 @@ mips_expand_epilogue ()
tsize_rtx = GEN_INT (tsize); tsize_rtx = GEN_INT (tsize);
} }
if (TARGET_LONG64) if (Pmode == DImode)
emit_insn (gen_movdi (stack_pointer_rtx, hard_frame_pointer_rtx)); emit_insn (gen_movdi (stack_pointer_rtx, hard_frame_pointer_rtx));
else else
emit_insn (gen_movsi (stack_pointer_rtx, hard_frame_pointer_rtx)); emit_insn (gen_movsi (stack_pointer_rtx, hard_frame_pointer_rtx));
...@@ -6787,7 +6787,7 @@ mips_expand_epilogue () ...@@ -6787,7 +6787,7 @@ mips_expand_epilogue ()
abort (); abort ();
emit_insn (gen_blockage ()); emit_insn (gen_blockage ());
if (TARGET_LONG64 && tsize != 0) if (Pmode == DImode && tsize != 0)
emit_insn (gen_adddi3 (stack_pointer_rtx, stack_pointer_rtx, emit_insn (gen_adddi3 (stack_pointer_rtx, stack_pointer_rtx,
tsize_rtx)); tsize_rtx));
else if (tsize != 0) else if (tsize != 0)
......
...@@ -1314,10 +1314,12 @@ do { \ ...@@ -1314,10 +1314,12 @@ do { \
/* Width in bits of a pointer. /* Width in bits of a pointer.
See also the macro `Pmode' defined below. */ See also the macro `Pmode' defined below. */
#ifndef POINTER_SIZE
#define POINTER_SIZE (TARGET_LONG64 ? 64 : 32) #define POINTER_SIZE (TARGET_LONG64 ? 64 : 32)
#endif
/* Allocation boundary (in *bits*) for storing pointers in memory. */ /* Allocation boundary (in *bits*) for storing pointers in memory. */
#define POINTER_BOUNDARY (TARGET_LONG64 ? 64 : 32) #define POINTER_BOUNDARY (Pmode == DImode ? 64 : 32)
/* Allocation boundary (in *bits*) for storing arguments in argument list. */ /* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY (TARGET_64BIT ? 64 : 32) #define PARM_BOUNDARY (TARGET_64BIT ? 64 : 32)
...@@ -2495,7 +2497,7 @@ typedef struct mips_args { ...@@ -2495,7 +2497,7 @@ typedef struct mips_args {
TARGET_64BIT ? "dsubu" : "subu", \ TARGET_64BIT ? "dsubu" : "subu", \
reg_names[STACK_POINTER_REGNUM], \ reg_names[STACK_POINTER_REGNUM], \
reg_names[STACK_POINTER_REGNUM], \ reg_names[STACK_POINTER_REGNUM], \
TARGET_LONG64 ? 16 : 8); \ Pmode == DImode ? 16 : 8); \
fprintf (FILE, "\t.set\treorder\n"); \ fprintf (FILE, "\t.set\treorder\n"); \
fprintf (FILE, "\t.set\tat\n"); \ fprintf (FILE, "\t.set\tat\n"); \
} }
...@@ -2524,7 +2526,7 @@ typedef struct mips_args { ...@@ -2524,7 +2526,7 @@ typedef struct mips_args {
fprintf (STREAM, "\t.word\t0x03e00821\t\t# move $1,$31\n"); \ fprintf (STREAM, "\t.word\t0x03e00821\t\t# move $1,$31\n"); \
fprintf (STREAM, "\t.word\t0x04110001\t\t# bgezal $0,.+8\n"); \ fprintf (STREAM, "\t.word\t0x04110001\t\t# bgezal $0,.+8\n"); \
fprintf (STREAM, "\t.word\t0x00000000\t\t# nop\n"); \ fprintf (STREAM, "\t.word\t0x00000000\t\t# nop\n"); \
if (TARGET_LONG64) \ if (Pmode == DImode) \
{ \ { \
fprintf (STREAM, "\t.word\t0xdfe30014\t\t# ld $3,20($31)\n"); \ fprintf (STREAM, "\t.word\t0xdfe30014\t\t# ld $3,20($31)\n"); \
fprintf (STREAM, "\t.word\t0xdfe2001c\t\t# ld $2,28($31)\n"); \ fprintf (STREAM, "\t.word\t0xdfe2001c\t\t# ld $2,28($31)\n"); \
...@@ -2537,7 +2539,7 @@ typedef struct mips_args { ...@@ -2537,7 +2539,7 @@ typedef struct mips_args {
fprintf (STREAM, "\t.word\t0x0060c821\t\t# move $25,$3 (abicalls)\n"); \ fprintf (STREAM, "\t.word\t0x0060c821\t\t# move $25,$3 (abicalls)\n"); \
fprintf (STREAM, "\t.word\t0x00600008\t\t# jr $3\n"); \ fprintf (STREAM, "\t.word\t0x00600008\t\t# jr $3\n"); \
fprintf (STREAM, "\t.word\t0x0020f821\t\t# move $31,$1\n"); \ fprintf (STREAM, "\t.word\t0x0020f821\t\t# move $31,$1\n"); \
if (TARGET_LONG64) \ if (Pmode == DImode) \
{ \ { \
fprintf (STREAM, "\t.dword\t0x00000000\t\t# <function address>\n"); \ fprintf (STREAM, "\t.dword\t0x00000000\t\t# <function address>\n"); \
fprintf (STREAM, "\t.dword\t0x00000000\t\t# <static chain value>\n"); \ fprintf (STREAM, "\t.dword\t0x00000000\t\t# <static chain value>\n"); \
...@@ -2552,11 +2554,11 @@ typedef struct mips_args { ...@@ -2552,11 +2554,11 @@ typedef struct mips_args {
/* A C expression for the size in bytes of the trampoline, as an /* A C expression for the size in bytes of the trampoline, as an
integer. */ integer. */
#define TRAMPOLINE_SIZE (32 + (TARGET_LONG64 ? 16 : 8)) #define TRAMPOLINE_SIZE (32 + (Pmode == DImode ? 16 : 8))
/* Alignment required for trampolines, in bits. */ /* Alignment required for trampolines, in bits. */
#define TRAMPOLINE_ALIGNMENT (TARGET_LONG64 ? 64 : 32) #define TRAMPOLINE_ALIGNMENT (Pmode == DImode ? 64 : 32)
/* INITIALIZE_TRAMPOLINE calls this library function to flush /* INITIALIZE_TRAMPOLINE calls this library function to flush
program and data caches. */ program and data caches. */
...@@ -2574,7 +2576,7 @@ typedef struct mips_args { ...@@ -2574,7 +2576,7 @@ typedef struct mips_args {
#define INITIALIZE_TRAMPOLINE(ADDR, FUNC, CHAIN) \ #define INITIALIZE_TRAMPOLINE(ADDR, FUNC, CHAIN) \
{ \ { \
rtx addr = ADDR; \ rtx addr = ADDR; \
if (TARGET_LONG64) \ if (Pmode == DImode) \
{ \ { \
emit_move_insn (gen_rtx (MEM, DImode, plus_constant (addr, 32)), FUNC); \ emit_move_insn (gen_rtx (MEM, DImode, plus_constant (addr, 32)), FUNC); \
emit_move_insn (gen_rtx (MEM, DImode, plus_constant (addr, 40)), CHAIN);\ emit_move_insn (gen_rtx (MEM, DImode, plus_constant (addr, 40)), CHAIN);\
...@@ -3075,7 +3077,7 @@ while (0) ...@@ -3075,7 +3077,7 @@ while (0)
overflow is no more likely than the overflow in a branch overflow is no more likely than the overflow in a branch
instruction. Large functions can currently break in both ways. */ instruction. Large functions can currently break in both ways. */
#define CASE_VECTOR_MODE \ #define CASE_VECTOR_MODE \
(TARGET_MIPS16 ? HImode : TARGET_LONG64 ? DImode : SImode) (TARGET_MIPS16 ? HImode : Pmode == DImode ? DImode : SImode)
/* Define as C expression which evaluates to nonzero if the tablejump /* Define as C expression which evaluates to nonzero if the tablejump
instruction expects the table to contain offsets from the address of the instruction expects the table to contain offsets from the address of the
...@@ -3136,13 +3138,15 @@ while (0) ...@@ -3136,13 +3138,15 @@ while (0)
After generation of rtl, the compiler makes no further distinction After generation of rtl, the compiler makes no further distinction
between pointers and any other objects of this machine mode. */ between pointers and any other objects of this machine mode. */
#ifndef Pmode
#define Pmode (TARGET_LONG64 ? DImode : SImode) #define Pmode (TARGET_LONG64 ? DImode : SImode)
#endif
/* A function address in a call instruction /* A function address in a call instruction
is a word address (for indexing purposes) is a word address (for indexing purposes)
so give the MEM rtx a words's mode. */ so give the MEM rtx a words's mode. */
#define FUNCTION_MODE (TARGET_LONG64 ? DImode : SImode) #define FUNCTION_MODE (Pmode == DImode ? DImode : SImode)
/* Define TARGET_MEM_FUNCTIONS if we want to use calls to memcpy and /* Define TARGET_MEM_FUNCTIONS if we want to use calls to memcpy and
memset, instead of the BSD functions bcopy and bzero. */ memset, instead of the BSD functions bcopy and bzero. */
...@@ -4147,7 +4151,7 @@ do { \ ...@@ -4147,7 +4151,7 @@ do { \
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \ #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \
fprintf (STREAM, "\t%s\t%sL%d\n", \ fprintf (STREAM, "\t%s\t%sL%d\n", \
TARGET_LONG64 ? ".dword" : ".word", \ Pmode == DImode ? ".dword" : ".word", \
LOCAL_LABEL_PREFIX, \ LOCAL_LABEL_PREFIX, \
VALUE) VALUE)
...@@ -4162,15 +4166,15 @@ do { \ ...@@ -4162,15 +4166,15 @@ do { \
LOCAL_LABEL_PREFIX, VALUE, LOCAL_LABEL_PREFIX, REL); \ LOCAL_LABEL_PREFIX, VALUE, LOCAL_LABEL_PREFIX, REL); \
else if (TARGET_EMBEDDED_PIC) \ else if (TARGET_EMBEDDED_PIC) \
fprintf (STREAM, "\t%s\t%sL%d-%sLS%d\n", \ fprintf (STREAM, "\t%s\t%sL%d-%sLS%d\n", \
TARGET_LONG64 ? ".dword" : ".word", \ Pmode == DImode ? ".dword" : ".word", \
LOCAL_LABEL_PREFIX, VALUE, LOCAL_LABEL_PREFIX, REL); \ LOCAL_LABEL_PREFIX, VALUE, LOCAL_LABEL_PREFIX, REL); \
else if (mips_abi == ABI_32) \ else if (mips_abi == ABI_32) \
fprintf (STREAM, "\t%s\t%sL%d\n", \ fprintf (STREAM, "\t%s\t%sL%d\n", \
TARGET_LONG64 ? ".gpdword" : ".gpword", \ Pmode == DImode ? ".gpdword" : ".gpword", \
LOCAL_LABEL_PREFIX, VALUE); \ LOCAL_LABEL_PREFIX, VALUE); \
else \ else \
fprintf (STREAM, "\t%s\t%sL%d\n", \ fprintf (STREAM, "\t%s\t%sL%d\n", \
TARGET_LONG64 ? ".dword" : ".word", \ Pmode == DImode ? ".dword" : ".word", \
LOCAL_LABEL_PREFIX, VALUE); \ LOCAL_LABEL_PREFIX, VALUE); \
} while (0) } while (0)
...@@ -4410,12 +4414,12 @@ while (0) ...@@ -4410,12 +4414,12 @@ while (0)
#ifndef SIZE_TYPE #ifndef SIZE_TYPE
#define NO_BUILTIN_SIZE_TYPE #define NO_BUILTIN_SIZE_TYPE
#define SIZE_TYPE (TARGET_LONG64 ? "long unsigned int" : "unsigned int") #define SIZE_TYPE (Pmode == DImode ? "long unsigned int" : "unsigned int")
#endif #endif
#ifndef PTRDIFF_TYPE #ifndef PTRDIFF_TYPE
#define NO_BUILTIN_PTRDIFF_TYPE #define NO_BUILTIN_PTRDIFF_TYPE
#define PTRDIFF_TYPE (TARGET_LONG64 ? "long int" : "int") #define PTRDIFF_TYPE (Pmode == DImode ? "long int" : "int")
#endif #endif
/* See mips_expand_prologue's use of loadgp for when this should be /* See mips_expand_prologue's use of loadgp for when this should be
......
...@@ -8598,7 +8598,7 @@ move\\t%0,%z4\\n\\ ...@@ -8598,7 +8598,7 @@ move\\t%0,%z4\\n\\
if (GET_CODE (dest) != REG || GET_MODE (dest) != Pmode) if (GET_CODE (dest) != REG || GET_MODE (dest) != Pmode)
operands[0] = copy_to_mode_reg (Pmode, dest); operands[0] = copy_to_mode_reg (Pmode, dest);
if (!TARGET_LONG64) if (!(Pmode == DImode))
emit_jump_insn (gen_indirect_jump_internal1 (operands[0])); emit_jump_insn (gen_indirect_jump_internal1 (operands[0]));
else else
emit_jump_insn (gen_indirect_jump_internal2 (operands[0])); emit_jump_insn (gen_indirect_jump_internal2 (operands[0]));
...@@ -8609,7 +8609,7 @@ move\\t%0,%z4\\n\\ ...@@ -8609,7 +8609,7 @@ move\\t%0,%z4\\n\\
(define_insn "indirect_jump_internal1" (define_insn "indirect_jump_internal1"
[(set (pc) (match_operand:SI 0 "register_operand" "d"))] [(set (pc) (match_operand:SI 0 "register_operand" "d"))]
"!TARGET_LONG64" "!(Pmode == DImode)"
"%*j\\t%0" "%*j\\t%0"
[(set_attr "type" "jump") [(set_attr "type" "jump")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -8617,7 +8617,7 @@ move\\t%0,%z4\\n\\ ...@@ -8617,7 +8617,7 @@ move\\t%0,%z4\\n\\
(define_insn "indirect_jump_internal2" (define_insn "indirect_jump_internal2"
[(set (pc) (match_operand:DI 0 "se_register_operand" "d"))] [(set (pc) (match_operand:DI 0 "se_register_operand" "d"))]
"TARGET_LONG64" "Pmode == DImode"
"%*j\\t%0" "%*j\\t%0"
[(set_attr "type" "jump") [(set_attr "type" "jump")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -8638,7 +8638,7 @@ move\\t%0,%z4\\n\\ ...@@ -8638,7 +8638,7 @@ move\\t%0,%z4\\n\\
{ {
if (GET_MODE (operands[0]) != HImode) if (GET_MODE (operands[0]) != HImode)
abort (); abort ();
if (!TARGET_LONG64) if (!(Pmode == DImode))
emit_jump_insn (gen_tablejump_mips161 (operands[0], operands[1])); emit_jump_insn (gen_tablejump_mips161 (operands[0], operands[1]));
else else
emit_jump_insn (gen_tablejump_mips162 (operands[0], operands[1])); emit_jump_insn (gen_tablejump_mips162 (operands[0], operands[1]));
...@@ -8650,14 +8650,14 @@ move\\t%0,%z4\\n\\ ...@@ -8650,14 +8650,14 @@ move\\t%0,%z4\\n\\
if (! flag_pic) if (! flag_pic)
{ {
if (!TARGET_LONG64) if (!(Pmode == DImode))
emit_jump_insn (gen_tablejump_internal1 (operands[0], operands[1])); emit_jump_insn (gen_tablejump_internal1 (operands[0], operands[1]));
else else
emit_jump_insn (gen_tablejump_internal2 (operands[0], operands[1])); emit_jump_insn (gen_tablejump_internal2 (operands[0], operands[1]));
} }
else else
{ {
if (!TARGET_LONG64) if (!(Pmode == DImode))
emit_jump_insn (gen_tablejump_internal3 (operands[0], operands[1])); emit_jump_insn (gen_tablejump_internal3 (operands[0], operands[1]));
else else
emit_jump_insn (gen_tablejump_internal4 (operands[0], operands[1])); emit_jump_insn (gen_tablejump_internal4 (operands[0], operands[1]));
...@@ -8671,7 +8671,7 @@ move\\t%0,%z4\\n\\ ...@@ -8671,7 +8671,7 @@ move\\t%0,%z4\\n\\
[(set (pc) [(set (pc)
(match_operand:SI 0 "register_operand" "d")) (match_operand:SI 0 "register_operand" "d"))
(use (label_ref (match_operand 1 "" "")))] (use (label_ref (match_operand 1 "" "")))]
"!TARGET_LONG64" "!(Pmode == DImode)"
"%*j\\t%0" "%*j\\t%0"
[(set_attr "type" "jump") [(set_attr "type" "jump")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -8681,7 +8681,7 @@ move\\t%0,%z4\\n\\ ...@@ -8681,7 +8681,7 @@ move\\t%0,%z4\\n\\
[(set (pc) [(set (pc)
(match_operand:DI 0 "se_register_operand" "d")) (match_operand:DI 0 "se_register_operand" "d"))
(use (label_ref (match_operand 1 "" "")))] (use (label_ref (match_operand 1 "" "")))]
"TARGET_LONG64" "Pmode == DImode"
"%*j\\t%0" "%*j\\t%0"
[(set_attr "type" "jump") [(set_attr "type" "jump")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -8698,7 +8698,7 @@ move\\t%0,%z4\\n\\ ...@@ -8698,7 +8698,7 @@ move\\t%0,%z4\\n\\
[(set (pc) (plus:SI (sign_extend:SI [(set (pc) (plus:SI (sign_extend:SI
(match_operand:HI 0 "register_operand" "d")) (match_operand:HI 0 "register_operand" "d"))
(label_ref:SI (match_operand:SI 1 "" ""))))] (label_ref:SI (match_operand:SI 1 "" ""))))]
"TARGET_MIPS16 && !TARGET_LONG64" "TARGET_MIPS16 && !(Pmode == DImode)"
" "
{ {
if (operands[0]) /* eliminate unused code warnings. */ if (operands[0]) /* eliminate unused code warnings. */
...@@ -8720,7 +8720,7 @@ move\\t%0,%z4\\n\\ ...@@ -8720,7 +8720,7 @@ move\\t%0,%z4\\n\\
[(set (pc) (plus:DI (sign_extend:DI [(set (pc) (plus:DI (sign_extend:DI
(match_operand:HI 0 "register_operand" "d")) (match_operand:HI 0 "register_operand" "d"))
(label_ref:DI (match_operand:SI 1 "" ""))))] (label_ref:DI (match_operand:SI 1 "" ""))))]
"TARGET_MIPS16 && TARGET_LONG64" "TARGET_MIPS16 && Pmode == DImode"
" "
{ {
if (operands[0]) /* eliminate unused code warnings. */ if (operands[0]) /* eliminate unused code warnings. */
...@@ -8748,7 +8748,7 @@ move\\t%0,%z4\\n\\ ...@@ -8748,7 +8748,7 @@ move\\t%0,%z4\\n\\
[(set (pc) [(set (pc)
(plus:SI (match_operand:SI 0 "register_operand" "d") (plus:SI (match_operand:SI 0 "register_operand" "d")
(label_ref:SI (match_operand:SI 1 "" ""))))] (label_ref:SI (match_operand:SI 1 "" ""))))]
"!TARGET_LONG64 && next_active_insn (insn) != 0 "!(Pmode == DImode) && next_active_insn (insn) != 0
&& GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC && GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC
&& PREV_INSN (next_active_insn (insn)) == operands[1]" && PREV_INSN (next_active_insn (insn)) == operands[1]"
"* "*
...@@ -8776,7 +8776,7 @@ move\\t%0,%z4\\n\\ ...@@ -8776,7 +8776,7 @@ move\\t%0,%z4\\n\\
[(set (pc) [(set (pc)
(plus:DI (match_operand:DI 0 "se_register_operand" "d") (plus:DI (match_operand:DI 0 "se_register_operand" "d")
(label_ref:DI (match_operand:SI 1 "" ""))))] (label_ref:DI (match_operand:SI 1 "" ""))))]
"TARGET_LONG64 && next_active_insn (insn) != 0 "Pmode == DImode && next_active_insn (insn) != 0
&& GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC && GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC
&& PREV_INSN (next_active_insn (insn)) == operands[1]" && PREV_INSN (next_active_insn (insn)) == operands[1]"
"%*j\\t%0" "%*j\\t%0"
...@@ -8810,7 +8810,7 @@ move\\t%0,%z4\\n\\ ...@@ -8810,7 +8810,7 @@ move\\t%0,%z4\\n\\
" "
{ {
/* We need slightly different code for eight byte table entries. */ /* We need slightly different code for eight byte table entries. */
if (TARGET_LONG64) if (Pmode == DImode)
abort (); abort ();
if (operands[0]) if (operands[0])
...@@ -8871,7 +8871,7 @@ move\\t%0,%z4\\n\\ ...@@ -8871,7 +8871,7 @@ move\\t%0,%z4\\n\\
"TARGET_ABICALLS" "TARGET_ABICALLS"
" "
{ {
if (TARGET_LONG64) if (Pmode == DImode)
emit_insn (gen_builtin_setjmp_setup_64 (operands[0])); emit_insn (gen_builtin_setjmp_setup_64 (operands[0]));
else else
emit_insn (gen_builtin_setjmp_setup_32 (operands[0])); emit_insn (gen_builtin_setjmp_setup_32 (operands[0]));
...@@ -8882,14 +8882,14 @@ move\\t%0,%z4\\n\\ ...@@ -8882,14 +8882,14 @@ move\\t%0,%z4\\n\\
[(set (mem:SI (plus:SI (match_operand:SI 0 "register_operand" "r") [(set (mem:SI (plus:SI (match_operand:SI 0 "register_operand" "r")
(const_int 12))) (const_int 12)))
(reg:SI 28))] (reg:SI 28))]
"TARGET_ABICALLS && ! TARGET_LONG64" "TARGET_ABICALLS && ! (Pmode == DImode)"
"") "")
(define_expand "builtin_setjmp_setup_64" (define_expand "builtin_setjmp_setup_64"
[(set (mem:DI (plus:DI (match_operand:DI 0 "register_operand" "r") [(set (mem:DI (plus:DI (match_operand:DI 0 "register_operand" "r")
(const_int 24))) (const_int 24)))
(reg:DI 28))] (reg:DI 28))]
"TARGET_ABICALLS && TARGET_LONG64" "TARGET_ABICALLS && Pmode == DImode"
"") "")
;; For o32/n32/n64, we need to arrange for longjmp to put the ;; For o32/n32/n64, we need to arrange for longjmp to put the
...@@ -8901,7 +8901,7 @@ move\\t%0,%z4\\n\\ ...@@ -8901,7 +8901,7 @@ move\\t%0,%z4\\n\\
" "
{ {
/* The elements of the buffer are, in order: */ /* The elements of the buffer are, in order: */
int W = (TARGET_LONG64 ? 8 : 4); int W = (Pmode == DImode ? 8 : 4);
rtx fp = gen_rtx_MEM (Pmode, operands[0]); rtx fp = gen_rtx_MEM (Pmode, operands[0]);
rtx lab = gen_rtx_MEM (Pmode, plus_constant (operands[0], 1*W)); rtx lab = gen_rtx_MEM (Pmode, plus_constant (operands[0], 1*W));
rtx stack = gen_rtx_MEM (Pmode, plus_constant (operands[0], 2*W)); rtx stack = gen_rtx_MEM (Pmode, plus_constant (operands[0], 2*W));
...@@ -9138,7 +9138,7 @@ move\\t%0,%z4\\n\\ ...@@ -9138,7 +9138,7 @@ move\\t%0,%z4\\n\\
[(call (mem:SI (match_operand:SI 0 "register_operand" "r")) [(call (mem:SI (match_operand:SI 0 "register_operand" "r"))
(match_operand 1 "" "i")) (match_operand 1 "" "i"))
(clobber (match_operand:SI 2 "register_operand" "=d"))] (clobber (match_operand:SI 2 "register_operand" "=d"))]
"!TARGET_LONG64 && !TARGET_ABICALLS && TARGET_LONG_CALLS" "!(Pmode == DImode) && !TARGET_ABICALLS && TARGET_LONG_CALLS"
"%*jal\\t%2,%0" "%*jal\\t%2,%0"
[(set_attr "type" "call") [(set_attr "type" "call")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -9148,7 +9148,7 @@ move\\t%0,%z4\\n\\ ...@@ -9148,7 +9148,7 @@ move\\t%0,%z4\\n\\
[(call (mem:DI (match_operand:DI 0 "se_register_operand" "r")) [(call (mem:DI (match_operand:DI 0 "se_register_operand" "r"))
(match_operand 1 "" "i")) (match_operand 1 "" "i"))
(clobber (match_operand:SI 2 "register_operand" "=d"))] (clobber (match_operand:SI 2 "register_operand" "=d"))]
"TARGET_LONG64 && !TARGET_ABICALLS && TARGET_LONG_CALLS" "Pmode == DImode && !TARGET_ABICALLS && TARGET_LONG_CALLS"
"%*jal\\t%2,%0" "%*jal\\t%2,%0"
[(set_attr "type" "call") [(set_attr "type" "call")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -9158,7 +9158,7 @@ move\\t%0,%z4\\n\\ ...@@ -9158,7 +9158,7 @@ move\\t%0,%z4\\n\\
[(call (mem:SI (match_operand:SI 0 "register_operand" "r")) [(call (mem:SI (match_operand:SI 0 "register_operand" "r"))
(match_operand 1 "" "i")) (match_operand 1 "" "i"))
(clobber (match_operand:SI 2 "register_operand" "=d"))] (clobber (match_operand:SI 2 "register_operand" "=d"))]
"!TARGET_LONG64 && TARGET_ABICALLS && TARGET_LONG_CALLS" "!(Pmode == DImode) && TARGET_ABICALLS && TARGET_LONG_CALLS"
"* "*
{ {
if (REGNO (operands[0]) != PIC_FUNCTION_ADDR_REGNUM) if (REGNO (operands[0]) != PIC_FUNCTION_ADDR_REGNUM)
...@@ -9174,7 +9174,7 @@ move\\t%0,%z4\\n\\ ...@@ -9174,7 +9174,7 @@ move\\t%0,%z4\\n\\
[(call (mem:DI (match_operand:DI 0 "se_register_operand" "r")) [(call (mem:DI (match_operand:DI 0 "se_register_operand" "r"))
(match_operand 1 "" "i")) (match_operand 1 "" "i"))
(clobber (match_operand:SI 2 "register_operand" "=d"))] (clobber (match_operand:SI 2 "register_operand" "=d"))]
"TARGET_LONG64 && TARGET_ABICALLS && TARGET_LONG_CALLS" "Pmode == DImode && TARGET_ABICALLS && TARGET_LONG_CALLS"
"* "*
{ {
if (REGNO (operands[0]) != PIC_FUNCTION_ADDR_REGNUM) if (REGNO (operands[0]) != PIC_FUNCTION_ADDR_REGNUM)
...@@ -9336,7 +9336,7 @@ move\\t%0,%z4\\n\\ ...@@ -9336,7 +9336,7 @@ move\\t%0,%z4\\n\\
(call (mem:SI (match_operand:SI 1 "register_operand" "r")) (call (mem:SI (match_operand:SI 1 "register_operand" "r"))
(match_operand 2 "" "i"))) (match_operand 2 "" "i")))
(clobber (match_operand:SI 3 "register_operand" "=d"))] (clobber (match_operand:SI 3 "register_operand" "=d"))]
"!TARGET_LONG64 && !TARGET_ABICALLS && TARGET_LONG_CALLS" "!(Pmode == DImode) && !TARGET_ABICALLS && TARGET_LONG_CALLS"
"%*jal\\t%3,%1" "%*jal\\t%3,%1"
[(set_attr "type" "call") [(set_attr "type" "call")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -9347,7 +9347,7 @@ move\\t%0,%z4\\n\\ ...@@ -9347,7 +9347,7 @@ move\\t%0,%z4\\n\\
(call (mem:DI (match_operand:DI 1 "se_register_operand" "r")) (call (mem:DI (match_operand:DI 1 "se_register_operand" "r"))
(match_operand 2 "" "i"))) (match_operand 2 "" "i")))
(clobber (match_operand:SI 3 "register_operand" "=d"))] (clobber (match_operand:SI 3 "register_operand" "=d"))]
"TARGET_LONG64 && !TARGET_ABICALLS && TARGET_LONG_CALLS" "Pmode == DImode && !TARGET_ABICALLS && TARGET_LONG_CALLS"
"%*jal\\t%3,%1" "%*jal\\t%3,%1"
[(set_attr "type" "call") [(set_attr "type" "call")
(set_attr "mode" "none") (set_attr "mode" "none")
...@@ -9358,7 +9358,7 @@ move\\t%0,%z4\\n\\ ...@@ -9358,7 +9358,7 @@ move\\t%0,%z4\\n\\
(call (mem:SI (match_operand:SI 1 "register_operand" "r")) (call (mem:SI (match_operand:SI 1 "register_operand" "r"))
(match_operand 2 "" "i"))) (match_operand 2 "" "i")))
(clobber (match_operand:SI 3 "register_operand" "=d"))] (clobber (match_operand:SI 3 "register_operand" "=d"))]
"!TARGET_LONG64 && TARGET_ABICALLS && TARGET_LONG_CALLS" "!(Pmode == DImode) && TARGET_ABICALLS && TARGET_LONG_CALLS"
"* "*
{ {
if (REGNO (operands[1]) != PIC_FUNCTION_ADDR_REGNUM) if (REGNO (operands[1]) != PIC_FUNCTION_ADDR_REGNUM)
...@@ -9375,7 +9375,7 @@ move\\t%0,%z4\\n\\ ...@@ -9375,7 +9375,7 @@ move\\t%0,%z4\\n\\
(call (mem:DI (match_operand:DI 1 "se_register_operand" "r")) (call (mem:DI (match_operand:DI 1 "se_register_operand" "r"))
(match_operand 2 "" "i"))) (match_operand 2 "" "i")))
(clobber (match_operand:SI 3 "register_operand" "=d"))] (clobber (match_operand:SI 3 "register_operand" "=d"))]
"TARGET_LONG64 && TARGET_ABICALLS && TARGET_LONG_CALLS" "Pmode == DImode && TARGET_ABICALLS && TARGET_LONG_CALLS"
"* "*
{ {
if (REGNO (operands[1]) != PIC_FUNCTION_ADDR_REGNUM) if (REGNO (operands[1]) != PIC_FUNCTION_ADDR_REGNUM)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment