Commit dd18ae56 by Nick Clifton Committed by Nick Clifton

Replace %R%s with %r

From-SVN: r28264
parent fe0503ea
Mon Jul 26 11:58:46 1999 Nick Clifton <nickc@cygnus.com>
* config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
* config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
Mon Jul 26 10:23:36 1999 Nick Clifton <nickc@cygnus.com> Mon Jul 26 10:23:36 1999 Nick Clifton <nickc@cygnus.com>
* final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
......
...@@ -4409,16 +4409,18 @@ fp_const_from_val (r) ...@@ -4409,16 +4409,18 @@ fp_const_from_val (r)
must follow the register list. */ must follow the register list. */
void void
print_multi_reg (stream, instr, mask, hat) print_multi_reg (stream, instr, reg, mask, hat)
FILE * stream; FILE * stream;
char * instr; char * instr;
int mask, hat; int reg;
int mask;
int hat;
{ {
int i; int i;
int not_first = FALSE; int not_first = FALSE;
fputc ('\t', stream); fputc ('\t', stream);
fprintf (stream, instr, REGISTER_PREFIX); asm_fprintf (stream, instr, reg);
fputs (", {", stream); fputs (", {", stream);
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
...@@ -4427,7 +4429,7 @@ print_multi_reg (stream, instr, mask, hat) ...@@ -4427,7 +4429,7 @@ print_multi_reg (stream, instr, mask, hat)
if (not_first) if (not_first)
fprintf (stream, ", "); fprintf (stream, ", ");
asm_fprintf (stream, "%R%s", reg_names[i]); asm_fprintf (stream, "%r", i);
not_first = TRUE; not_first = TRUE;
} }
...@@ -5557,15 +5559,15 @@ output_func_prologue (f, frame_size) ...@@ -5557,15 +5559,15 @@ output_func_prologue (f, frame_size)
return_used_this_function = 0; return_used_this_function = 0;
lr_save_eliminated = 0; lr_save_eliminated = 0;
fprintf (f, "\t%s args = %d, pretend = %d, frame = %d\n", asm_fprintf (f, "\t%@ args = %d, pretend = %d, frame = %d\n",
ASM_COMMENT_START, current_function_args_size, current_function_args_size,
current_function_pretend_args_size, frame_size); current_function_pretend_args_size, frame_size);
fprintf (f, "\t%s frame_needed = %d, current_function_anonymous_args = %d\n", asm_fprintf (f, "\t%@ frame_needed = %d, current_function_anonymous_args = %d\n",
ASM_COMMENT_START, frame_pointer_needed, frame_pointer_needed,
current_function_anonymous_args); current_function_anonymous_args);
if (volatile_func) if (volatile_func)
fprintf (f, "\t%s Volatile function.\n", ASM_COMMENT_START); asm_fprintf (f, "\t%@ Volatile function.\n");
if (current_function_anonymous_args && current_function_pretend_args_size) if (current_function_anonymous_args && current_function_pretend_args_size)
store_arg_regs = 1; store_arg_regs = 1;
...@@ -5574,7 +5576,7 @@ output_func_prologue (f, frame_size) ...@@ -5574,7 +5576,7 @@ output_func_prologue (f, frame_size)
if (regs_ever_live[reg] && ! call_used_regs[reg]) if (regs_ever_live[reg] && ! call_used_regs[reg])
live_regs_mask |= (1 << reg); live_regs_mask |= (1 << reg);
if (flag_pic && ! TARGET_SINGLE_PIC_BASE if (flag_pic && ! TARGET_SINGLE_PIC_BASE
&& regs_ever_live[PIC_OFFSET_TABLE_REGNUM]) && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])
live_regs_mask |= (1 << PIC_OFFSET_TABLE_REGNUM); live_regs_mask |= (1 << PIC_OFFSET_TABLE_REGNUM);
...@@ -5602,13 +5604,11 @@ output_func_prologue (f, frame_size) ...@@ -5602,13 +5604,11 @@ output_func_prologue (f, frame_size)
} }
if (lr_save_eliminated) if (lr_save_eliminated)
fprintf (f,"\t%s I don't think this function clobbers lr\n", asm_fprintf (f,"\t%@ I don't think this function clobbers lr\n");
ASM_COMMENT_START);
#ifdef AOF_ASSEMBLER #ifdef AOF_ASSEMBLER
if (flag_pic) if (flag_pic)
asm_fprintf (f, "\tmov\t%R%s, %R%s\n", reg_names [IP_REGNUM], asm_fprintf (f, "\tmov\t%r, %r\n", IP_REGNUM, PIC_OFFSET_TABLE_REGNUM);
reg_names[PIC_OFFSET_TABLE_REGNUM]);
#endif #endif
} }
...@@ -5671,8 +5671,8 @@ output_func_epilogue (f, frame_size) ...@@ -5671,8 +5671,8 @@ output_func_epilogue (f, frame_size)
if (regs_ever_live[reg] && ! call_used_regs[reg]) if (regs_ever_live[reg] && ! call_used_regs[reg])
{ {
floats_offset += 12; floats_offset += 12;
asm_fprintf (f, "\tldfe\t%R%s, [%R%s, #-%d]\n", asm_fprintf (f, "\tldfe\t%r, [%r, #-%d]\n",
reg_names[reg], reg_names [FP_REGNUM], floats_offset); reg, FP_REGNUM, floats_offset);
} }
} }
else else
...@@ -5688,39 +5688,38 @@ output_func_epilogue (f, frame_size) ...@@ -5688,39 +5688,38 @@ output_func_epilogue (f, frame_size)
/* We can't unstack more than four registers at once */ /* We can't unstack more than four registers at once */
if (start_reg - reg == 3) if (start_reg - reg == 3)
{ {
asm_fprintf (f, "\tlfm\t%R%s, 4, [%R%s, #-%d]\n", asm_fprintf (f, "\tlfm\t%r, 4, [%r, #-%d]\n",
reg_names[reg], reg_names [FP_REGNUM], reg, FP_REGNUM, floats_offset);
floats_offset);
start_reg = reg - 1; start_reg = reg - 1;
} }
} }
else else
{ {
if (reg != start_reg) if (reg != start_reg)
asm_fprintf (f, "\tlfm\t%R%s, %d, [%R%s, #-%d]\n", asm_fprintf (f, "\tlfm\t%r, %d, [%r, #-%d]\n",
reg_names [reg + 1], start_reg - reg, reg + 1, start_reg - reg,
reg_names [FP_REGNUM], floats_offset); FP_REGNUM, floats_offset);
start_reg = reg - 1; start_reg = reg - 1;
} }
} }
/* Just in case the last register checked also needs unstacking. */ /* Just in case the last register checked also needs unstacking. */
if (reg != start_reg) if (reg != start_reg)
asm_fprintf (f, "\tlfm\t%R%s, %d, [%R%s, #-%d]\n", asm_fprintf (f, "\tlfm\t%r, %d, [%r, #-%d]\n",
reg_names [reg + 1], start_reg - reg, reg + 1, start_reg - reg,
reg_names [FP_REGNUM], floats_offset); FP_REGNUM, floats_offset);
} }
if (TARGET_INTERWORK) if (TARGET_INTERWORK)
{ {
live_regs_mask |= 0x6800; live_regs_mask |= 0x6800;
print_multi_reg (f, "ldmea\t%sfp", live_regs_mask, FALSE); print_multi_reg (f, "ldmea\t%r", FP_REGNUM, live_regs_mask, FALSE);
asm_fprintf (f, "\tbx\t%R%s\n", reg_names [LR_REGNUM]); asm_fprintf (f, "\tbx\t%r\n", LR_REGNUM);
} }
else else
{ {
live_regs_mask |= 0xA800; live_regs_mask |= 0xA800;
print_multi_reg (f, "ldmea\t%sfp", live_regs_mask, print_multi_reg (f, "ldmea\t%r", FP_REGNUM, live_regs_mask,
TARGET_APCS_32 ? FALSE : TRUE); TARGET_APCS_32 ? FALSE : TRUE);
} }
} }
...@@ -5739,8 +5738,8 @@ output_func_epilogue (f, frame_size) ...@@ -5739,8 +5738,8 @@ output_func_epilogue (f, frame_size)
{ {
for (reg = 16; reg < 24; reg++) for (reg = 16; reg < 24; reg++)
if (regs_ever_live[reg] && ! call_used_regs[reg]) if (regs_ever_live[reg] && ! call_used_regs[reg])
asm_fprintf (f, "\tldfe\t%R%s, [%R%s], #12\n", asm_fprintf (f, "\tldfe\t%r, [%r], #12\n",
reg_names[reg], reg_names [SP_REGNUM]); reg, SP_REGNUM);
} }
else else
{ {
...@@ -5752,17 +5751,17 @@ output_func_epilogue (f, frame_size) ...@@ -5752,17 +5751,17 @@ output_func_epilogue (f, frame_size)
{ {
if (reg - start_reg == 3) if (reg - start_reg == 3)
{ {
asm_fprintf (f, "\tlfmfd\t%R%s, 4, [%R%s]!\n", asm_fprintf (f, "\tlfmfd\t%r, 4, [%r]!\n",
reg_names[start_reg], reg_names [SP_REGNUM]); start_reg, SP_REGNUM);
start_reg = reg + 1; start_reg = reg + 1;
} }
} }
else else
{ {
if (reg != start_reg) if (reg != start_reg)
asm_fprintf (f, "\tlfmfd\t%R%s, %d, [%R%s]!\n", asm_fprintf (f, "\tlfmfd\t%r, %d, [%r]!\n",
reg_names [start_reg], reg - start_reg, start_reg, reg - start_reg,
reg_names [SP_REGNUM]); SP_REGNUM);
start_reg = reg + 1; start_reg = reg + 1;
} }
...@@ -5770,9 +5769,8 @@ output_func_epilogue (f, frame_size) ...@@ -5770,9 +5769,8 @@ output_func_epilogue (f, frame_size)
/* Just in case the last register checked also needs unstacking. */ /* Just in case the last register checked also needs unstacking. */
if (reg != start_reg) if (reg != start_reg)
asm_fprintf (f, "\tlfmfd\t%R%s, %d, [%R%s]!\n", asm_fprintf (f, "\tlfmfd\t%r, %d, [%r]!\n",
reg_names [start_reg], reg - start_reg, start_reg, reg - start_reg, SP_REGNUM);
reg_names [SP_REGNUM]);
} }
if (current_function_pretend_args_size == 0 && regs_ever_live[LR_REGNUM]) if (current_function_pretend_args_size == 0 && regs_ever_live[LR_REGNUM])
...@@ -5783,16 +5781,16 @@ output_func_epilogue (f, frame_size) ...@@ -5783,16 +5781,16 @@ output_func_epilogue (f, frame_size)
live_regs_mask |= 1 << LR_REGNUM; live_regs_mask |= 1 << LR_REGNUM;
if (live_regs_mask != 0) if (live_regs_mask != 0)
print_multi_reg (f, "ldmfd\t%ssp!", live_regs_mask, FALSE); print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, live_regs_mask, FALSE);
asm_fprintf (f, "\tbx\t%R%s\n", reg_names [LR_REGNUM]); asm_fprintf (f, "\tbx\t%r\n", LR_REGNUM);
} }
else if (lr_save_eliminated) else if (lr_save_eliminated)
asm_fprintf (f, "\tmov%c\t%r, %r\n", asm_fprintf (f, "\tmov%c\t%r, %r\n",
TARGET_APCS_32 ? ' ' : 's', TARGET_APCS_32 ? ' ' : 's',
reg_names [PC_REGNUM], reg_names [LR_REGNUM]); PC_REGNUM, LR_REGNUM);
else else
print_multi_reg (f, "ldmfd\t%ssp!", live_regs_mask | 0x8000, print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, live_regs_mask | 0x8000,
TARGET_APCS_32 ? FALSE : TRUE); TARGET_APCS_32 ? FALSE : TRUE);
} }
else else
...@@ -5804,7 +5802,7 @@ output_func_epilogue (f, frame_size) ...@@ -5804,7 +5802,7 @@ output_func_epilogue (f, frame_size)
live_regs_mask |= 1 << LR_REGNUM; live_regs_mask |= 1 << LR_REGNUM;
if (live_regs_mask != 0) if (live_regs_mask != 0)
print_multi_reg (f, "ldmfd\t%ssp!", live_regs_mask, FALSE); print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, live_regs_mask, FALSE);
} }
if (current_function_pretend_args_size) if (current_function_pretend_args_size)
...@@ -5816,11 +5814,11 @@ output_func_epilogue (f, frame_size) ...@@ -5816,11 +5814,11 @@ output_func_epilogue (f, frame_size)
} }
/* And finally, go home */ /* And finally, go home */
if (TARGET_INTERWORK) if (TARGET_INTERWORK)
asm_fprintf (f, "\tbx\t%R%s\n", reg_names [LR_REGNUM]); asm_fprintf (f, "\tbx\t%r\n", LR_REGNUM);
else if (TARGET_APCS_32) else if (TARGET_APCS_32)
asm_fprintf (f, "\tmov\t%R%s, %R%s\n", reg_names [PC_REGNUM], reg_names [LR_REGNUM]); asm_fprintf (f, "\tmov\t%r, %r\n", PC_REGNUM, LR_REGNUM);
else else
asm_fprintf (f, "\tmovs\t%R%s, %R%s\n", reg_names [PC_REGNUM], reg_names [LR_REGNUM]); asm_fprintf (f, "\tmovs\t%r, %r\n", PC_REGNUM, LR_REGNUM);
} }
} }
...@@ -6129,9 +6127,8 @@ arm_print_operand (stream, x, code) ...@@ -6129,9 +6127,8 @@ arm_print_operand (stream, x, code)
return; return;
case 'M': case 'M':
asm_fprintf (stream, "{%R%s-%R%s}", asm_fprintf (stream, "{%r-%r}",
reg_names[REGNO (x)], REGNO (x), REGNO (x) + NUM_REGS (GET_MODE (x)) - 1);
reg_names[REGNO (x) + NUM_REGS (GET_MODE (x)) - 1]);
return; return;
case 'd': case 'd':
...@@ -6698,9 +6695,9 @@ aof_dump_pic_table (f) ...@@ -6698,9 +6695,9 @@ aof_dump_pic_table (f)
if (aof_pic_chain == NULL) if (aof_pic_chain == NULL)
return; return;
asm_fprintf (f, "\tAREA |%R%s$$adcons|, BASED %R%s\n", asm_fprintf (f, "\tAREA |%r$$adcons|, BASED %r\n",
reg_names[PIC_OFFSET_TABLE_REGNUM], PIC_OFFSET_TABLE_REGNUM,
reg_names[PIC_OFFSET_TABLE_REGNUM]); PIC_OFFSET_TABLE_REGNUM);
fputs ("|x$adcons|\n", f); fputs ("|x$adcons|\n", f);
for (chain = aof_pic_chain; chain; chain = chain->next) for (chain = aof_pic_chain; chain; chain = chain->next)
......
...@@ -22,15 +22,6 @@ along with GNU CC; see the file COPYING. If not, write to ...@@ -22,15 +22,6 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330, the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
/* Configuration triples for ARM ports work as follows:
(This is a bit of a mess and needs some thought)
arm-*-*: little endian
armel-*-*: little endian
armeb-*-*: big endian
If a non-embedded environment (ie: "real" OS) is specified, `arm'
should default to that used by the OS.
*/
#ifndef __ARM_H__ #ifndef __ARM_H__
#define __ARM_H__ #define __ARM_H__
...@@ -316,11 +307,11 @@ Unrecognized value in TARGET_CPU_DEFAULT. ...@@ -316,11 +307,11 @@ Unrecognized value in TARGET_CPU_DEFAULT.
#define ARM_FLAG_NO_SCHED_PRO (1 << 12) #define ARM_FLAG_NO_SCHED_PRO (1 << 12)
/* Nonzero if a call to abort should be generated if a noreturn /* Nonzero if a call to abort should be generated if a noreturn
function tries to return. */ function tries to return. */
#define ARM_FLAG_ABORT_NORETURN (1 << 13) #define ARM_FLAG_ABORT_NORETURN (1 << 13)
/* Nonzero if function prologues should not load the PIC register. */ /* Nonzero if function prologues should not load the PIC register. */
#define ARM_FLAG_SINGLE_PIC_BASE (1 << 14) #define ARM_FLAG_SINGLE_PIC_BASE (1 << 14)
#define TARGET_APCS (target_flags & ARM_FLAG_APCS_FRAME) #define TARGET_APCS (target_flags & ARM_FLAG_APCS_FRAME)
#define TARGET_POKE_FUNCTION_NAME (target_flags & ARM_FLAG_POKE) #define TARGET_POKE_FUNCTION_NAME (target_flags & ARM_FLAG_POKE)
...@@ -343,7 +334,7 @@ function tries to return. */ ...@@ -343,7 +334,7 @@ function tries to return. */
#define TARGET_INTERWORK (target_flags & ARM_FLAG_INTERWORK) #define TARGET_INTERWORK (target_flags & ARM_FLAG_INTERWORK)
#define TARGET_LITTLE_WORDS (target_flags & ARM_FLAG_LITTLE_WORDS) #define TARGET_LITTLE_WORDS (target_flags & ARM_FLAG_LITTLE_WORDS)
#define TARGET_NO_SCHED_PRO (target_flags & ARM_FLAG_NO_SCHED_PRO) #define TARGET_NO_SCHED_PRO (target_flags & ARM_FLAG_NO_SCHED_PRO)
#define TARGET_ABORT_NORETURN (target_flags & ARM_FLAG_ABORT_NORETURN) #define TARGET_ABORT_NORETURN (target_flags & ARM_FLAG_ABORT_NORETURN)
#define TARGET_SINGLE_PIC_BASE (target_flags & ARM_FLAG_SINGLE_PIC_BASE) #define TARGET_SINGLE_PIC_BASE (target_flags & ARM_FLAG_SINGLE_PIC_BASE)
/* SUBTARGET_SWITCHES is used to add flags on a per-config basis. /* SUBTARGET_SWITCHES is used to add flags on a per-config basis.
...@@ -378,7 +369,7 @@ function tries to return. */ ...@@ -378,7 +369,7 @@ function tries to return. */
"Load shorts a byte at a time" }, \ "Load shorts a byte at a time" }, \
{"no-short-load-bytes", -ARM_FLAG_SHORT_BYTE, "" }, \ {"no-short-load-bytes", -ARM_FLAG_SHORT_BYTE, "" }, \
{"short-load-words", -ARM_FLAG_SHORT_BYTE, \ {"short-load-words", -ARM_FLAG_SHORT_BYTE, \
"Load shorts a word at a time" }, \ "Load words a byte at a time" }, \
{"no-short-load-words", ARM_FLAG_SHORT_BYTE, "" }, \ {"no-short-load-words", ARM_FLAG_SHORT_BYTE, "" }, \
{"soft-float", ARM_FLAG_SOFT_FLOAT, \ {"soft-float", ARM_FLAG_SOFT_FLOAT, \
"Use library calls to perform FP operations" }, \ "Use library calls to perform FP operations" }, \
...@@ -395,13 +386,13 @@ function tries to return. */ ...@@ -395,13 +386,13 @@ function tries to return. */
{"no-thumb-interwork", -ARM_FLAG_INTERWORK, "" }, \ {"no-thumb-interwork", -ARM_FLAG_INTERWORK, "" }, \
{"abort-on-noreturn", ARM_FLAG_ABORT_NORETURN, \ {"abort-on-noreturn", ARM_FLAG_ABORT_NORETURN, \
"Generate a call to abort if a noreturn function returns"}, \ "Generate a call to abort if a noreturn function returns"}, \
{"no-abort-on-noreturn", -ARM_FLAG_ABORT_NORETURN, ""}, \ {"no-abort-on-noreturn", -ARM_FLAG_ABORT_NORETURN, ""}, \
{"sched-prolog", -ARM_FLAG_NO_SCHED_PRO, \ {"sched-prolog", -ARM_FLAG_NO_SCHED_PRO, \
"Do not move instructions into a function's prologue" }, \ "Do not move instructions into a function's prologue" }, \
{"no-sched-prolog", ARM_FLAG_NO_SCHED_PRO, "" }, \ {"no-sched-prolog", ARM_FLAG_NO_SCHED_PRO, "" }, \
{"single-pic-base", ARM_FLAG_SINGLE_PIC_BASE, \ {"single-pic-base", ARM_FLAG_SINGLE_PIC_BASE, \
"Do not load the PIC register in function prologues" }, \ "Do not load the PIC register in function prologues" }, \
{"no-single-pic-base", -ARM_FLAG_SINGLE_PIC_BASE, "" },\ {"no-single-pic-base", -ARM_FLAG_SINGLE_PIC_BASE, "" }, \
SUBTARGET_SWITCHES \ SUBTARGET_SWITCHES \
{"", TARGET_DEFAULT } \ {"", TARGET_DEFAULT } \
} }
...@@ -760,6 +751,20 @@ extern const char * structure_size_string; ...@@ -760,6 +751,20 @@ extern const char * structure_size_string;
SUBTARGET_CONDITIONAL_REGISTER_USAGE \ SUBTARGET_CONDITIONAL_REGISTER_USAGE \
} }
/* These are a couple of extensions to the formats accecpted
by asm_fprintf:
%@ prints out ASM_COMMENT_START
%r prints out REGISTER_PREFIX reg_names[arg] */
#define ASM_FPRINTF_EXTENSIONS(FILE, ARGS, P) \
case '@': \
fputs (ASM_COMMENT_START, FILE); \
break; \
\
case 'r': \
fputs (REGISTER_PREFIX, FILE); \
fputs (reg_names [va_arg (ARGS, int)], FILE); \
break;
/* Convert fron bytes to ints. */ /* Convert fron bytes to ints. */
#define NUM_INTS(X) (((X) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) #define NUM_INTS(X) (((X) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
...@@ -1234,9 +1239,8 @@ enum reg_class ...@@ -1234,9 +1239,8 @@ enum reg_class
char temp[20]; \ char temp[20]; \
rtx sym; \ rtx sym; \
\ \
asm_fprintf (STREAM, "\tmov\t%R%s, %R%s\n\tbl\t", \ asm_fprintf (STREAM, "\tmov\t%r, %r\n\tbl\t", \
reg_names[IP_REGNUM] /* ip */, \ IP_REGNUM, LR_REGNUM); \
reg_names[LR_REGNUM] /* lr */); \
assemble_name (STREAM, ARM_MCOUNT_NAME); \ assemble_name (STREAM, ARM_MCOUNT_NAME); \
fputc ('\n', STREAM); \ fputc ('\n', STREAM); \
ASM_GENERATE_INTERNAL_LABEL (temp, "LP", LABELNO); \ ASM_GENERATE_INTERNAL_LABEL (temp, "LP", LABELNO); \
...@@ -1982,12 +1986,10 @@ extern struct rtx_def * arm_compare_op1; ...@@ -1982,12 +1986,10 @@ extern struct rtx_def * arm_compare_op1;
/* Output a push or a pop instruction (only used when profiling). */ /* Output a push or a pop instruction (only used when profiling). */
#define ASM_OUTPUT_REG_PUSH(STREAM, REGNO) \ #define ASM_OUTPUT_REG_PUSH(STREAM, REGNO) \
asm_fprintf (STREAM,"\tstmfd\t%Rsp!,{%R%s}\n", \ asm_fprintf (STREAM,"\tstmfd\t%r!,{%r}\n", SP_REGNUM, REGNO)
reg_names [REGNO])
#define ASM_OUTPUT_REG_POP(STREAM, REGNO) \ #define ASM_OUTPUT_REG_POP(STREAM, REGNO) \
asm_fprintf (STREAM,"\tldmfd\t%Rsp!,{%R%s}\n", \ asm_fprintf (STREAM,"\tldmfd\t%r!,{%r}\n", SP_REGNUM, REGNO)
reg_names [REGNO])
#define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \ #define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do \ do \
...@@ -2033,12 +2035,12 @@ extern struct rtx_def * arm_compare_op1; ...@@ -2033,12 +2035,12 @@ extern struct rtx_def * arm_compare_op1;
int is_minus = GET_CODE (X) == MINUS; \ int is_minus = GET_CODE (X) == MINUS; \
\ \
if (GET_CODE (X) == REG) \ if (GET_CODE (X) == REG) \
asm_fprintf (STREAM, "[%R%s, #0]", reg_names[REGNO (X)]); \ asm_fprintf (STREAM, "[%r, #0]", REGNO (X)); \
else if (GET_CODE (X) == PLUS || is_minus) \ else if (GET_CODE (X) == PLUS || is_minus) \
{ \ { \
rtx base = XEXP (X, 0); \ rtx base = XEXP (X, 0); \
rtx index = XEXP (X, 1); \ rtx index = XEXP (X, 1); \
char * base_reg_name; \ int base_reg; \
HOST_WIDE_INT offset = 0; \ HOST_WIDE_INT offset = 0; \
if (GET_CODE (base) != REG) \ if (GET_CODE (base) != REG) \
{ \ { \
...@@ -2047,20 +2049,19 @@ extern struct rtx_def * arm_compare_op1; ...@@ -2047,20 +2049,19 @@ extern struct rtx_def * arm_compare_op1;
base = index; \ base = index; \
index = temp; \ index = temp; \
} \ } \
base_reg_name = reg_names[REGNO (base)]; \ base_reg = REGNO (base); \
switch (GET_CODE (index)) \ switch (GET_CODE (index)) \
{ \ { \
case CONST_INT: \ case CONST_INT: \
offset = INTVAL (index); \ offset = INTVAL (index); \
if (is_minus) \ if (is_minus) \
offset = -offset; \ offset = -offset; \
asm_fprintf (STREAM, "[%R%s, #%d]", base_reg_name, offset); \ asm_fprintf (STREAM, "[%r, #%d]", base_reg, offset); \
break; \ break; \
\ \
case REG: \ case REG: \
asm_fprintf (STREAM, "[%R%s, %s%R%s]", \ asm_fprintf (STREAM, "[%r, %s%r]", base_reg, \
base_reg_name, is_minus ? "-" : "", \ is_minus ? "-" : "", REGNO (index)); \
reg_names[REGNO (index)] ); \
break; \ break; \
\ \
case MULT: \ case MULT: \
...@@ -2069,9 +2070,8 @@ extern struct rtx_def * arm_compare_op1; ...@@ -2069,9 +2070,8 @@ extern struct rtx_def * arm_compare_op1;
case ASHIFT: \ case ASHIFT: \
case ROTATERT: \ case ROTATERT: \
{ \ { \
asm_fprintf (STREAM, "[%R%s, %s%R%s", \ asm_fprintf (STREAM, "[%r, %s%r", base_reg, \
base_reg_name, is_minus ? "-" : "", \ is_minus ? "-" : "", REGNO (XEXP (index, 0))); \
reg_names[REGNO (XEXP (index, 0))]); \
arm_print_operand (STREAM, index, 'S'); \ arm_print_operand (STREAM, index, 'S'); \
fputs ("]", STREAM); \ fputs ("]", STREAM); \
break; \ break; \
...@@ -2090,13 +2090,13 @@ extern struct rtx_def * arm_compare_op1; ...@@ -2090,13 +2090,13 @@ extern struct rtx_def * arm_compare_op1;
abort (); \ abort (); \
\ \
if (GET_CODE (X) == PRE_DEC || GET_CODE (X) == PRE_INC) \ if (GET_CODE (X) == PRE_DEC || GET_CODE (X) == PRE_INC) \
asm_fprintf (STREAM, "[%R%s, #%s%d]!", \ asm_fprintf (STREAM, "[%r, #%s%d]!", \
reg_names[REGNO (XEXP (X, 0))], \ REGNO (XEXP (X, 0)), \
GET_CODE (X) == PRE_DEC ? "-" : "", \ GET_CODE (X) == PRE_DEC ? "-" : "", \
GET_MODE_SIZE (output_memory_reference_mode)); \ GET_MODE_SIZE (output_memory_reference_mode)); \
else \ else \
asm_fprintf (STREAM, "[%R%s], #%s%d", \ asm_fprintf (STREAM, "[%r], #%s%d", \
reg_names[REGNO (XEXP (X, 0))], \ REGNO (XEXP (X, 0)), \
GET_CODE (X) == POST_DEC ? "-" : "", \ GET_CODE (X) == POST_DEC ? "-" : "", \
GET_MODE_SIZE (output_memory_reference_mode)); \ GET_MODE_SIZE (output_memory_reference_mode)); \
} \ } \
...@@ -2146,9 +2146,8 @@ extern struct rtx_def * arm_compare_op1; ...@@ -2146,9 +2146,8 @@ extern struct rtx_def * arm_compare_op1;
shift += 2; \ shift += 2; \
else \ else \
{ \ { \
asm_fprintf (FILE, "\t%s\t%R%s, %R%s, #%d\n", \ asm_fprintf (FILE, "\t%s\t%r, %r, #%d\n", \
mi_op, reg_names[this_regno], \ mi_op, this_regno, this_regno, \
reg_names[this_regno], \
mi_delta & (0xff << shift)); \ mi_delta & (0xff << shift)); \
mi_delta &= ~(0xff << shift); \ mi_delta &= ~(0xff << shift); \
shift += 8; \ shift += 8; \
...@@ -2156,7 +2155,7 @@ extern struct rtx_def * arm_compare_op1; ...@@ -2156,7 +2155,7 @@ extern struct rtx_def * arm_compare_op1;
} \ } \
fputs ("\tb\t", FILE); \ fputs ("\tb\t", FILE); \
assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \
if (NEED_PLT_RELOC) \ if (NEED_PLT_RELOC) \
fputs ("(PLT)", FILE); \ fputs ("(PLT)", FILE); \
fputc ('\n', FILE); \ fputc ('\n', FILE); \
} \ } \
......
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