File tree Expand file tree Collapse file tree 3 files changed +5
-24
lines changed
Expand file tree Collapse file tree 3 files changed +5
-24
lines changed Original file line number Diff line number Diff line change 11require_extension ('Q' );
22require_fp ;
3- WRITE_FRD (MMU .load_float128 (RS1 + insn .i_imm ()));
3+ uint128_t v = MMU .load < uint128_t > (RS1 + insn .i_imm ());
4+ float128_t f = { uint64_t (v ), uint64_t (v >> 64 ) };
5+ WRITE_FRD (f );
Original file line number Diff line number Diff line change 11require_extension ('Q' );
22require_fp ;
3- MMU .store_float128 (RS1 + insn .s_imm (), FRS2 );
3+ uint128_t v = FRS2 .v [0 ] | (uint128_t (FRS2 .v [1 ]) << 64 );
4+ MMU .store < uint128_t > (RS1 + insn .s_imm (), v ) ;
Original file line number Diff line number Diff line change @@ -211,28 +211,6 @@ class mmu_t
211211 })
212212 }
213213
214- void store_float128 (reg_t addr, float128_t val)
215- {
216- if (unlikely (addr & (sizeof (float128_t )-1 )) && !is_misaligned_enabled ()) {
217- throw trap_store_address_misaligned ((proc) ? proc->state .v : false , addr, 0 , 0 );
218- }
219-
220- store<uint64_t >(addr, val.v [0 ]);
221- store<uint64_t >(addr + 8 , val.v [1 ]);
222- }
223-
224- float128_t load_float128 (reg_t addr)
225- {
226- if (unlikely (addr & (sizeof (float128_t )-1 )) && !is_misaligned_enabled ()) {
227- throw trap_load_address_misaligned ((proc) ? proc->state .v : false , addr, 0 , 0 );
228- }
229-
230- float128_t res;
231- res.v [0 ] = load<uint64_t >(addr);
232- res.v [1 ] = load<uint64_t >(addr + 8 );
233- return res;
234- }
235-
236214 void cbo_zero (reg_t addr) {
237215 auto access_info = generate_access_info (addr, STORE, {});
238216 reg_t transformed_addr = access_info.transformed_vaddr ;
You can’t perform that action at this time.
0 commit comments