Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
dd18ae56
Commit
dd18ae56
authored
25 years ago
by
Nick Clifton
Committed by
Nick Clifton
25 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace %R%s with %r
From-SVN: r28264
parent
fe0503ea
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
95 additions
and
94 deletions
+95
-94
gcc/ChangeLog
+5
-0
gcc/config/arm/arm.c
+51
-54
gcc/config/arm/arm.h
+39
-40
No files found.
gcc/ChangeLog
View file @
dd18ae56
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
>
*
final
.
c
(
asm_fprintf
)
:
Accept
ASM_FPRINTF_EXTENSIONS
,
if
...
...
This diff is collapsed.
Click to expand it.
gcc/config/arm/arm.c
View file @
dd18ae56
...
...
@@ -4409,16 +4409,18 @@ fp_const_from_val (r)
must follow the register list. */
void
print_multi_reg
(
stream
,
instr
,
mask
,
hat
)
print_multi_reg
(
stream
,
instr
,
reg
,
mask
,
hat
)
FILE
*
stream
;
char
*
instr
;
int
mask
,
hat
;
int
reg
;
int
mask
;
int
hat
;
{
int
i
;
int
not_first
=
FALSE
;
fputc
(
'\t'
,
stream
);
fprintf
(
stream
,
instr
,
REGISTER_PREFIX
);
asm_fprintf
(
stream
,
instr
,
reg
);
fputs
(
", {"
,
stream
);
for
(
i
=
0
;
i
<
16
;
i
++
)
...
...
@@ -4427,7 +4429,7 @@ print_multi_reg (stream, instr, mask, hat)
if
(
not_first
)
fprintf
(
stream
,
", "
);
asm_fprintf
(
stream
,
"%
R%s"
,
reg_names
[
i
]
);
asm_fprintf
(
stream
,
"%
r"
,
i
);
not_first
=
TRUE
;
}
...
...
@@ -5557,15 +5559,15 @@ output_func_prologue (f, frame_size)
return_used_this_function
=
0
;
lr_save_eliminated
=
0
;
fprintf
(
f
,
"
\t
%s
args = %d, pretend = %d, frame = %d
\n
"
,
ASM_COMMENT_START
,
current_function_args_size
,
current_function_pretend_args_size
,
frame_size
);
fprintf
(
f
,
"
\t
%s
frame_needed = %d, current_function_anonymous_args = %d
\n
"
,
ASM_COMMENT_START
,
frame_pointer_needed
,
current_function_anonymous_args
);
asm_fprintf
(
f
,
"
\t
%@
args = %d, pretend = %d, frame = %d
\n
"
,
current_function_args_size
,
current_function_pretend_args_size
,
frame_size
);
asm_fprintf
(
f
,
"
\t
%@
frame_needed = %d, current_function_anonymous_args = %d
\n
"
,
frame_pointer_needed
,
current_function_anonymous_args
);
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
)
store_arg_regs
=
1
;
...
...
@@ -5574,7 +5576,7 @@ output_func_prologue (f, frame_size)
if
(
regs_ever_live
[
reg
]
&&
!
call_used_regs
[
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
])
live_regs_mask
|=
(
1
<<
PIC_OFFSET_TABLE_REGNUM
);
...
...
@@ -5602,13 +5604,11 @@ output_func_prologue (f, frame_size)
}
if
(
lr_save_eliminated
)
fprintf
(
f
,
"
\t
%s I don't think this function clobbers lr
\n
"
,
ASM_COMMENT_START
);
asm_fprintf
(
f
,
"
\t
%@ I don't think this function clobbers lr
\n
"
);
#ifdef AOF_ASSEMBLER
if
(
flag_pic
)
asm_fprintf
(
f
,
"
\t
mov
\t
%R%s, %R%s
\n
"
,
reg_names
[
IP_REGNUM
],
reg_names
[
PIC_OFFSET_TABLE_REGNUM
]);
asm_fprintf
(
f
,
"
\t
mov
\t
%r, %r
\n
"
,
IP_REGNUM
,
PIC_OFFSET_TABLE_REGNUM
);
#endif
}
...
...
@@ -5671,8 +5671,8 @@ output_func_epilogue (f, frame_size)
if
(
regs_ever_live
[
reg
]
&&
!
call_used_regs
[
reg
])
{
floats_offset
+=
12
;
asm_fprintf
(
f
,
"
\t
ldfe
\t
%
R%s, [%R%s
, #-%d]
\n
"
,
reg_names
[
reg
],
reg_names
[
FP_REGNUM
]
,
floats_offset
);
asm_fprintf
(
f
,
"
\t
ldfe
\t
%
r, [%r
, #-%d]
\n
"
,
reg
,
FP_REGNUM
,
floats_offset
);
}
}
else
...
...
@@ -5688,39 +5688,38 @@ output_func_epilogue (f, frame_size)
/* We can't unstack more than four registers at once */
if
(
start_reg
-
reg
==
3
)
{
asm_fprintf
(
f
,
"
\t
lfm
\t
%R%s, 4, [%R%s, #-%d]
\n
"
,
reg_names
[
reg
],
reg_names
[
FP_REGNUM
],
floats_offset
);
asm_fprintf
(
f
,
"
\t
lfm
\t
%r, 4, [%r, #-%d]
\n
"
,
reg
,
FP_REGNUM
,
floats_offset
);
start_reg
=
reg
-
1
;
}
}
else
{
if
(
reg
!=
start_reg
)
asm_fprintf
(
f
,
"
\t
lfm
\t
%
R%s, %d, [%R%s
, #-%d]
\n
"
,
reg
_names
[
reg
+
1
]
,
start_reg
-
reg
,
reg_names
[
FP_REGNUM
]
,
floats_offset
);
asm_fprintf
(
f
,
"
\t
lfm
\t
%
r, %d, [%r
, #-%d]
\n
"
,
reg
+
1
,
start_reg
-
reg
,
FP_REGNUM
,
floats_offset
);
start_reg
=
reg
-
1
;
}
}
/* Just in case the last register checked also needs unstacking. */
if
(
reg
!=
start_reg
)
asm_fprintf
(
f
,
"
\t
lfm
\t
%
R%s, %d, [%R%s
, #-%d]
\n
"
,
reg
_names
[
reg
+
1
]
,
start_reg
-
reg
,
reg_names
[
FP_REGNUM
]
,
floats_offset
);
asm_fprintf
(
f
,
"
\t
lfm
\t
%
r, %d, [%r
, #-%d]
\n
"
,
reg
+
1
,
start_reg
-
reg
,
FP_REGNUM
,
floats_offset
);
}
if
(
TARGET_INTERWORK
)
{
live_regs_mask
|=
0x6800
;
print_multi_reg
(
f
,
"ldmea
\t
%
sfp"
,
live_regs_mask
,
FALSE
);
asm_fprintf
(
f
,
"
\t
bx
\t
%
R%s
\n
"
,
reg_names
[
LR_REGNUM
]
);
print_multi_reg
(
f
,
"ldmea
\t
%
r"
,
FP_REGNUM
,
live_regs_mask
,
FALSE
);
asm_fprintf
(
f
,
"
\t
bx
\t
%
r
\n
"
,
LR_REGNUM
);
}
else
{
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
);
}
}
...
...
@@ -5739,8 +5738,8 @@ output_func_epilogue (f, frame_size)
{
for
(
reg
=
16
;
reg
<
24
;
reg
++
)
if
(
regs_ever_live
[
reg
]
&&
!
call_used_regs
[
reg
])
asm_fprintf
(
f
,
"
\t
ldfe
\t
%
R%s, [%R%s
], #12
\n
"
,
reg
_names
[
reg
],
reg_names
[
SP_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
ldfe
\t
%
r, [%r
], #12
\n
"
,
reg
,
SP_REGNUM
);
}
else
{
...
...
@@ -5752,17 +5751,17 @@ output_func_epilogue (f, frame_size)
{
if
(
reg
-
start_reg
==
3
)
{
asm_fprintf
(
f
,
"
\t
lfmfd
\t
%
R%s, 4, [%R%s
]!
\n
"
,
reg_names
[
start_reg
],
reg_names
[
SP_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
lfmfd
\t
%
r, 4, [%r
]!
\n
"
,
start_reg
,
SP_REGNUM
);
start_reg
=
reg
+
1
;
}
}
else
{
if
(
reg
!=
start_reg
)
asm_fprintf
(
f
,
"
\t
lfmfd
\t
%
R%s, %d, [%R%s
]!
\n
"
,
reg_names
[
start_reg
]
,
reg
-
start_reg
,
reg_names
[
SP_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
lfmfd
\t
%
r, %d, [%r
]!
\n
"
,
start_reg
,
reg
-
start_reg
,
SP_REGNUM
);
start_reg
=
reg
+
1
;
}
...
...
@@ -5770,9 +5769,8 @@ output_func_epilogue (f, frame_size)
/* Just in case the last register checked also needs unstacking. */
if
(
reg
!=
start_reg
)
asm_fprintf
(
f
,
"
\t
lfmfd
\t
%R%s, %d, [%R%s]!
\n
"
,
reg_names
[
start_reg
],
reg
-
start_reg
,
reg_names
[
SP_REGNUM
]);
asm_fprintf
(
f
,
"
\t
lfmfd
\t
%r, %d, [%r]!
\n
"
,
start_reg
,
reg
-
start_reg
,
SP_REGNUM
);
}
if
(
current_function_pretend_args_size
==
0
&&
regs_ever_live
[
LR_REGNUM
])
...
...
@@ -5783,16 +5781,16 @@ output_func_epilogue (f, frame_size)
live_regs_mask
|=
1
<<
LR_REGNUM
;
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
,
"
\t
bx
\t
%
R%s
\n
"
,
reg_names
[
LR_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
bx
\t
%
r
\n
"
,
LR_REGNUM
);
}
else
if
(
lr_save_eliminated
)
asm_fprintf
(
f
,
"
\t
mov%c
\t
%r, %r
\n
"
,
TARGET_APCS_32
?
' '
:
's'
,
reg_names
[
PC_REGNUM
],
reg_names
[
LR_REGNUM
]
);
PC_REGNUM
,
LR_REGNUM
);
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
);
}
else
...
...
@@ -5804,7 +5802,7 @@ output_func_epilogue (f, frame_size)
live_regs_mask
|=
1
<<
LR_REGNUM
;
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
)
...
...
@@ -5816,11 +5814,11 @@ output_func_epilogue (f, frame_size)
}
/* And finally, go home */
if
(
TARGET_INTERWORK
)
asm_fprintf
(
f
,
"
\t
bx
\t
%
R%s
\n
"
,
reg_names
[
LR_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
bx
\t
%
r
\n
"
,
LR_REGNUM
);
else
if
(
TARGET_APCS_32
)
asm_fprintf
(
f
,
"
\t
mov
\t
%
R%s, %R%s
\n
"
,
reg_names
[
PC_REGNUM
],
reg_names
[
LR_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
mov
\t
%
r, %r
\n
"
,
PC_REGNUM
,
LR_REGNUM
);
else
asm_fprintf
(
f
,
"
\t
movs
\t
%
R%s, %R%s
\n
"
,
reg_names
[
PC_REGNUM
],
reg_names
[
LR_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
movs
\t
%
r, %r
\n
"
,
PC_REGNUM
,
LR_REGNUM
);
}
}
...
...
@@ -6129,9 +6127,8 @@ arm_print_operand (stream, x, code)
return
;
case
'M'
:
asm_fprintf
(
stream
,
"{%R%s-%R%s}"
,
reg_names
[
REGNO
(
x
)],
reg_names
[
REGNO
(
x
)
+
NUM_REGS
(
GET_MODE
(
x
))
-
1
]);
asm_fprintf
(
stream
,
"{%r-%r}"
,
REGNO
(
x
),
REGNO
(
x
)
+
NUM_REGS
(
GET_MODE
(
x
))
-
1
);
return
;
case
'd'
:
...
...
@@ -6698,9 +6695,9 @@ aof_dump_pic_table (f)
if
(
aof_pic_chain
==
NULL
)
return
;
asm_fprintf
(
f
,
"
\t
AREA |%
R%s$$adcons|, BASED %R%s
\n
"
,
reg_names
[
PIC_OFFSET_TABLE_REGNUM
]
,
reg_names
[
PIC_OFFSET_TABLE_REGNUM
]
);
asm_fprintf
(
f
,
"
\t
AREA |%
r$$adcons|, BASED %r
\n
"
,
PIC_OFFSET_TABLE_REGNUM
,
PIC_OFFSET_TABLE_REGNUM
);
fputs
(
"|x$adcons|
\n
"
,
f
);
for
(
chain
=
aof_pic_chain
;
chain
;
chain
=
chain
->
next
)
...
...
This diff is collapsed.
Click to expand it.
gcc/config/arm/arm.h
View file @
dd18ae56
...
...
@@ -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,
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__
#define __ARM_H__
...
...
@@ -316,11 +307,11 @@ Unrecognized value in TARGET_CPU_DEFAULT.
#define ARM_FLAG_NO_SCHED_PRO (1 << 12)
/* 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)
/* 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_POKE_FUNCTION_NAME (target_flags & ARM_FLAG_POKE)
...
...
@@ -343,7 +334,7 @@ function tries to return. */
#define TARGET_INTERWORK (target_flags & ARM_FLAG_INTERWORK)
#define TARGET_LITTLE_WORDS (target_flags & ARM_FLAG_LITTLE_WORDS)
#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)
/* SUBTARGET_SWITCHES is used to add flags on a per-config basis.
...
...
@@ -378,7 +369,7 @@ function tries to return. */
"Load shorts a byte at a time" }, \
{"no-short-load-bytes", -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, "" }, \
{"soft-float", ARM_FLAG_SOFT_FLOAT, \
"Use library calls to perform FP operations" }, \
...
...
@@ -395,13 +386,13 @@ function tries to return. */
{"no-thumb-interwork", -ARM_FLAG_INTERWORK, "" }, \
{"abort-on-noreturn", ARM_FLAG_ABORT_NORETURN, \
"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, \
"Do not move instructions into a function's prologue" }, \
{"no-sched-prolog", ARM_FLAG_NO_SCHED_PRO, "" }, \
{"single-pic-base", ARM_FLAG_SINGLE_PIC_BASE, \
"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 \
{"", TARGET_DEFAULT } \
}
...
...
@@ -760,6 +751,20 @@ extern const char * structure_size_string;
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. */
#define NUM_INTS(X) (((X) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
...
...
@@ -1234,9 +1239,8 @@ enum reg_class
char temp[20]; \
rtx sym; \
\
asm_fprintf (STREAM, "\tmov\t%R%s, %R%s\n\tbl\t", \
reg_names[IP_REGNUM]
/* ip */
, \
reg_names[LR_REGNUM]
/* lr */
); \
asm_fprintf (STREAM, "\tmov\t%r, %r\n\tbl\t", \
IP_REGNUM, LR_REGNUM); \
assemble_name (STREAM, ARM_MCOUNT_NAME); \
fputc ('\n', STREAM); \
ASM_GENERATE_INTERNAL_LABEL (temp, "LP", LABELNO); \
...
...
@@ -1982,12 +1986,10 @@ extern struct rtx_def * arm_compare_op1;
/* Output a push or a pop instruction (only used when profiling). */
#define ASM_OUTPUT_REG_PUSH(STREAM, REGNO) \
asm_fprintf (STREAM,"\tstmfd\t%Rsp!,{%R%s}\n", \
reg_names [REGNO])
asm_fprintf (STREAM,"\tstmfd\t%r!,{%r}\n", SP_REGNUM, REGNO)
#define ASM_OUTPUT_REG_POP(STREAM, REGNO) \
asm_fprintf (STREAM,"\tldmfd\t%Rsp!,{%R%s}\n", \
reg_names [REGNO])
asm_fprintf (STREAM,"\tldmfd\t%r!,{%r}\n", SP_REGNUM, REGNO)
#define ARM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
do \
...
...
@@ -2033,12 +2035,12 @@ extern struct rtx_def * arm_compare_op1;
int is_minus = GET_CODE (X) == MINUS; \
\
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) \
{ \
rtx base = XEXP (X, 0); \
rtx index = XEXP (X, 1); \
char * base_reg_name;
\
int base_reg;
\
HOST_WIDE_INT offset = 0; \
if (GET_CODE (base) != REG) \
{ \
...
...
@@ -2047,20 +2049,19 @@ extern struct rtx_def * arm_compare_op1;
base = index; \
index = temp; \
} \
base_reg
_name = reg_names[REGNO (base)];
\
base_reg
= REGNO (base);
\
switch (GET_CODE (index)) \
{ \
case CONST_INT: \
offset = INTVAL (index); \
if (is_minus) \
offset = -offset; \
asm_fprintf (STREAM, "[%
R%s, #%d]", base_reg_name
, offset); \
asm_fprintf (STREAM, "[%
r, #%d]", base_reg
, offset); \
break; \
\
case REG: \
asm_fprintf (STREAM, "[%R%s, %s%R%s]", \
base_reg_name, is_minus ? "-" : "", \
reg_names[REGNO (index)] ); \
asm_fprintf (STREAM, "[%r, %s%r]", base_reg, \
is_minus ? "-" : "", REGNO (index)); \
break; \
\
case MULT: \
...
...
@@ -2069,9 +2070,8 @@ extern struct rtx_def * arm_compare_op1;
case ASHIFT: \
case ROTATERT: \
{ \
asm_fprintf (STREAM, "[%R%s, %s%R%s", \
base_reg_name, is_minus ? "-" : "", \
reg_names[REGNO (XEXP (index, 0))]); \
asm_fprintf (STREAM, "[%r, %s%r", base_reg, \
is_minus ? "-" : "", REGNO (XEXP (index, 0))); \
arm_print_operand (STREAM, index, 'S'); \
fputs ("]", STREAM); \
break; \
...
...
@@ -2090,13 +2090,13 @@ extern struct rtx_def * arm_compare_op1;
abort (); \
\
if (GET_CODE (X) == PRE_DEC || GET_CODE (X) == PRE_INC) \
asm_fprintf (STREAM, "[%
R%s
, #%s%d]!", \
reg_names[REGNO (XEXP (X, 0))],
\
asm_fprintf (STREAM, "[%
r
, #%s%d]!", \
REGNO (XEXP (X, 0)),
\
GET_CODE (X) == PRE_DEC ? "-" : "", \
GET_MODE_SIZE (output_memory_reference_mode)); \
else \
asm_fprintf (STREAM, "[%
R%s
], #%s%d", \
reg_names[REGNO (XEXP (X, 0))],
\
asm_fprintf (STREAM, "[%
r
], #%s%d", \
REGNO (XEXP (X, 0)),
\
GET_CODE (X) == POST_DEC ? "-" : "", \
GET_MODE_SIZE (output_memory_reference_mode)); \
} \
...
...
@@ -2146,9 +2146,8 @@ extern struct rtx_def * arm_compare_op1;
shift += 2; \
else \
{ \
asm_fprintf (FILE, "\t%s\t%R%s, %R%s, #%d\n", \
mi_op, reg_names[this_regno], \
reg_names[this_regno], \
asm_fprintf (FILE, "\t%s\t%r, %r, #%d\n", \
mi_op, this_regno, this_regno, \
mi_delta & (0xff << shift)); \
mi_delta &= ~(0xff << shift); \
shift += 8; \
...
...
@@ -2156,7 +2155,7 @@ extern struct rtx_def * arm_compare_op1;
} \
fputs ("\tb\t", FILE); \
assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \
if (NEED_PLT_RELOC)
\
if (NEED_PLT_RELOC) \
fputs ("(PLT)", FILE); \
fputc ('\n', FILE); \
} \
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment