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
08075ead
Commit
08075ead
authored
Jan 28, 1996
by
David Edelsohn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
movdf 64bit and movdi matcher 64bit
From-SVN: r11119
parent
ac2a93a1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
4 deletions
+31
-4
gcc/config/rs6000/rs6000.md
+31
-4
No files found.
gcc/config/rs6000/rs6000.md
View file @
08075ead
...
...
@@ -5143,6 +5143,23 @@
if (GET_CODE (operands
[
0
]
) != REG)
operands
[
1
]
= force_reg (DFmode, operands
[
1
]
);
/* Stores between FPR and any non-FPR registers must go through a
temporary stack slot. */
if (TARGET_POWERPC64
&& GET_CODE (operands
[
0
]
) == REG && GET_CODE (operands
[
1
]
) == REG
&& ((FP_REGNO_P (REGNO (operands
[
0
]
))
&& ! FP_REGNO_P (REGNO (operands
[
1
]
)))
|| (FP_REGNO_P (REGNO (operands
[
1
]
))
&& ! FP_REGNO_P (REGNO (operands
[
0
]
)))))
{
rtx stack_slot = assign_stack_temp (DFmode, 8, 0);
emit_move_insn (stack_slot, operands[1]);
emit_move_insn (operands[0], stack_slot);
DONE;
}
if (CONSTANT_P (operands
[
1
]
) && ! easy_fp_constant (operands
[
1
]
, DFmode))
{
operands
[
1
]
= force_const_mem (DFmode, operands
[
1
]
);
...
...
@@ -5374,8 +5391,8 @@
(set_attr "length" "8,8,8,
*,*
,
*
")])
(define_insn ""
[
(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,r,f,f,m,r,
*
h")
(match_operand:DI 1 "input_operand" "r,m,r,I,J,R,f,m,f,
*
h,r"))]
[
(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m,r,r,r,f,f,m,r,
*h
,*
h
")
(match_operand:DI 1 "input_operand" "r,m,r,I,J,R,f,m,f,
*
h,r
,0
"))]
"TARGET_POWERPC64 && (gpc_reg_operand (operands
[
0
]
, DImode)
|| gpc_reg_operand (operands
[
1
]
, DImode))"
"@
...
...
@@ -5389,8 +5406,18 @@
lfd%U1%X1 %0,%1
stfd%U0%X0 %1,%0
mf%1 %0
mt%0 %1"
[
(set_attr "type" "*,load,*,*,*,*,fp,fpload,*,*,mtjmpr")
]
)
mt%0 %1
cror 0,0,0"
[
(set_attr "type" "*,load,*,*,*,*,fp,fpload,*,*,mtjmpr,*")
]
)
(define_insn ""
[
(set (match_operand:CC 2 "cc_reg_operand" "=x")
(compare:CC (match_operand:DI 1 "gpc_reg_operand" "r")
(const_int 0)))
(set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))]
"TARGET_POWERPC64"
"mr. %0,%1"
[
(set_attr "type" "compare")
]
)
;; TImode is similar, except that we usually want to compute the address into
;; a register and use lsi/stsi (the exception is during reload). MQ is also
...
...
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