Commit 1d6aee1c by Kyrylo Tkachov Committed by Kyrylo Tkachov

arm-fixed.md (ssmulsa3, usmulusa3): Adjust for arm_restrict_it.

2013-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
	Adjust for arm_restrict_it.
	Remove trailing whitespace.

From-SVN: r201249
parent 017d38f5
2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
Adjust for arm_restrict_it.
Remove trailing whitespace.
2013-07-25  Mark Kettenis  <kettenis@openbsd.org>
* config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
......
......@@ -229,9 +229,18 @@
output_asm_insn ("ssat\\t%R3, #15, %R3", operands);
output_asm_insn ("mrs\\t%4, APSR", operands);
output_asm_insn ("tst\\t%4, #1<<27", operands);
if (arm_restrict_it)
{
output_asm_insn ("mvn\\t%4, %R3, asr #32", operands);
output_asm_insn ("it\\tne", operands);
output_asm_insn ("movne\\t%Q3, %4", operands);
}
else
{
if (TARGET_THUMB2)
output_asm_insn ("it\\tne", operands);
output_asm_insn ("mvnne\\t%Q3, %R3, asr #32", operands);
}
output_asm_insn ("mov\\t%0, %Q3, lsr #15", operands);
output_asm_insn ("orr\\t%0, %0, %R3, asl #17", operands);
return "";
......@@ -239,7 +248,9 @@
[(set_attr "conds" "clob")
(set (attr "length")
(if_then_else (eq_attr "is_thumb" "yes")
(const_int 38)
(if_then_else (match_test "arm_restrict_it")
(const_int 40)
(const_int 38))
(const_int 32)))])
;; Same goes for this.
......@@ -277,9 +288,18 @@
output_asm_insn ("usat\\t%R3, #16, %R3", operands);
output_asm_insn ("mrs\\t%4, APSR", operands);
output_asm_insn ("tst\\t%4, #1<<27", operands);
if (arm_restrict_it)
{
output_asm_insn ("sbfx\\t%4, %R3, #15, #1", operands);
output_asm_insn ("it\\tne", operands);
output_asm_insn ("movne\\t%Q3, %4", operands);
}
else
{
if (TARGET_THUMB2)
output_asm_insn ("it\\tne", operands);
output_asm_insn ("sbfxne\\t%Q3, %R3, #15, #1", operands);
}
output_asm_insn ("lsr\\t%0, %Q3, #16", operands);
output_asm_insn ("orr\\t%0, %0, %R3, asl #16", operands);
return "";
......@@ -287,7 +307,9 @@
[(set_attr "conds" "clob")
(set (attr "length")
(if_then_else (eq_attr "is_thumb" "yes")
(const_int 38)
(if_then_else (match_test "arm_restrict_it")
(const_int 40)
(const_int 38))
(const_int 32)))])
(define_expand "mulha3"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment