about summary refs log tree commit diff
path: root/tests/assembly
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-10-22 22:36:59 +0000
committerbors <bors@rust-lang.org>2024-10-22 22:36:59 +0000
commit8bf64f106ac0cd1f2b9c6fd27965dd2dc4b862dd (patch)
treea12bfad99e5c05d0313ac32ae62cefb6b095f779 /tests/assembly
parent86d69c705a552236a622eee3fdea94bf13c5f102 (diff)
parent09068192f86e84bb0dddc105c9f7cc1971684fb7 (diff)
downloadrust-8bf64f106ac0cd1f2b9c6fd27965dd2dc4b862dd.tar.gz
rust-8bf64f106ac0cd1f2b9c6fd27965dd2dc4b862dd.zip
Auto merge of #131871 - RalfJung:x86-32-float, r=workingjubilee
x86-32 float return for 'Rust' ABI: treat all float types consistently

This helps with https://github.com/rust-lang/rust/issues/131819: for our own ABI on x86-32, we want to *never* use the float registers. The previous logic only considered F32 and F64, but skipped F16 and F128. So I made the logic just apply to all float types.

try-job: i686-gnu
try-job: i686-gnu-nopt
Diffstat (limited to 'tests/assembly')
-rw-r--r--tests/assembly/x86-return-float.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/tests/assembly/x86-return-float.rs b/tests/assembly/x86-return-float.rs
index 30c5e869633..acd1af8d38a 100644
--- a/tests/assembly/x86-return-float.rs
+++ b/tests/assembly/x86-return-float.rs
@@ -305,8 +305,10 @@ pub unsafe fn call_other_f64(x: &mut (usize, f64)) {
 // CHECK-LABEL: return_f16:
 #[no_mangle]
 pub fn return_f16(x: f16) -> f16 {
-    // CHECK: pinsrw $0, {{.*}}(%ebp), %xmm0
-    // CHECK-NOT: xmm0
+    // CHECK: pushl %ebp
+    // CHECK: movl %esp, %ebp
+    // CHECK: movzwl 8(%ebp), %eax
+    // CHECK: popl %ebp
     // CHECK: retl
     x
 }