Fixed x86 asm

soft-float
Erin 2024-02-03 20:08:09 +01:00
parent 6e464be33d
commit 30ee6c84fc
1 changed files with 3 additions and 3 deletions

View File

@ -32,9 +32,9 @@ macro_rules! fnsdef {
unsafe { unsafe {
let mut mxcsr = 0_u32; let mut mxcsr = 0_u32;
'a: { 'a: {
asm!("stmxcsr {}", in(reg) &mut mxcsr); asm!("stmxcsr [{}]", in(reg) &mut mxcsr);
asm!( asm!(
"ldmxcsr {}", "ldmxcsr [{}]",
in(reg) &(mxcsr & !arin::_MM_ROUND_MASK | match mode { in(reg) &(mxcsr & !arin::_MM_ROUND_MASK | match mode {
RoundingMode::NearestEven => break 'a, RoundingMode::NearestEven => break 'a,
RoundingMode::Truncate => arin::_MM_ROUND_TOWARD_ZERO, RoundingMode::Truncate => arin::_MM_ROUND_TOWARD_ZERO,
@ -47,7 +47,7 @@ macro_rules! fnsdef {
op!($ins, val, result => $to); op!($ins, val, result => $to);
// Set MXCSR to original value // Set MXCSR to original value
asm!("ldmxcsr {}", in(reg) &mxcsr); asm!("ldmxcsr [{}]", in(reg) &mxcsr);
} }
result result
} }