Commit ca8b555b by Hans-Peter Nilsson Committed by Hans-Peter Nilsson

target-supports.exp (check_effective_target_hard_float): Only use the…

target-supports.exp (check_effective_target_hard_float): Only use the preprocessor tests for mips*-*-* and xtensa-*-*.

	* lib/target-supports.exp (check_effective_target_hard_float): Only
	use the preprocessor tests for mips*-*-* and xtensa-*-*.  For all
	other targets, grep for a call insn in the rtl expand dump for an
	add of two doubles.
	(target_compile): Support generating rtl dumps as output.

From-SVN: r132102
parent ba6e57ba
2008-02-04 Hans-Peter Nilsson <hp@axis.com>
* lib/target-supports.exp (check_effective_target_hard_float): Only
use the preprocessor tests for mips*-*-* and xtensa-*-*. For all
other targets, grep for a call insn in the rtl expand dump for an
add of two doubles.
(target_compile): Support generating rtl dumps as output.
2008-02-04 Richard Guenther <rguenther@suse.de> 2008-02-04 Richard Guenther <rguenther@suse.de>
PR middle-end/33631 PR middle-end/33631
...@@ -44,18 +44,32 @@ proc check_compile {basename type contents args} { ...@@ -44,18 +44,32 @@ proc check_compile {basename type contents args} {
"*// C++*" { set src ${basename}[pid].cc } "*// C++*" { set src ${basename}[pid].cc }
default { set src ${basename}[pid].c } default { set src ${basename}[pid].c }
} }
switch $type { set compile_type $type
switch -glob $type {
assembly { set output ${basename}[pid].s } assembly { set output ${basename}[pid].s }
object { set output ${basename}[pid].o } object { set output ${basename}[pid].o }
executable { set output ${basename}[pid].exe } executable { set output ${basename}[pid].exe }
"rtl-*" {
set output ${basename}[pid].s
lappend options "additional_flags=-fdump-$type"
set compile_type assembly
}
} }
set f [open $src "w"] set f [open $src "w"]
puts $f $contents puts $f $contents
close $f close $f
set lines [${tool}_target_compile $src $output $type "$options"] set lines [${tool}_target_compile $src $output $compile_type "$options"]
file delete $src file delete $src
return [list $lines $output] set scan_output $output
# Don't try folding this into the switch above; calling "glob" before the
# file is created won't work.
if [regexp "rtl-(.*)" $type dummy rtl_type] {
set scan_output "[glob $src.\[0-9\]\[0-9\]\[0-9\]r.$rtl_type]"
file delete $output
}
return [list $lines $scan_output]
} }
proc current_target_name { } { proc current_target_name { } {
...@@ -565,12 +579,19 @@ proc check_effective_target_mpaired_single { } { ...@@ -565,12 +579,19 @@ proc check_effective_target_mpaired_single { } {
# Return true if the target has access to FPU instructions. # Return true if the target has access to FPU instructions.
proc check_effective_target_hard_float { } { proc check_effective_target_hard_float { } {
return [check_no_compiler_messages hard_float assembly { if { [istarget mips*-*-*] || [istarget xtensa-*-*] } {
#if ((defined __mips \ return [check_no_compiler_messages hard_float assembly {
&& (defined __mips_soft_float || defined __mips16)) \ #if ((defined __mips \
|| (defined __xtensa__ && defined __XTENSA_SOFT_FLOAT__)) && (defined __mips_soft_float || defined __mips16)) \
#error FOO || (defined __xtensa__ && defined __XTENSA_SOFT_FLOAT__))
#endif #error FOO
#endif
}]
}
# The generic test equates hard_float with "no call for adding doubles".
return [check_no_messages_and_pattern hard_float "!\\(call" rtl-expand {
double a (double b, double c) { return b + c; }
}] }]
} }
......
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