141 changed files with 167 additions and 185 deletions
@ -1 +1 @@ |
|||
RD = sext_xprlen(RS1 + RS2); |
|||
WRITE_RD(sext_xprlen(RS1 + RS2)); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = sext_xprlen(RS1 + insn.i_imm()); |
|||
WRITE_RD(sext_xprlen(RS1 + insn.i_imm())); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_xpr64; |
|||
RD = sext32(insn.i_imm() + RS1); |
|||
WRITE_RD(sext32(insn.i_imm() + RS1)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_xpr64; |
|||
RD = sext32(RS1 + RS2); |
|||
WRITE_RD(sext32(RS1 + RS2)); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
reg_t v = MMU.load_uint64(RS1); |
|||
MMU.store_uint64(RS1, RS2 + v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
reg_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, RS2 + v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
reg_t v = MMU.load_uint64(RS1); |
|||
MMU.store_uint64(RS1, RS2 & v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
reg_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, RS2 & v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
sreg_t v = MMU.load_int64(RS1); |
|||
MMU.store_uint64(RS1, std::max(sreg_t(RS2),v)); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
int32_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, std::max(int32_t(RS2),v)); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
reg_t v = MMU.load_uint64(RS1); |
|||
MMU.store_uint64(RS1, std::max(RS2,v)); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
uint32_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, std::max(uint32_t(RS2),v)); |
|||
RD = (int32_t)v; |
|||
WRITE_RD((int32_t)v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
sreg_t v = MMU.load_int64(RS1); |
|||
MMU.store_uint64(RS1, std::min(sreg_t(RS2),v)); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
int32_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, std::min(int32_t(RS2),v)); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
reg_t v = MMU.load_uint64(RS1); |
|||
MMU.store_uint64(RS1, std::min(RS2,v)); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
uint32_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, std::min(uint32_t(RS2),v)); |
|||
RD = (int32_t)v; |
|||
WRITE_RD((int32_t)v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
reg_t v = MMU.load_uint64(RS1); |
|||
MMU.store_uint64(RS1, RS2 | v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
reg_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, RS2 | v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
reg_t v = MMU.load_uint64(RS1); |
|||
MMU.store_uint64(RS1, RS2); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
reg_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, RS2); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_xpr64; |
|||
reg_t v = MMU.load_uint64(RS1); |
|||
MMU.store_uint64(RS1, RS2 ^ v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
reg_t v = MMU.load_int32(RS1); |
|||
MMU.store_uint32(RS1, RS2 ^ v); |
|||
RD = v; |
|||
WRITE_RD(v); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = RS1 & RS2; |
|||
WRITE_RD(RS1 & RS2); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = insn.i_imm() & RS1; |
|||
WRITE_RD(insn.i_imm() & RS1); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = sext_xprlen(insn.u_imm() + (pc >> 12 << 12)); |
|||
WRITE_RD(sext_xprlen(insn.u_imm() + (pc >> 12 << 12))); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_supervisor; |
|||
RD = p->set_pcr(insn.rs1(), p->get_pcr(insn.rs1()) & ~insn.i_imm()); |
|||
WRITE_RD(p->set_pcr(insn.rs1(), p->get_pcr(insn.rs1()) & ~insn.i_imm())); |
|||
|
|||
@ -1,8 +1,8 @@ |
|||
sreg_t lhs = sext_xprlen(RS1); |
|||
sreg_t rhs = sext_xprlen(RS2); |
|||
if(rhs == 0) |
|||
RD = UINT64_MAX; |
|||
WRITE_RD(UINT64_MAX); |
|||
else if(lhs == INT64_MIN && rhs == -1) |
|||
RD = lhs; |
|||
WRITE_RD(lhs); |
|||
else |
|||
RD = sext_xprlen(lhs / rhs); |
|||
WRITE_RD(sext_xprlen(lhs / rhs)); |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
reg_t lhs = zext_xprlen(RS1); |
|||
reg_t rhs = zext_xprlen(RS2); |
|||
if(rhs == 0) |
|||
RD = UINT64_MAX; |
|||
WRITE_RD(UINT64_MAX); |
|||
else |
|||
RD = sext_xprlen(lhs / rhs); |
|||
WRITE_RD(sext_xprlen(lhs / rhs)); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_mulAdd(FRS1, 0x3ff0000000000000ULL, FRS2); |
|||
WRITE_FRD(f64_mulAdd(FRS1, 0x3ff0000000000000ULL, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_mulAdd(FRS1, 0x3f800000, FRS2); |
|||
WRITE_FRD(f32_mulAdd(FRS1, 0x3f800000, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = i64_to_f64(RS1); |
|||
WRITE_FRD(i64_to_f64(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = ui64_to_f64(RS1); |
|||
WRITE_FRD(ui64_to_f64(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_to_f64(FRS1); |
|||
WRITE_FRD(f32_to_f64(FRS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = i32_to_f64((int32_t)RS1); |
|||
WRITE_FRD(i32_to_f64((int32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = ui32_to_f64((uint32_t)RS1); |
|||
WRITE_FRD(ui32_to_f64((uint32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = f64_to_i64(FRS1, RM, true); |
|||
WRITE_RD(f64_to_i64(FRS1, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = f32_to_i64(FRS1, RM, true); |
|||
WRITE_RD(f32_to_i64(FRS1, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = f64_to_ui64(FRS1, RM, true); |
|||
WRITE_RD(f64_to_ui64(FRS1, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = f32_to_ui64(FRS1, RM, true); |
|||
WRITE_RD(f32_to_ui64(FRS1, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_to_f32(FRS1); |
|||
WRITE_FRD(f64_to_f32(FRS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = i64_to_f32(RS1); |
|||
WRITE_FRD(i64_to_f32(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = ui64_to_f32(RS1); |
|||
WRITE_FRD(ui64_to_f32(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = i32_to_f32((int32_t)RS1); |
|||
WRITE_FRD(i32_to_f32((int32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = ui32_to_f32((uint32_t)RS1); |
|||
WRITE_FRD(ui32_to_f32((uint32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = sext32(f64_to_i32(FRS1, RM, true)); |
|||
WRITE_RD(sext32(f64_to_i32(FRS1, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = sext32(f32_to_i32(FRS1, RM, true)); |
|||
WRITE_RD(sext32(f32_to_i32(FRS1, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = sext32(f64_to_ui32(FRS1, RM, true)); |
|||
WRITE_RD(sext32(f64_to_ui32(FRS1, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
RD = sext32(f32_to_ui32(FRS1, RM, true)); |
|||
WRITE_RD(sext32(f32_to_ui32(FRS1, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_div(FRS1, FRS2); |
|||
WRITE_FRD(f64_div(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_div(FRS1, FRS2); |
|||
WRITE_FRD(f32_div(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_fp; |
|||
RD = f64_eq(FRS1, FRS2); |
|||
WRITE_RD(f64_eq(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_fp; |
|||
RD = f32_eq(FRS1, FRS2); |
|||
WRITE_RD(f32_eq(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = MMU.load_int64(RS1 + insn.i_imm()); |
|||
WRITE_FRD(MMU.load_int64(RS1 + insn.i_imm())); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_fp; |
|||
RD = f64_le(FRS1, FRS2); |
|||
WRITE_RD(f64_le(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_fp; |
|||
RD = f32_le(FRS1, FRS2); |
|||
WRITE_RD(f32_le(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_fp; |
|||
RD = f64_lt(FRS1, FRS2); |
|||
WRITE_RD(f64_lt(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_fp; |
|||
RD = f32_lt(FRS1, FRS2); |
|||
WRITE_RD(f32_lt(FRS1, FRS2)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = MMU.load_int32(RS1 + insn.i_imm()); |
|||
WRITE_FRD(MMU.load_int32(RS1 + insn.i_imm())); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_mulAdd(FRS1, FRS2, FRS3); |
|||
WRITE_FRD(f64_mulAdd(FRS1, FRS2, FRS3)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_mulAdd(FRS1, FRS2, FRS3); |
|||
WRITE_FRD(f32_mulAdd(FRS1, FRS2, FRS3)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
FRD = isNaNF64UI(FRS2) || f64_le_quiet(FRS2,FRS1) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2; |
|||
WRITE_FRD(isNaNF64UI(FRS2) || f64_le_quiet(FRS2,FRS1) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
FRD = isNaNF32UI(FRS2) || f32_le_quiet(FRS2,FRS1) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2; |
|||
WRITE_FRD(isNaNF32UI(FRS2) || f32_le_quiet(FRS2,FRS1) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
FRD = isNaNF64UI(FRS2) || f64_lt_quiet(FRS1,FRS2) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2; |
|||
WRITE_FRD(isNaNF64UI(FRS2) || f64_lt_quiet(FRS1,FRS2) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
FRD = isNaNF32UI(FRS2) || f32_lt_quiet(FRS1,FRS2) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2; |
|||
WRITE_FRD(isNaNF32UI(FRS2) || f32_lt_quiet(FRS1,FRS2) /* && FRS1 not NaN */ |
|||
? FRS1 : FRS2); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_mulAdd(FRS1, FRS2, FRS3 ^ (uint64_t)INT64_MIN); |
|||
WRITE_FRD(f64_mulAdd(FRS1, FRS2, FRS3 ^ (uint64_t)INT64_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_mulAdd(FRS1, FRS2, FRS3 ^ (uint32_t)INT32_MIN); |
|||
WRITE_FRD(f32_mulAdd(FRS1, FRS2, FRS3 ^ (uint32_t)INT32_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_mulAdd(FRS1, FRS2, (FRS1 ^ FRS2) & (uint64_t)INT64_MIN); |
|||
WRITE_FRD(f64_mulAdd(FRS1, FRS2, (FRS1 ^ FRS2) & (uint64_t)INT64_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_mulAdd(FRS1, FRS2, (FRS1 ^ FRS2) & (uint32_t)INT32_MIN); |
|||
WRITE_FRD(f32_mulAdd(FRS1, FRS2, (FRS1 ^ FRS2) & (uint32_t)INT32_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
FRD = RS1; |
|||
WRITE_FRD(RS1); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = RS1; |
|||
WRITE_FRD(RS1); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_xpr64; |
|||
require_fp; |
|||
RD = FRS1; |
|||
WRITE_RD(FRS1); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
RD = sext32(FRS1); |
|||
WRITE_RD(sext32(FRS1)); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_mulAdd(FRS1 ^ (uint64_t)INT64_MIN, FRS2, FRS3 ^ (uint64_t)INT64_MIN); |
|||
WRITE_FRD(f64_mulAdd(FRS1 ^ (uint64_t)INT64_MIN, FRS2, FRS3 ^ (uint64_t)INT64_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_mulAdd(FRS1 ^ (uint32_t)INT32_MIN, FRS2, FRS3 ^ (uint32_t)INT32_MIN); |
|||
WRITE_FRD(f32_mulAdd(FRS1 ^ (uint32_t)INT32_MIN, FRS2, FRS3 ^ (uint32_t)INT32_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_mulAdd(FRS1 ^ (uint64_t)INT64_MIN, FRS2, FRS3); |
|||
WRITE_FRD(f64_mulAdd(FRS1 ^ (uint64_t)INT64_MIN, FRS2, FRS3)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_mulAdd(FRS1 ^ (uint32_t)INT32_MIN, FRS2, FRS3); |
|||
WRITE_FRD(f32_mulAdd(FRS1 ^ (uint32_t)INT32_MIN, FRS2, FRS3)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
RD = p->get_fsr(); |
|||
WRITE_RD(p->get_fsr()); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = (FRS1 &~ INT64_MIN) | (FRS2 & INT64_MIN); |
|||
WRITE_FRD((FRS1 &~ INT64_MIN) | (FRS2 & INT64_MIN)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = (FRS1 &~ (uint32_t)INT32_MIN) | (FRS2 & (uint32_t)INT32_MIN); |
|||
WRITE_FRD((FRS1 &~ (uint32_t)INT32_MIN) | (FRS2 & (uint32_t)INT32_MIN)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = (FRS1 &~ INT64_MIN) | ((~FRS2) & INT64_MIN); |
|||
WRITE_FRD((FRS1 &~ INT64_MIN) | ((~FRS2) & INT64_MIN)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = (FRS1 &~ (uint32_t)INT32_MIN) | ((~FRS2) & (uint32_t)INT32_MIN); |
|||
WRITE_FRD((FRS1 &~ (uint32_t)INT32_MIN) | ((~FRS2) & (uint32_t)INT32_MIN)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = FRS1 ^ (FRS2 & INT64_MIN); |
|||
WRITE_FRD(FRS1 ^ (FRS2 & INT64_MIN)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
FRD = FRS1 ^ (FRS2 & (uint32_t)INT32_MIN); |
|||
WRITE_FRD(FRS1 ^ (FRS2 & (uint32_t)INT32_MIN)); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_sqrt(FRS1); |
|||
WRITE_FRD(f64_sqrt(FRS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_sqrt(FRS1); |
|||
WRITE_FRD(f32_sqrt(FRS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_fp; |
|||
RD = p->set_fsr(RS1); |
|||
WRITE_RD(p->set_fsr(RS1)); |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f64_mulAdd(FRS1, 0x3ff0000000000000ULL, FRS2 ^ (uint64_t)INT64_MIN); |
|||
WRITE_FRD(f64_mulAdd(FRS1, 0x3ff0000000000000ULL, FRS2 ^ (uint64_t)INT64_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
FRD = f32_mulAdd(FRS1, 0x3f800000, FRS2 ^ (uint32_t)INT32_MIN); |
|||
WRITE_FRD(f32_mulAdd(FRS1, 0x3f800000, FRS2 ^ (uint32_t)INT32_MIN)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
RD = npc; |
|||
WRITE_RD(npc); |
|||
set_pc(JUMP_TARGET); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
reg_t temp = RS1; |
|||
RD = npc; |
|||
WRITE_RD(npc); |
|||
set_pc((temp + insn.i_imm()) & ~1); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = MMU.load_int8(RS1 + insn.i_imm()); |
|||
WRITE_RD(MMU.load_int8(RS1 + insn.i_imm())); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = MMU.load_uint8(RS1 + insn.i_imm()); |
|||
WRITE_RD(MMU.load_uint8(RS1 + insn.i_imm())); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
require_xpr64; |
|||
RD = MMU.load_int64(RS1 + insn.i_imm()); |
|||
WRITE_RD(MMU.load_int64(RS1 + insn.i_imm())); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = MMU.load_int16(RS1 + insn.i_imm()); |
|||
WRITE_RD(MMU.load_int16(RS1 + insn.i_imm())); |
|||
|
|||
@ -1 +1 @@ |
|||
RD = MMU.load_uint16(RS1 + insn.i_imm()); |
|||
WRITE_RD(MMU.load_uint16(RS1 + insn.i_imm())); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_xpr64; |
|||
p->get_state()->load_reservation = RS1; |
|||
RD = MMU.load_int64(RS1); |
|||
WRITE_RD(MMU.load_int64(RS1)); |
|||
|
|||
@ -1,2 +1,2 @@ |
|||
p->get_state()->load_reservation = RS1; |
|||
RD = MMU.load_int32(RS1); |
|||
WRITE_RD(MMU.load_int32(RS1)); |
|||
|
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue