sparc.md (cpu): New attribute.
authorDoug Evans <dje@gnu.org>
Wed, 15 Jun 1994 07:50:13 +0000 (07:50 +0000)
committerDoug Evans <dje@gnu.org>
Wed, 15 Jun 1994 07:50:13 +0000 (07:50 +0000)
commita8d2b75275a7a3619e61843adc86152b623ebf9b
tree5d258ac977a83f06318d701ea1ca4a4a9c044932
parent61a55e8b0937a3c1c97c0e99c14473a2a614c225
sparc.md (cpu): New attribute.

* sparc/sparc.md (cpu): New attribute.
(type attribute): New value cmove (conditional moves).
(cmpdi): New pattern for v9.
(seq*, sne*): Add v9 support.
(sgt,slt,sge,sle): Explicitly restrict operand 0 to the integer
registers.  Try emitting a conditional move for v9.
(sgtu,sltu,sgeu,sleu): Likewise.
(comparison insns): Add v9 versions.
(scc insns): Add DImode versions for v9.
(beq, bne, bgt, blt, bge, ble): If comparing DImode with 0 on v9,
use brxx insns.  Use emit_jump_insn, not emit_insn, as the latter
mishandles brxx insns.
(branch insns): Update calls to output_cbranch.
Add v9 versions to support multiple floating point condition code regs.
Add v9 versions to support brxx insns.
(lo_sum, high, pic): Add v9 support.
(symbolic move patterns): Disable for v9.
(DImode, DFmode, TFmode moves): Add v9 support.
(conditional move insns): Define for v9.
(zero_extendqidi2, extendqidi2, zero_extendhidi2, extendhidi2,
zero_extendsidi2, extendsidi2, floatdisf2, floatdidf2, floatditf2,
fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2, muldi3, divdi3,
udivdi3, ashldi3, ashrdi3, lshrdi3, ffsdi2): New patterns for v9.
(bitfield compare insn): Add DImode version for v9.
(adddi3, subdi3, negdi2, anddi3, iordi3, xordi3, one_cmpldi2,
mixed mode fp mult insns, negdf2, negtf2, absdf2, abstf2, tablejump,
call, call_value, untyped_call, untyped_return, indirect_jump,
flush_register_windows, flush): Add v9 support.
(ldd peep holes): Disable for v9.
(set/compare peep hole): Define DImode version for v9.
(sign extend/compare peep hole): Likewise.
(return peep holes): Add v9 support.
(call/jump peep holes): Add v9 support.

From-SVN: r7487
gcc/config/sparc/sparc.md