Browse Source
The previous routines always stored the low-order bits into the low-order doubleword, which is only correct on little-endian targets.pull/2176/head
3 changed files with 5 additions and 24 deletions
@ -1,3 +1,5 @@ |
|||
require_extension('Q'); |
|||
require_fp; |
|||
WRITE_FRD(MMU.load_float128(RS1 + insn.i_imm())); |
|||
uint128_t v = MMU.load<uint128_t>(RS1 + insn.i_imm()); |
|||
float128_t f = { uint64_t(v), uint64_t(v >> 64) }; |
|||
WRITE_FRD(f); |
|||
|
|||
@ -1,3 +1,4 @@ |
|||
require_extension('Q'); |
|||
require_fp; |
|||
MMU.store_float128(RS1 + insn.s_imm(), FRS2); |
|||
uint128_t v = FRS2.v[0] | (uint128_t(FRS2.v[1]) << 64); |
|||
MMU.store<uint128_t>(RS1 + insn.s_imm(), v); |
|||
|
|||
Loading…
Reference in new issue