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
This commit is contained in:
Doug Evans 1994-06-15 07:50:13 +00:00
parent 61a55e8b09
commit a8d2b75275

File diff suppressed because it is too large Load Diff