Jan Hubicka <hubicka@freesoft.cz>
Jan Hubicka <hubicka@freesoft.cz> * i386.md (movsf_push): Handle memory to memory case too, new splitter. (movdf_push, movxf_push): Likewise. (movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove. From-SVN: r26408
This commit is contained in:
parent
eba0e61dc2
commit
f72b27a5f6
@ -1,3 +1,9 @@
|
||||
Tue Apr 13 14:26:31 1999 Jan Hubicka <hubicka@freesoft.cz>
|
||||
|
||||
* i386.md (movsf_push): Handle memory to memory case too, new splitter.
|
||||
(movdf_push, movxf_push): Likewise.
|
||||
(movsf_push_memory, movdf_push_memory, movxf_push_memory): Remove.
|
||||
|
||||
Tue Apr 13 14:14:06 1999 Jan Hubicka <hubicka@freesoft.cz>
|
||||
|
||||
* i386.md: Do not output mov %0,reg on AMD K6.
|
||||
|
@ -1283,7 +1283,8 @@
|
||||
(define_insn "movsf_push"
|
||||
[(set (match_operand:SF 0 "push_operand" "=<,<")
|
||||
(match_operand:SF 1 "general_operand" "*rfF,m"))]
|
||||
"GET_CODE (operands[1]) != MEM || reload_in_progress || reload_completed"
|
||||
"TARGET_PUSH_MEMORY || GET_CODE (operands[1]) != MEM
|
||||
|| reload_in_progress || reload_completed"
|
||||
"*
|
||||
{
|
||||
if (STACK_REG_P (operands[1]))
|
||||
@ -1310,11 +1311,15 @@
|
||||
return AS1 (push%L0,%1);
|
||||
}")
|
||||
|
||||
(define_insn "movsf_push_memory"
|
||||
[(set (match_operand:SF 0 "push_operand" "=<")
|
||||
(match_operand:SF 1 "memory_operand" "m"))]
|
||||
"TARGET_PUSH_MEMORY"
|
||||
"* return AS1 (push%L0,%1);")
|
||||
(define_split
|
||||
[(set (match_operand:SF 0 "push_operand" "")
|
||||
(match_operand:SF 1 "general_operand" ""))]
|
||||
"reload_completed && STACK_REG_P (operands[1])"
|
||||
[(set (reg:SI 7)
|
||||
(minus:SI (reg:SI 7) (const_int 4)))
|
||||
(set (mem:SF (reg:SI 7))
|
||||
(match_dup 1))]
|
||||
"")
|
||||
|
||||
(define_expand "movsf"
|
||||
[(set (match_operand:SF 0 "general_operand" "")
|
||||
@ -1405,7 +1410,8 @@
|
||||
(define_insn "movdf_push"
|
||||
[(set (match_operand:DF 0 "push_operand" "=<,<")
|
||||
(match_operand:DF 1 "general_operand" "*rfF,o"))]
|
||||
"GET_CODE (operands[1]) != MEM || reload_in_progress || reload_completed"
|
||||
"TARGET_PUSH_MEMORY || GET_CODE (operands[1]) != MEM
|
||||
|| reload_in_progress || reload_completed"
|
||||
"*
|
||||
{
|
||||
if (STACK_REG_P (operands[1]))
|
||||
@ -1432,11 +1438,15 @@
|
||||
return output_move_double (operands);
|
||||
}")
|
||||
|
||||
(define_insn "movdf_push_memory"
|
||||
[(set (match_operand:DF 0 "push_operand" "=<")
|
||||
(match_operand:DF 1 "memory_operand" "o"))]
|
||||
"TARGET_PUSH_MEMORY"
|
||||
"* return output_move_pushmem (operands, insn, GET_MODE_SIZE (DFmode),0,0);")
|
||||
(define_split
|
||||
[(set (match_operand:DF 0 "push_operand" "")
|
||||
(match_operand:DF 1 "register_operand" ""))]
|
||||
"reload_completed && STACK_REG_P (operands[1])"
|
||||
[(set (reg:SI 7)
|
||||
(minus:SI (reg:SI 7) (const_int 8)))
|
||||
(set (mem:DF (reg:SI 7))
|
||||
(match_dup 1))]
|
||||
"")
|
||||
|
||||
(define_expand "movdf"
|
||||
[(set (match_operand:DF 0 "general_operand" "")
|
||||
@ -1529,7 +1539,8 @@
|
||||
(define_insn "movxf_push"
|
||||
[(set (match_operand:XF 0 "push_operand" "=<,<")
|
||||
(match_operand:XF 1 "general_operand" "*rfF,o"))]
|
||||
"GET_CODE (operands[1]) != MEM || reload_in_progress || reload_completed"
|
||||
"TARGET_PUSH_MEMORY || GET_CODE (operands[1]) != MEM
|
||||
|| reload_in_progress || reload_completed"
|
||||
"*
|
||||
{
|
||||
if (STACK_REG_P (operands[1]))
|
||||
@ -1555,11 +1566,15 @@
|
||||
return output_move_double (operands);
|
||||
}")
|
||||
|
||||
(define_insn "movxf_push_memory"
|
||||
[(set (match_operand:XF 0 "push_operand" "=<")
|
||||
(match_operand:XF 1 "memory_operand" "o"))]
|
||||
"TARGET_PUSH_MEMORY"
|
||||
"* return output_move_pushmem (operands, insn, GET_MODE_SIZE (XFmode),0,0);")
|
||||
(define_split
|
||||
[(set (match_operand:XF 0 "push_operand" "")
|
||||
(match_operand:XF 1 "register_operand" ""))]
|
||||
"reload_completed && STACK_REG_P (operands[1])"
|
||||
[(set (reg:SI 7)
|
||||
(minus:SI (reg:SI 7) (const_int 12)))
|
||||
(set (mem:XF (reg:SI 7))
|
||||
(match_dup 1))]
|
||||
"")
|
||||
|
||||
(define_expand "movxf"
|
||||
[(set (match_operand:XF 0 "general_operand" "")
|
||||
|
Loading…
Reference in New Issue
Block a user