From 958c432088fe8b7b9fed43b619157154e8d1a825 Mon Sep 17 00:00:00 2001 From: Laurence Tratt Date: Fri, 10 Jan 2025 21:06:41 +0000 Subject: [PATCH] The 16 byte case here can't possibly be correct in general. I'm not sure why we ever ended up with this: I don't see anything that triggers it. If there is something that relies on it, it surely only works by accident, and we're better hitting the `todo` and then fixing this properly. --- ykrt/src/compile/jitc_yk/codegen/x64/deopt.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ykrt/src/compile/jitc_yk/codegen/x64/deopt.rs b/ykrt/src/compile/jitc_yk/codegen/x64/deopt.rs index 592d4beea..34a266759 100644 --- a/ykrt/src/compile/jitc_yk/codegen/x64/deopt.rs +++ b/ykrt/src/compile/jitc_yk/codegen/x64/deopt.rs @@ -268,7 +268,7 @@ pub(crate) extern "C" fn __yk_deopt( }; match size { // FIXME: Check that 16-byte writes are for float registers only. - 16 | 8 => unsafe { ptr::write::(temp as *mut u64, jitval) }, + 8 => unsafe { ptr::write::(temp as *mut u64, jitval) }, 4 => unsafe { ptr::write::(temp as *mut u32, jitval as u32) }, 2 => unsafe { ptr::write::(temp as *mut u16, jitval as u16) }, _ => todo!("{}", size),