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
60801f0b
Commit
60801f0b
authored
Jun 03, 1996
by
Richard Kenner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(call): Mask unimp operand to 12 bits, just like Sun.
From-SVN: r12143
parent
0086427c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
21 deletions
+27
-21
gcc/config/sparc/sparc.md
+27
-21
No files found.
gcc/config/sparc/sparc.md
View file @
60801f0b
...
...
@@ -5067,7 +5067,7 @@
if (GET_MODE (operands[0]) != FUNCTION_MODE)
abort ();
if (GET_CODE (XEXP (operands[0], 0)) == LABEL_REF)
if (GET_CODE (XEXP (operands[0], 0)) == LABEL_REF)
{
/* This is really a PIC sequence. We want to represent
it as a funny jump so it's delay slots can be filled.
...
...
@@ -5077,18 +5077,22 @@
Why cannot we have delay slots filled if it were a CALL? */
if (! TARGET_ARCH64 && INTVAL (operands[3]) != 0)
emit_jump_insn (gen_rtx (PARALLEL, VOIDmode, gen_rtvec (3,
gen_rtx (SET, VOIDmode, pc_rtx,
XEXP (operands[0], 0)),
operands[3],
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
emit_jump_insn
(gen_rtx (PARALLEL, VOIDmode,
gen_rtvec (3,
gen_rtx (SET, VOIDmode, pc_rtx,
XEXP (operands[0], 0)),
GEN_INT (INTVAL (operands[3]) & 0xfff),
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
else
emit_jump_insn (gen_rtx (PARALLEL, VOIDmode, gen_rtvec (2,
gen_rtx (SET, VOIDmode, pc_rtx,
XEXP (operands[0], 0)),
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
emit_jump_insn
(gen_rtx (PARALLEL, VOIDmode,
gen_rtvec (2,
gen_rtx (SET, VOIDmode, pc_rtx,
XEXP (operands[0], 0)),
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
goto finish_call;
}
...
...
@@ -5107,16 +5111,18 @@
#endif
if (! TARGET_ARCH64 && INTVAL (operands[3]) != 0)
emit_call_insn (gen_rtx (PARALLEL, VOIDmode, gen_rtvec (3,
gen_rtx (CALL, VOIDmode, fn_rtx, nregs_rtx),
operands[3],
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
emit_call_insn
(gen_rtx (PARALLEL, VOIDmode,
gen_rtvec (3, gen_rtx (CALL, VOIDmode, fn_rtx, nregs_rtx),
GEN_INT (INTVAL (operands[3]) & 0xfff),
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
else
emit_call_insn (gen_rtx (PARALLEL, VOIDmode, gen_rtvec (2,
gen_rtx (CALL, VOIDmode, fn_rtx, nregs_rtx),
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
emit_call_insn
(gen_rtx (PARALLEL, VOIDmode,
gen_rtvec (2, gen_rtx (CALL, VOIDmode, fn_rtx, nregs_rtx),
gen_rtx (CLOBBER, VOIDmode,
gen_rtx (REG, Pmode, 15)))));
finish_call:
#if 0
...
...
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