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
668681ef
Commit
668681ef
authored
May 19, 1992
by
Tom Wood
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
From-SVN: r1017
parent
6639753e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
86 additions
and
41 deletions
+86
-41
gcc/config/m88k/m88k.c
+18
-10
gcc/config/m88k/m88k.h
+21
-12
gcc/config/m88k/m88k.md
+47
-19
No files found.
gcc/config/m88k/m88k.c
View file @
668681ef
...
@@ -46,7 +46,7 @@ extern char *ctime ();
...
@@ -46,7 +46,7 @@ extern char *ctime ();
extern
int
flag_traditional
;
extern
int
flag_traditional
;
extern
FILE
*
asm_out_file
;
extern
FILE
*
asm_out_file
;
static
char
out_sccs_id
[]
=
"@(#)m88k.c 2.1.
4.6 20 Apr 1992 14:30:40
"
;
static
char
out_sccs_id
[]
=
"@(#)m88k.c 2.1.
11.5 19 May 1992 08:15:15
"
;
static
char
tm_sccs_id
[]
=
TM_SCCS_ID
;
static
char
tm_sccs_id
[]
=
TM_SCCS_ID
;
char
*
m88k_pound_sign
=
""
;
/* Either # for SVR4 or empty for SVR3 */
char
*
m88k_pound_sign
=
""
;
/* Either # for SVR4 or empty for SVR3 */
...
@@ -1350,6 +1350,8 @@ output_options (file, f_options, f_len, W_options, W_len,
...
@@ -1350,6 +1350,8 @@ output_options (file, f_options, f_len, W_options, W_len,
pos
=
output_option
(
file
,
sep
,
"-traditional"
,
""
,
indent
,
pos
,
max
);
pos
=
output_option
(
file
,
sep
,
"-traditional"
,
""
,
indent
,
pos
,
max
);
if
(
profile_flag
)
if
(
profile_flag
)
pos
=
output_option
(
file
,
sep
,
"-p"
,
""
,
indent
,
pos
,
max
);
pos
=
output_option
(
file
,
sep
,
"-p"
,
""
,
indent
,
pos
,
max
);
if
(
profile_block_flag
)
pos
=
output_option
(
file
,
sep
,
"-a"
,
""
,
indent
,
pos
,
max
);
for
(
j
=
0
;
j
<
f_len
;
j
++
)
for
(
j
=
0
;
j
<
f_len
;
j
++
)
if
(
*
f_options
[
j
].
variable
==
f_options
[
j
].
on_value
)
if
(
*
f_options
[
j
].
variable
==
f_options
[
j
].
on_value
)
...
@@ -1678,7 +1680,7 @@ m88k_layout_frame ()
...
@@ -1678,7 +1680,7 @@ m88k_layout_frame ()
frame_size
=
get_frame_size
();
frame_size
=
get_frame_size
();
/* Since profiling requires a call, make sure r1 is saved. */
/* Since profiling requires a call, make sure r1 is saved. */
if
(
profile_flag
)
if
(
profile_flag
||
profile_block_flag
)
save_regs
[
1
]
=
1
;
save_regs
[
1
]
=
1
;
/* If we are producing debug information, store r1 and r30 where the
/* If we are producing debug information, store r1 and r30 where the
...
@@ -1744,14 +1746,10 @@ m88k_layout_frame ()
...
@@ -1744,14 +1746,10 @@ m88k_layout_frame ()
/* The first two saved registers are placed above the new frame pointer
/* The first two saved registers are placed above the new frame pointer
if any. In the only case this matters, they are r1 and r30. */
if any. In the only case this matters, they are r1 and r30. */
if
(
frame_pointer_needed
||
sp_size
)
if
(
frame_pointer_needed
||
sp_size
)
{
m88k_fp_offset
=
ROUND_CALL_BLOCK_SIZE
(
sp_size
-
STARTING_FRAME_OFFSET
);
m88k_fp_offset
=
ROUND_CALL_BLOCK_SIZE
(
sp_size
-
STARTING_FRAME_OFFSET
);
m88k_stack_size
=
m88k_fp_offset
+
STARTING_FRAME_OFFSET
;
}
else
else
{
m88k_fp_offset
=
-
STARTING_FRAME_OFFSET
;
m88k_stack_size
=
m88k_fp_offset
=
0
;
m88k_stack_size
=
m88k_fp_offset
+
STARTING_FRAME_OFFSET
;
}
/* First, combine m88k_stack_size and size. If m88k_stack_size is
/* First, combine m88k_stack_size and size. If m88k_stack_size is
non-zero, align the frame size to 8 mod 16; otherwise align the
non-zero, align the frame size to 8 mod 16; otherwise align the
...
@@ -2455,11 +2453,21 @@ output_function_block_profiler (file, labelno)
...
@@ -2455,11 +2453,21 @@ output_function_block_profiler (file, labelno)
m88k_pound_sign
,
&
block
[
1
]);
m88k_pound_sign
,
&
block
[
1
]);
fprintf
(
file
,
"
\t
bcnd
\t
%sne0,%s,%s
\n
"
,
fprintf
(
file
,
"
\t
bcnd
\t
%sne0,%s,%s
\n
"
,
m88k_pound_sign
,
reg_names
[
26
],
&
label
[
1
]);
m88k_pound_sign
,
reg_names
[
26
],
&
label
[
1
]);
fprintf
(
file
,
"
\t
subu
\t
%s,%s,64
\n
"
,
reg_names
[
31
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
st.d
\t
%s,%s,32
\n
"
,
reg_names
[
2
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
st.d
\t
%s,%s,40
\n
"
,
reg_names
[
4
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
st.d
\t
%s,%s,48
\n
"
,
reg_names
[
6
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
st.d
\t
%s,%s,56
\n
"
,
reg_names
[
8
],
reg_names
[
31
]);
fputs
(
"
\t
bsr.n
\t
"
,
file
);
fputs
(
"
\t
bsr.n
\t
"
,
file
);
ASM_OUTPUT_LABELREF
(
file
,
"__bb_init_func"
);
ASM_OUTPUT_LABELREF
(
file
,
"__bb_init_func"
);
putc
(
'\n'
,
file
);
putc
(
'\n'
,
file
);
fprintf
(
file
,
"
\t
or
\t
%s,%s,%slo16(%s)
\n
"
,
reg_names
[
2
],
reg_names
[
27
],
fprintf
(
file
,
"
\t
or
\t
%s,%s,%slo16(%s)
\n
"
,
reg_names
[
2
],
reg_names
[
27
],
m88k_pound_sign
,
&
block
[
1
]);
m88k_pound_sign
,
&
block
[
1
]);
fprintf
(
file
,
"
\t
ld.d
\t
%s,%s,32
\n
"
,
reg_names
[
2
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
ld.d
\t
%s,%s,40
\n
"
,
reg_names
[
4
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
ld.d
\t
%s,%s,48
\n
"
,
reg_names
[
6
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
ld.d
\t
%s,%s,56
\n
"
,
reg_names
[
8
],
reg_names
[
31
]);
fprintf
(
file
,
"
\t
addu
\t
%s,%s,64
\n
"
,
reg_names
[
31
],
reg_names
[
31
]);
ASM_OUTPUT_INTERNAL_LABEL
(
file
,
"LPY"
,
labelno
);
ASM_OUTPUT_INTERNAL_LABEL
(
file
,
"LPY"
,
labelno
);
}
}
...
@@ -2473,7 +2481,7 @@ output_block_profiler (file, blockno)
...
@@ -2473,7 +2481,7 @@ output_block_profiler (file, blockno)
{
{
char
block
[
256
];
char
block
[
256
];
ASM_GENERATE_INTERNAL_LABEL
(
block
,
"LPBX"
,
0
);
ASM_GENERATE_INTERNAL_LABEL
(
block
,
"LPBX"
,
2
);
/* @@ Need to deal with PIC. I'm not sure what the requirements are on
/* @@ Need to deal with PIC. I'm not sure what the requirements are on
register usage, so I used r26/r27 to be safe. */
register usage, so I used r26/r27 to be safe. */
...
...
gcc/config/m88k/m88k.h
View file @
668681ef
...
@@ -204,9 +204,9 @@ extern char * reg_names[];
...
@@ -204,9 +204,9 @@ extern char * reg_names[];
/* Print subsidiary information on the compiler version in use.
/* Print subsidiary information on the compiler version in use.
Redefined in m88kv4.h, and m88kluna.h. */
Redefined in m88kv4.h, and m88kluna.h. */
#define VERSION_INFO1 "88open OCS/BCS, "
#define VERSION_INFO1 "88open OCS/BCS, "
#define VERSION_INFO2 "
27 Apr
1992"
#define VERSION_INFO2 "
19 May
1992"
#define VERSION_STRING version_string
#define VERSION_STRING version_string
#define TM_SCCS_ID "@(#)m88k.h 2.1.
4.6 27 Apr 1992 16:30:45
"
#define TM_SCCS_ID "@(#)m88k.h 2.1.
11.5 19 May 1992 09:28:04
"
/* Run-time compilation parameters selecting different hardware subsets. */
/* Run-time compilation parameters selecting different hardware subsets. */
...
@@ -1926,25 +1926,33 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
...
@@ -1926,25 +1926,33 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
#define ASM_OUTPUT_BYTE(FILE,VALUE) \
fprintf (FILE, "\t%s\t 0x%x\n", CHAR_ASM_OP, (VALUE))
fprintf (FILE, "\t%s\t 0x%x\n", CHAR_ASM_OP, (VALUE))
/* The singl-byte pseudo-op is the default. Override svr[34].h. */
/* The singl
e
-byte pseudo-op is the default. Override svr[34].h. */
#undef ASM_BYTE_OP
#undef ASM_BYTE_OP
#define ASM_BYTE_OP "
\t
byte"
#define ASM_BYTE_OP "byte"
#undef ASM_OUTPUT_ASCII
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE, P, SIZE) \
#define ASM_OUTPUT_ASCII(FILE, P, SIZE) \
output_ascii (FILE, ASCII_DATA_ASM_OP, 48, P, SIZE)
output_ascii (FILE, ASCII_DATA_ASM_OP, 48, P, SIZE)
/* The case table contains either words or branch instructions. This says
which. We always claim that the vector is PC-relative. It is position
independent when -fpic is used. */
#define CASE_VECTOR_INSNS (TARGET_88100 || flag_pic)
/* Epilogue for case labels. This jump instruction is called by casesi
/* Epilogue for case labels. This jump instruction is called by casesi
to transfer to the appropriate branch instruction within the table.
to transfer to the appropriate branch instruction within the table.
The label `@L<n>e' is coined to mark the end of the table. */
The label `@L<n>e' is coined to mark the end of the table. */
#define ASM_OUTPUT_CASE_END(FILE, NUM, TABLE) \
#define ASM_OUTPUT_CASE_END(FILE, NUM, TABLE) \
do { \
do { \
char label[256]; \
if (CASE_VECTOR_INSNS) \
ASM_GENERATE_INTERNAL_LABEL (label, "L", NUM); \
{ \
fprintf (FILE, "%se:\n", &label[1]); \
char label[256]; \
if (! flag_delayed_branch) \
ASM_GENERATE_INTERNAL_LABEL (label, "L", NUM); \
fprintf (FILE, "\tlda\t %s,%s[%s]\n", reg_names[1], reg_names[1], \
fprintf (FILE, "%se:\n", &label[1]); \
reg_names[m88k_case_index]); \
if (! flag_delayed_branch) \
fprintf (FILE, "\tjmp\t %s\n", reg_names[1]); \
fprintf (FILE, "\tlda\t %s,%s[%s]\n", reg_names[1], \
reg_names[1], reg_names[m88k_case_index]); \
fprintf (FILE, "\tjmp\t %s\n", reg_names[1]); \
} \
} while (0)
} while (0)
/* This is how to output an element of a case-vector that is absolute. */
/* This is how to output an element of a case-vector that is absolute. */
...
@@ -1952,7 +1960,8 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
...
@@ -1952,7 +1960,8 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
do { \
do { \
char buffer[256]; \
char buffer[256]; \
ASM_GENERATE_INTERNAL_LABEL (buffer, "L", VALUE); \
ASM_GENERATE_INTERNAL_LABEL (buffer, "L", VALUE); \
fprintf (FILE, "\tbr\t %s\n", &buffer[1]); \
fprintf (FILE, CASE_VECTOR_INSNS ? "\tbr\t %s\n" : "\tword\t %s\n", \
&buffer[1]); \
} while (0)
} while (0)
/* This is how to output an element of a case-vector that is relative. */
/* This is how to output an element of a case-vector that is relative. */
...
...
gcc/config/m88k/m88k.md
View file @
668681ef
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
(define_expand "m88k_sccs_id"
(define_expand "m88k_sccs_id"
[
(match_operand:SI 0 "" "")
]
[
(match_operand:SI 0 "" "")
]
""
""
"{ static char sccs_id
[
] =
\"
@(#)m88k.md 2.1.
4.3 20 Apr 1992 10:42:47
\"
;
"{ static char sccs_id
[
] =
\"
@(#)m88k.md 2.1.
11.3 19 May 1992 08:44:52
\"
;
FAIL; }")
FAIL; }")
;; Attribute specifications
;; Attribute specifications
...
@@ -148,10 +148,15 @@
...
@@ -148,10 +148,15 @@
; "!store,mstore,marith,mbit,mfp,weird") 1 0)
; "!store,mstore,marith,mbit,mfp,weird") 1 0)
;(define_function_unit "alu" 1 0 (eq_attr "type" "marith,mbit,weird") 2 0)
;(define_function_unit "alu" 1 0 (eq_attr "type" "marith,mbit,weird") 2 0)
(define_function_unit "alu" 1 0
(and (eq_attr "type" "loada,arith,bit,mov") (eq_attr "cpu" "!m88100")) 2 0)
(define_function_unit "alu" 1 0
(and (eq_attr "type" "marith,mbit,weird") (eq_attr "cpu" "!m88100")) 4 0)
(define_function_unit "memory" 1 3
(define_function_unit "memory" 1 3
(and (eq_attr "type" "load") (eq_attr "cpu" "m88100")) 3 2)
(and (eq_attr "type" "load") (eq_attr "cpu" "m88100")) 3 2)
(define_function_unit "memory" 1 3
(define_function_unit "memory" 1 3
(and (eq_attr "type" "load") (eq_attr "cpu" "!m88100"))
2
2)
(and (eq_attr "type" "load") (eq_attr "cpu" "!m88100"))
4
2)
; The fp1 and fplast descriptions currently have no effect.
; The fp1 and fplast descriptions currently have no effect.
;(define_function_unit "fp1" 1 1 (eq_attr "fpu" "yes") 1 2)
;(define_function_unit "fp1" 1 1 (eq_attr "fpu" "yes") 1 2)
...
@@ -169,7 +174,7 @@
...
@@ -169,7 +174,7 @@
(define_function_unit "fpmul" 1 4
(define_function_unit "fpmul" 1 4
(and (eq_attr "type" "imul,spmul,dpmul,mfp")
(and (eq_attr "type" "imul,spmul,dpmul,mfp")
(eq_attr "cpu" "!m88100"))
3
2) ; 3
(eq_attr "cpu" "!m88100"))
6
2) ; 3
(define_function_unit "fpadd" 1 3
(define_function_unit "fpadd" 1 3
(and (eq_attr "type" "spadd,spcmp") (eq_attr "cpu" "m88100")) 3 2) ; 5-6
(and (eq_attr "type" "spadd,spcmp") (eq_attr "cpu" "m88100")) 3 2) ; 5-6
...
@@ -183,15 +188,15 @@
...
@@ -183,15 +188,15 @@
(and (eq_attr "type" "idiv") (eq_attr "cpu" "m88100")) 38 2) ; 38
(and (eq_attr "type" "idiv") (eq_attr "cpu" "m88100")) 38 2) ; 38
(define_function_unit "fpadd" 1 3
(define_function_unit "fpadd" 1 3
(and (eq_attr "type" "spadd,dpadd") (eq_attr "cpu" "!m88100"))
3
2) ; 3
(and (eq_attr "type" "spadd,dpadd") (eq_attr "cpu" "!m88100"))
6
2) ; 3
(define_function_unit "fpadd" 1 3
(define_function_unit "fpadd" 1 3
(and (eq_attr "type" "spcmp,dpcmp") (eq_attr "cpu" "!m88100"))
1
2) ; 3
(and (eq_attr "type" "spcmp,dpcmp") (eq_attr "cpu" "!m88100"))
2
2) ; 3
(define_function_unit "fpadd" 1 3
(define_function_unit "fpadd" 1 3
(and (eq_attr "type" "spdiv") (eq_attr "cpu" "!m88100"))
13
2) ; 13
(and (eq_attr "type" "spdiv") (eq_attr "cpu" "!m88100"))
26
2) ; 13
(define_function_unit "fpadd" 1 3
(define_function_unit "fpadd" 1 3
(and (eq_attr "type" "dpdiv") (eq_attr "cpu" "!m88100"))
23
2) ; 23
(and (eq_attr "type" "dpdiv") (eq_attr "cpu" "!m88100"))
46
2) ; 23
(define_function_unit "fpadd" 1 3
(define_function_unit "fpadd" 1 3
(and (eq_attr "type" "idiv") (eq_attr "cpu" "!m88100"))
18
2) ; 18
(and (eq_attr "type" "idiv") (eq_attr "cpu" "!m88100"))
36
2) ; 18
;(define_function_unit "fplast" 1 1 (eq_attr "fpu" "yes") 1 2)
;(define_function_unit "fplast" 1 1 (eq_attr "fpu" "yes") 1 2)
...
@@ -1338,7 +1343,7 @@
...
@@ -1338,7 +1343,7 @@
(use (match_dup 5))
(use (match_dup 5))
(parallel [(call (mem:SI (match_operand 0 "" ""))
(parallel [(call (mem:SI (match_operand 0 "" ""))
(const_int 0))
(const_int 0))
(
use
(reg:SI 1))])]
(
clobber
(reg:SI 1))])]
""
""
"")
"")
...
@@ -1360,7 +1365,7 @@
...
@@ -1360,7 +1365,7 @@
(use (reg:SI 6))
(use (reg:SI 6))
(parallel [(call (mem:SI (match_operand 0 "" ""))
(parallel [(call (mem:SI (match_operand 0 "" ""))
(const_int 0))
(const_int 0))
(
use
(reg:SI 1))])]
(
clobber
(reg:SI 1))])]
""
""
"")
"")
...
@@ -2940,22 +2945,45 @@
...
@@ -2940,22 +2945,45 @@
{
{
register rtx index_diff = gen_reg_rtx (SImode);
register rtx index_diff = gen_reg_rtx (SImode);
register rtx low = gen_rtx (CONST_INT, VOIDmode, -INTVAL (operands[1]));
register rtx low = gen_rtx (CONST_INT, VOIDmode, -INTVAL (operands[1]));
register rtx label = gen_rtx (LABEL_REF, VOIDmode, operands[3]);
register rtx base;
if (! CASE_VECTOR_INSNS)
/* These instructions are likely to be scheduled and made loop invariant.
This decreases the cost of the dispatch at the expense of the default
case. */
base = force_reg (SImode, memory_address_noforce (SImode, label));
/* Compute the index difference and handle the default case. */
/* Compute the index difference and handle the default case. */
emit_insn (gen_addsi3 (index_diff,
emit_insn (gen_addsi3 (index_diff,
force_reg (SImode, operands[0]),
force_reg (SImode, operands[0]),
ADD_INT (low) ? low : force_reg (SImode, low)));
ADD_INT (low) ? low : force_reg (SImode, low)));
emit_insn (gen_cmpsi (index_diff, operands[2]));
emit_insn (gen_cmpsi (index_diff, operands[2]));
/* It's possible to replace this branch with sgtu/iorsi3 and adding a -1
entry to the table. However, that doesn't seem to win on the m88110. */
emit_jump_insn (gen_bgtu (operands[4]));
emit_jump_insn (gen_bgtu (operands[4]));
/* Call the jump that will branch to the appropriate case. */
if (CASE_VECTOR_INSNS)
emit_jump_insn (gen_casesi_enter (gen_rtx (LABEL_REF, VOIDmode, operands[3]),
/* Call the jump that will branch to the appropriate case. */
index_diff,
emit_jump_insn (gen_casesi_enter (label, index_diff, operands[3]));
operands[3]));
else
/* Claim that flow drops into the table so it will be adjacent. */
/* Load the table entry and jump to it. */
emit_jump_insn (gen_casesi_jump (gen_reg_rtx (SImode), base, index_diff));
/* Claim that flow drops into the table so it will be adjacent by not
emitting a barrier. */
DONE;
DONE;
}")
}")
(define_expand "casesi_jump"
[(set (match_operand:SI 0 "" "")
(mem:SI (plus:SI (match_operand:SI 1 "" "")
(mult:SI (match_operand:SI 2 "" "")
(const_int 4)))))
(set (pc) (match_dup 0))]
""
"")
;; The bsr.n instruction is directed to the END of the table. See
;; The bsr.n instruction is directed to the END of the table. See
;; ASM_OUTPUT_CASE_END.
;; ASM_OUTPUT_CASE_END.
...
@@ -2981,7 +3009,7 @@
...
@@ -2981,7 +3009,7 @@
(define_expand "call"
(define_expand "call"
[(parallel [(call (match_operand:SI 0 "" "")
[(parallel [(call (match_operand:SI 0 "" "")
(match_operand 1 "" ""))
(match_operand 1 "" ""))
(
use
(reg:SI 1))])]
(
clobber
(reg:SI 1))])]
""
""
"
"
{
{
...
@@ -2994,7 +3022,7 @@
...
@@ -2994,7 +3022,7 @@
(define_insn ""
(define_insn ""
[(parallel [(call (mem:SI (match_operand:SI 0 "call_address_operand" "rQ"))
[(parallel [(call (mem:SI (match_operand:SI 0 "call_address_operand" "rQ"))
(match_operand 1 "" ""))
(match_operand 1 "" ""))
(
use
(reg:SI 1))])]
(
clobber
(reg:SI 1))])]
""
""
"* return output_call (operands, operands[0]);"
"* return output_call (operands, operands[0]);"
[(set_attr "type" "call")])
[(set_attr "type" "call")])
...
@@ -3003,7 +3031,7 @@
...
@@ -3003,7 +3031,7 @@
[(parallel [(set (match_operand 0 "register_operand" "")
[(parallel [(set (match_operand 0 "register_operand" "")
(call (match_operand:SI 1 "" "")
(call (match_operand:SI 1 "" "")
(match_operand 2 "" "")))
(match_operand 2 "" "")))
(
use
(reg:SI 1))])]
(
clobber
(reg:SI 1))])]
""
""
"
"
{
{
...
@@ -3018,7 +3046,7 @@
...
@@ -3018,7 +3046,7 @@
(call (mem:SI
(call (mem:SI
(match_operand:SI 1 "call_address_operand" "rQ"))
(match_operand:SI 1 "call_address_operand" "rQ"))
(match_operand 2 "" "")))
(match_operand 2 "" "")))
(
use
(reg:SI 1))])]
(
clobber
(reg:SI 1))])]
""
""
"* return output_call (operands, operands[1]);"
"* return output_call (operands, operands[1]);"
[(set_attr "type" "call")])
[(set_attr "type" "call")])
...
...
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