From 754cd2b1234cb1935ace2b1b6155cc0fdee3dbfb Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Wed, 16 Apr 2025 13:58:25 -0700 Subject: [PATCH] Fix unspecified evaluation order of 64b loads within float128 --- riscv/mmu.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/riscv/mmu.h b/riscv/mmu.h index 14b57fb5..66953835 100644 --- a/riscv/mmu.h +++ b/riscv/mmu.h @@ -214,7 +214,10 @@ public: throw trap_load_address_misaligned((proc) ? proc->state.v : false, addr, 0, 0); } - return (float128_t){load(addr), load(addr + 8)}; + float128_t res; + res.v[0] = load(addr); + res.v[1] = load(addr + 8); + return res; } void cbo_zero(reg_t addr) {