|
bool | getFaultVAddr (Fault fault, Addr &va) |
| Returns true if the fault passed as a first argument was triggered by a memory access, false otherwise.
|
|
static SyscallReturn | issetugidFunc (SyscallDesc *desc, ThreadContext *tc) |
|
static SyscallReturn | sysctlFunc (SyscallDesc *desc, ThreadContext *tc, VPtr<> namep, size_t nameLen, VPtr<> oldp, VPtr<> oldlenp, VPtr<> newp, size_t newlen) |
|
static uint16_t | lsl16 (uint16_t x, uint32_t shift) |
|
static uint16_t | lsr16 (uint16_t x, uint32_t shift) |
|
static uint32_t | lsl32 (uint32_t x, uint32_t shift) |
|
static uint32_t | lsr32 (uint32_t x, uint32_t shift) |
|
static uint64_t | lsl64 (uint64_t x, uint32_t shift) |
|
static uint64_t | lsr64 (uint64_t x, uint32_t shift) |
|
static void | lsl128 (uint64_t *r0, uint64_t *r1, uint64_t x0, uint64_t x1, uint32_t shift) |
|
static void | lsr128 (uint64_t *r0, uint64_t *r1, uint64_t x0, uint64_t x1, uint32_t shift) |
|
static void | mul62x62 (uint64_t *x0, uint64_t *x1, uint64_t a, uint64_t b) |
|
static void | mul64x32 (uint64_t *x0, uint64_t *x1, uint64_t a, uint32_t b) |
|
static void | add128 (uint64_t *x0, uint64_t *x1, uint64_t a0, uint64_t a1, uint64_t b0, uint64_t b1) |
|
static void | sub128 (uint64_t *x0, uint64_t *x1, uint64_t a0, uint64_t a1, uint64_t b0, uint64_t b1) |
|
static int | cmp128 (uint64_t a0, uint64_t a1, uint64_t b0, uint64_t b1) |
|
static uint16_t | fp16_normalise (uint16_t mnt, int *exp) |
|
static uint32_t | fp32_normalise (uint32_t mnt, int *exp) |
|
static uint64_t | fp64_normalise (uint64_t mnt, int *exp) |
|
static void | fp128_normalise (uint64_t *mnt0, uint64_t *mnt1, int *exp) |
|
static uint16_t | fp16_pack (uint16_t sgn, uint16_t exp, uint16_t mnt) |
|
static uint32_t | fp32_pack (uint32_t sgn, uint32_t exp, uint32_t mnt) |
|
static uint64_t | fp64_pack (uint64_t sgn, uint64_t exp, uint64_t mnt) |
|
static uint16_t | fp16_zero (int sgn) |
|
static uint32_t | fp32_zero (int sgn) |
|
static uint64_t | fp64_zero (int sgn) |
|
static uint16_t | fp16_max_normal (int sgn) |
|
static uint32_t | fp32_max_normal (int sgn) |
|
static uint64_t | fp64_max_normal (int sgn) |
|
static uint16_t | fp16_infinity (int sgn) |
|
static uint32_t | fp32_infinity (int sgn) |
|
static uint64_t | fp64_infinity (int sgn) |
|
static uint16_t | fp16_defaultNaN () |
|
static uint32_t | fp32_defaultNaN () |
|
static uint64_t | fp64_defaultNaN () |
|
static void | fp16_unpack (int *sgn, int *exp, uint16_t *mnt, uint16_t x, int mode, int *flags) |
|
static void | fp32_unpack (int *sgn, int *exp, uint32_t *mnt, uint32_t x, int mode, int *flags) |
|
static void | fp64_unpack (int *sgn, int *exp, uint64_t *mnt, uint64_t x, int mode, int *flags) |
|
static int | fp16_is_NaN (int exp, uint16_t mnt) |
|
static int | fp32_is_NaN (int exp, uint32_t mnt) |
|
static int | fp64_is_NaN (int exp, uint64_t mnt) |
|
static int | fp16_is_signalling_NaN (int exp, uint16_t mnt) |
|
static int | fp32_is_signalling_NaN (int exp, uint32_t mnt) |
|
static int | fp64_is_signalling_NaN (int exp, uint64_t mnt) |
|
static int | fp16_is_quiet_NaN (int exp, uint16_t mnt) |
|
static int | fp32_is_quiet_NaN (int exp, uint32_t mnt) |
|
static int | fp64_is_quiet_NaN (int exp, uint64_t mnt) |
|
static int | fp16_is_infinity (int exp, uint16_t mnt) |
|
static int | fp32_is_infinity (int exp, uint32_t mnt) |
|
static int | fp64_is_infinity (int exp, uint64_t mnt) |
|
static uint16_t | fp16_process_NaN (uint16_t a, int mode, int *flags) |
|
static uint32_t | fp32_process_NaN (uint32_t a, int mode, int *flags) |
|
static uint64_t | fp64_process_NaN (uint64_t a, int mode, int *flags) |
|
static uint16_t | fp16_process_NaNs (uint16_t a, uint16_t b, int mode, int *flags) |
|
static uint32_t | fp32_process_NaNs (uint32_t a, uint32_t b, int mode, int *flags) |
|
static uint64_t | fp64_process_NaNs (uint64_t a, uint64_t b, int mode, int *flags) |
|
static uint16_t | fp16_process_NaNs3 (uint16_t a, uint16_t b, uint16_t c, int mode, int *flags) |
|
static uint32_t | fp32_process_NaNs3 (uint32_t a, uint32_t b, uint32_t c, int mode, int *flags) |
|
static uint64_t | fp64_process_NaNs3 (uint64_t a, uint64_t b, uint64_t c, int mode, int *flags) |
|
static uint16_t | fp16_round_ (int sgn, int exp, uint16_t mnt, int rm, int mode, int *flags) |
|
static uint16_t | fp16_round (int sgn, int exp, uint16_t mnt, int mode, int *flags) |
|
static uint32_t | fp32_round_ (int sgn, int exp, uint32_t mnt, int rm, int mode, int *flags) |
|
static uint32_t | fp32_round (int sgn, int exp, uint32_t mnt, int mode, int *flags) |
|
static uint64_t | fp64_round_ (int sgn, int exp, uint64_t mnt, int rm, int mode, int *flags) |
|
static uint64_t | fp64_round (int sgn, int exp, uint64_t mnt, int mode, int *flags) |
|
static int | fp16_compare_eq (uint16_t a, uint16_t b, int mode, int *flags) |
|
static int | fp16_compare_ge (uint16_t a, uint16_t b, int mode, int *flags) |
|
static int | fp16_compare_gt (uint16_t a, uint16_t b, int mode, int *flags) |
|
static int | fp16_compare_un (uint16_t a, uint16_t b, int mode, int *flags) |
|
static int | fp32_compare_eq (uint32_t a, uint32_t b, int mode, int *flags) |
|
static int | fp32_compare_ge (uint32_t a, uint32_t b, int mode, int *flags) |
|
static int | fp32_compare_gt (uint32_t a, uint32_t b, int mode, int *flags) |
|
static int | fp32_compare_un (uint32_t a, uint32_t b, int mode, int *flags) |
|
static int | fp64_compare_eq (uint64_t a, uint64_t b, int mode, int *flags) |
|
static int | fp64_compare_ge (uint64_t a, uint64_t b, int mode, int *flags) |
|
static int | fp64_compare_gt (uint64_t a, uint64_t b, int mode, int *flags) |
|
static int | fp64_compare_un (uint64_t a, uint64_t b, int mode, int *flags) |
|
static uint16_t | fp16_add (uint16_t a, uint16_t b, int neg, int mode, int *flags) |
|
static uint32_t | fp32_add (uint32_t a, uint32_t b, int neg, int mode, int *flags) |
|
static uint64_t | fp64_add (uint64_t a, uint64_t b, int neg, int mode, int *flags) |
|
static uint16_t | fp16_mul (uint16_t a, uint16_t b, int mode, int *flags) |
|
static uint32_t | fp32_mul (uint32_t a, uint32_t b, int mode, int *flags) |
|
static uint64_t | fp64_mul (uint64_t a, uint64_t b, int mode, int *flags) |
|
static uint16_t | fp16_muladd (uint16_t a, uint16_t b, uint16_t c, int scale, int mode, int *flags) |
|
static uint32_t | fp32_muladd (uint32_t a, uint32_t b, uint32_t c, int scale, int mode, int *flags) |
|
static uint64_t | fp64_muladd (uint64_t a, uint64_t b, uint64_t c, int scale, int mode, int *flags) |
|
static uint16_t | fp16_div (uint16_t a, uint16_t b, int mode, int *flags) |
|
static uint32_t | fp32_div (uint32_t a, uint32_t b, int mode, int *flags) |
|
static uint64_t | fp64_div (uint64_t a, uint64_t b, int mode, int *flags) |
|
static void | set_fpscr0 (FPSCR &fpscr, int flags) |
|
static uint16_t | fp16_scale (uint16_t a, int16_t b, int mode, int *flags) |
|
static uint32_t | fp32_scale (uint32_t a, int32_t b, int mode, int *flags) |
|
static uint64_t | fp64_scale (uint64_t a, int64_t b, int mode, int *flags) |
|
static uint16_t | fp16_sqrt (uint16_t a, int mode, int *flags) |
|
static uint32_t | fp32_sqrt (uint32_t a, int mode, int *flags) |
|
static uint64_t | fp64_sqrt (uint64_t a, int mode, int *flags) |
|
static int | modeConv (FPSCR fpscr) |
|
static void | set_fpscr (FPSCR &fpscr, int flags) |
|
template<> |
bool | fplibCompareEQ (uint16_t a, uint16_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGE (uint16_t a, uint16_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGT (uint16_t a, uint16_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareUN (uint16_t a, uint16_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareEQ (uint32_t a, uint32_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGE (uint32_t a, uint32_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGT (uint32_t a, uint32_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareUN (uint32_t a, uint32_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareEQ (uint64_t a, uint64_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGE (uint64_t a, uint64_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGT (uint64_t a, uint64_t b, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareUN (uint64_t a, uint64_t b, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibAbs (uint16_t op) |
|
template<> |
uint32_t | fplibAbs (uint32_t op) |
|
template<> |
uint64_t | fplibAbs (uint64_t op) |
|
template<> |
uint16_t | fplibAdd (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibAdd (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibAdd (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
int | fplibCompare (uint16_t op1, uint16_t op2, bool signal_nans, FPSCR &fpscr) |
|
template<> |
int | fplibCompare (uint32_t op1, uint32_t op2, bool signal_nans, FPSCR &fpscr) |
|
template<> |
int | fplibCompare (uint64_t op1, uint64_t op2, bool signal_nans, FPSCR &fpscr) |
|
static uint16_t | fp16_FPConvertNaN_32 (uint32_t op) |
|
static uint16_t | fp16_FPConvertNaN_64 (uint64_t op) |
|
static uint32_t | fp32_FPConvertNaN_16 (uint16_t op) |
|
static uint32_t | fp32_FPConvertNaN_64 (uint64_t op) |
|
static uint64_t | fp64_FPConvertNaN_16 (uint16_t op) |
|
static uint64_t | fp64_FPConvertNaN_32 (uint32_t op) |
|
static uint16_t | fp16_FPOnePointFive (int sgn) |
|
static uint32_t | fp32_FPOnePointFive (int sgn) |
|
static uint64_t | fp64_FPOnePointFive (int sgn) |
|
static uint16_t | fp16_FPThree (int sgn) |
|
static uint32_t | fp32_FPThree (int sgn) |
|
static uint64_t | fp64_FPThree (int sgn) |
|
static uint16_t | fp16_FPTwo (int sgn) |
|
static uint32_t | fp32_FPTwo (int sgn) |
|
static uint64_t | fp64_FPTwo (int sgn) |
|
template<> |
uint16_t | fplibConvert (uint32_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibConvert (uint32_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMulAdd (uint16_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMulAdd (uint32_t addend, uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMulAdd (uint64_t addend, uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibDiv (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibDiv (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibDiv (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibExpA (uint16_t op) |
|
template<> |
uint32_t | fplibExpA (uint32_t op) |
|
template<> |
uint64_t | fplibExpA (uint64_t op) |
|
static uint16_t | fp16_repack (int sgn, int exp, uint16_t mnt) |
|
static uint32_t | fp32_repack (int sgn, int exp, uint32_t mnt) |
|
static uint64_t | fp64_repack (int sgn, int exp, uint64_t mnt) |
|
static void | fp16_minmaxnum (uint16_t *op1, uint16_t *op2, int sgn) |
|
static void | fp32_minmaxnum (uint32_t *op1, uint32_t *op2, int sgn) |
|
static void | fp64_minmaxnum (uint64_t *op1, uint64_t *op2, int sgn) |
|
template<> |
uint16_t | fplibMax (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMax (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMax (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMaxNum (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMaxNum (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMaxNum (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMin (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMin (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMin (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMinNum (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMinNum (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMinNum (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMul (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMul (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMul (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMulX (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMulX (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMulX (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibNeg (uint16_t op) |
|
template<> |
uint32_t | fplibNeg (uint32_t op) |
|
template<> |
uint64_t | fplibNeg (uint64_t op) |
|
template<> |
uint16_t | fplibRSqrtEstimate (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRSqrtEstimate (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRSqrtEstimate (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRSqrtStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRSqrtStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRSqrtStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRecipEstimate (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRecipEstimate (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRecipEstimate (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRecipStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRecipStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRecipStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRecpX (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRecpX (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRecpX (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRoundInt (uint16_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRoundInt (uint32_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRoundInt (uint64_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibScale (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibScale (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibScale (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibSqrt (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibSqrt (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibSqrt (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibSub (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibSub (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibSub (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibTrigMulAdd (uint8_t coeff_index, uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibTrigMulAdd (uint8_t coeff_index, uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibTrigMulAdd (uint8_t coeff_index, uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibTrigSMul (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibTrigSMul (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibTrigSMul (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibTrigSSel (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibTrigSSel (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibTrigSSel (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
static uint64_t | FPToFixed_64 (int sgn, int exp, uint64_t mnt, bool u, FPRounding rounding, int *flags) |
|
static uint32_t | FPToFixed_32 (int sgn, int exp, uint64_t mnt, bool u, FPRounding rounding, int *flags) |
|
static uint16_t | FPToFixed_16 (int sgn, int exp, uint64_t mnt, bool u, FPRounding rounding, int *flags) |
|
template<> |
uint16_t | fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
uint32_t | fplibFPToFixedJS (uint64_t op, FPSCR &fpscr, bool Is64, uint8_t &nz) |
| Floating-point JS convert to a signed integer, with rounding to zero.
|
|
template<> |
uint64_t | fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
static uint16_t | fp16_cvtf (uint64_t a, int fbits, int u, int mode, int *flags) |
|
static uint32_t | fp32_cvtf (uint64_t a, int fbits, int u, int mode, int *flags) |
|
static uint64_t | fp64_cvtf (uint64_t a, int fbits, int u, int mode, int *flags) |
|
template<> |
uint16_t | fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibInfinity (int sgn) |
|
template<> |
uint32_t | fplibInfinity (int sgn) |
|
template<> |
uint64_t | fplibInfinity (int sgn) |
|
template<> |
uint16_t | fplibDefaultNaN () |
|
template<> |
uint32_t | fplibDefaultNaN () |
|
template<> |
uint64_t | fplibDefaultNaN () |
|
static FPRounding | FPCRRounding (FPSCR &fpscr) |
|
template<class T > |
T | fplibAbs (T op) |
| Floating-point absolute value.
|
|
template<class T > |
T | fplibAdd (T op1, T op2, FPSCR &fpscr) |
| Floating-point add.
|
|
template<class T > |
int | fplibCompare (T op1, T op2, bool signal_nans, FPSCR &fpscr) |
| Floating-point compare (quiet and signaling).
|
|
template<class T > |
bool | fplibCompareEQ (T op1, T op2, FPSCR &fpscr) |
| Floating-point compare equal.
|
|
template<class T > |
bool | fplibCompareGE (T op1, T op2, FPSCR &fpscr) |
| Floating-point compare greater than or equal.
|
|
template<class T > |
bool | fplibCompareGT (T op1, T op2, FPSCR &fpscr) |
| Floating-point compare greater than.
|
|
template<class T > |
bool | fplibCompareUN (T op1, T op2, FPSCR &fpscr) |
| Floating-point compare unordered.
|
|
template<class T1 , class T2 > |
T2 | fplibConvert (T1 op, FPRounding rounding, FPSCR &fpscr) |
| Floating-point convert precision.
|
|
template<class T > |
T | fplibDiv (T op1, T op2, FPSCR &fpscr) |
| Floating-point division.
|
|
template<class T > |
T | fplibExpA (T op) |
| Floating-point exponential accelerator.
|
|
template<class T > |
T | fplibMax (T op1, T op2, FPSCR &fpscr) |
| Floating-point maximum.
|
|
template<class T > |
T | fplibMaxNum (T op1, T op2, FPSCR &fpscr) |
| Floating-point maximum number.
|
|
template<class T > |
T | fplibMin (T op1, T op2, FPSCR &fpscr) |
| Floating-point minimum.
|
|
template<class T > |
T | fplibMinNum (T op1, T op2, FPSCR &fpscr) |
| Floating-point minimum number.
|
|
template<class T > |
T | fplibMul (T op1, T op2, FPSCR &fpscr) |
| Floating-point multiply.
|
|
template<class T > |
T | fplibMulAdd (T addend, T op1, T op2, FPSCR &fpscr) |
| Floating-point multiply-add.
|
|
template<class T > |
T | fplibMulX (T op1, T op2, FPSCR &fpscr) |
| Floating-point multiply extended.
|
|
template<class T > |
T | fplibNeg (T op) |
| Floating-point negate.
|
|
template<class T > |
T | fplibRSqrtEstimate (T op, FPSCR &fpscr) |
| Floating-point reciprocal square root estimate.
|
|
template<class T > |
T | fplibRSqrtStepFused (T op1, T op2, FPSCR &fpscr) |
| Floating-point reciprocal square root step.
|
|
template<class T > |
T | fplibRecipEstimate (T op, FPSCR &fpscr) |
| Floating-point reciprocal estimate.
|
|
template<class T > |
T | fplibRecipStepFused (T op1, T op2, FPSCR &fpscr) |
| Floating-point reciprocal step.
|
|
template<class T > |
T | fplibRecpX (T op, FPSCR &fpscr) |
| Floating-point reciprocal exponent.
|
|
template<class T > |
T | fplibRoundInt (T op, FPRounding rounding, bool exact, FPSCR &fpscr) |
| Floating-point convert to integer.
|
|
template<class T > |
T | fplibScale (T op1, T op2, FPSCR &fpscr) |
| Floating-point adjust exponent.
|
|
template<class T > |
T | fplibSqrt (T op, FPSCR &fpscr) |
| Floating-point square root.
|
|
template<class T > |
T | fplibSub (T op1, T op2, FPSCR &fpscr) |
| Floating-point subtract.
|
|
template<class T > |
T | fplibTrigMulAdd (uint8_t coeff_index, T op1, T op2, FPSCR &fpscr) |
| Floating-point trigonometric multiply-add coefficient.
|
|
template<class T > |
T | fplibTrigSMul (T op1, T op2, FPSCR &fpscr) |
| Floating-point trigonometric starting value.
|
|
template<class T > |
T | fplibTrigSSel (T op1, T op2, FPSCR &fpscr) |
| Floating-point trigonometric select coefficient.
|
|
template<class T1 , class T2 > |
T2 | fplibFPToFixed (T1 op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
| Floating-point convert to fixed-point.
|
|
template<class T > |
T | fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
| Floating-point convert from fixed-point.
|
|
template<class T > |
T | fplibInfinity (int sgn) |
| Floating-point value for +/- infinity.
|
|
template<class T > |
T | fplibDefaultNaN () |
| Foating-point value for default NaN.
|
|
template<> |
uint16_t | fplibAbs (uint16_t op) |
|
template<> |
uint32_t | fplibAbs (uint32_t op) |
|
template<> |
uint64_t | fplibAbs (uint64_t op) |
|
template<> |
uint16_t | fplibAdd (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibAdd (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibAdd (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
int | fplibCompare (uint16_t op1, uint16_t op2, bool signal_nans, FPSCR &fpscr) |
|
template<> |
int | fplibCompare (uint32_t op1, uint32_t op2, bool signal_nans, FPSCR &fpscr) |
|
template<> |
int | fplibCompare (uint64_t op1, uint64_t op2, bool signal_nans, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareEQ (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareEQ (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareEQ (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGE (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGE (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGE (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGT (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGT (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareGT (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareUN (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareUN (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
bool | fplibCompareUN (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibConvert (uint32_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibConvert (uint64_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibConvert (uint16_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibConvert (uint32_t op, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibDiv (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibDiv (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibDiv (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibExpA (uint16_t op) |
|
template<> |
uint32_t | fplibExpA (uint32_t op) |
|
template<> |
uint64_t | fplibExpA (uint64_t op) |
|
template<> |
uint16_t | fplibMax (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMax (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMax (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMaxNum (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMaxNum (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMaxNum (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMin (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMin (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMin (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMinNum (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMinNum (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMinNum (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMul (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMul (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMul (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMulAdd (uint16_t addend, uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMulAdd (uint32_t addend, uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMulAdd (uint64_t addend, uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibMulX (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibMulX (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibMulX (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibNeg (uint16_t op) |
|
template<> |
uint32_t | fplibNeg (uint32_t op) |
|
template<> |
uint64_t | fplibNeg (uint64_t op) |
|
template<> |
uint16_t | fplibRSqrtEstimate (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRSqrtEstimate (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRSqrtEstimate (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRSqrtStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRSqrtStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRSqrtStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRecipEstimate (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRecipEstimate (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRecipEstimate (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRecipStepFused (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRecipStepFused (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRecipStepFused (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRecpX (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRecpX (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRecpX (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibRoundInt (uint16_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibRoundInt (uint32_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibRoundInt (uint64_t op, FPRounding rounding, bool exact, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibScale (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibScale (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibScale (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibSqrt (uint16_t op, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibSqrt (uint32_t op, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibSqrt (uint64_t op, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibSub (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibSub (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibSub (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibTrigMulAdd (uint8_t coeff_index, uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibTrigMulAdd (uint8_t coeff_index, uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibTrigMulAdd (uint8_t coeff_index, uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibTrigSMul (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibTrigSMul (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibTrigSMul (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibTrigSSel (uint16_t op1, uint16_t op2, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibTrigSSel (uint32_t op1, uint32_t op2, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibTrigSSel (uint64_t op1, uint64_t op2, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibFPToFixed (uint16_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibFPToFixed (uint32_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibFPToFixed (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint32_t | fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint64_t | fplibFixedToFP (uint64_t op, int fbits, bool u, FPRounding rounding, FPSCR &fpscr) |
|
template<> |
uint16_t | fplibInfinity (int sgn) |
|
template<> |
uint32_t | fplibInfinity (int sgn) |
|
template<> |
uint64_t | fplibInfinity (int sgn) |
|
template<> |
uint16_t | fplibDefaultNaN () |
|
template<> |
uint32_t | fplibDefaultNaN () |
|
template<> |
uint64_t | fplibDefaultNaN () |
|
static unsigned int | number_of_ones (int32_t val) |
|
void | writeVecElem (VReg *dest, XReg src, int index, int eSize) |
| Write a single NEON vector element leaving the others untouched.
|
|
XReg | readVecElem (VReg src, int index, int eSize) |
| Read a single NEON vector element.
|
|
static uint32_t | rotate_imm (uint32_t immValue, uint32_t rotateValue) |
|
static uint32_t | modified_imm (uint8_t ctrlImm, uint8_t dataImm) |
|
static uint64_t | simd_modified_imm (bool op, uint8_t cmode, uint8_t data, bool &immValid, bool isAarch64=false) |
|
static uint64_t | vfp_modified_imm (uint8_t data, FpDataType dtype) |
|
static FpDataType | decode_fp_data_type (uint8_t encoding) |
|
static uint8_t | getRestoredITBits (ThreadContext *tc, CPSR spsr) |
|
static bool | illegalExceptionReturn (ThreadContext *tc, CPSR cpsr, CPSR spsr) |
|
const char * | svePredTypeToStr (SvePredType pt) |
| Returns the specifier for the predication type pt as a string.
|
|
std::string | sveDisasmPredCountImm (uint8_t imm) |
| Returns the symbolic name associated with pattern imm for PTRUE(S) instructions.
|
|
unsigned int | sveDecodePredCount (uint8_t imm, unsigned int num_elems) |
| Returns the actual number of elements active for PTRUE(S) instructions.
|
|
uint64_t | sveExpandFpImmAddSub (uint8_t imm, uint8_t size) |
| Expand 1-bit floating-point immediate to 0.5 or 1.0 (FADD, FSUB, FSUBR).
|
|
uint64_t | sveExpandFpImmMaxMin (uint8_t imm, uint8_t size) |
| Expand 1-bit floating-point immediate to 0.0 or 1.0 (FMAX, FMAXNM, FMIN, FMINNM).
|
|
uint64_t | sveExpandFpImmMul (uint8_t imm, uint8_t size) |
| Expand 1-bit floating-point immediate to 0.5 or 2.0 (FMUL).
|
|
VfpSavedState | prepFpState (uint32_t rMode) |
|
void | finishVfp (FPSCR &fpscr, VfpSavedState state, bool flush, FPSCR mask) |
|
template<class fpType > |
fpType | fixDest (bool flush, bool defaultNan, fpType val, fpType op1) |
|
template float | fixDest< float > (bool flush, bool defaultNan, float val, float op1) |
|
template double | fixDest< double > (bool flush, bool defaultNan, double val, double op1) |
|
template<class fpType > |
fpType | fixDest (bool flush, bool defaultNan, fpType val, fpType op1, fpType op2) |
|
template float | fixDest< float > (bool flush, bool defaultNan, float val, float op1, float op2) |
|
template double | fixDest< double > (bool flush, bool defaultNan, double val, double op1, double op2) |
|
template<class fpType > |
fpType | fixDivDest (bool flush, bool defaultNan, fpType val, fpType op1, fpType op2) |
|
template float | fixDivDest< float > (bool flush, bool defaultNan, float val, float op1, float op2) |
|
template double | fixDivDest< double > (bool flush, bool defaultNan, double val, double op1, double op2) |
|
float | fixFpDFpSDest (FPSCR fpscr, double val) |
|
double | fixFpSFpDDest (FPSCR fpscr, float val) |
|
static uint16_t | vcvtFpFpH (FPSCR &fpscr, bool flush, bool defaultNan, uint32_t rMode, bool ahp, uint64_t opBits, bool isDouble) |
|
uint16_t | vcvtFpSFpH (FPSCR &fpscr, bool flush, bool defaultNan, uint32_t rMode, bool ahp, float op) |
|
uint16_t | vcvtFpDFpH (FPSCR &fpscr, bool flush, bool defaultNan, uint32_t rMode, bool ahp, double op) |
|
static uint64_t | vcvtFpHFp (FPSCR &fpscr, bool defaultNan, bool ahp, uint16_t op, bool isDouble) |
|
double | vcvtFpHFpD (FPSCR &fpscr, bool defaultNan, bool ahp, uint16_t op) |
|
float | vcvtFpHFpS (FPSCR &fpscr, bool defaultNan, bool ahp, uint16_t op) |
|
float | vfpUFixedToFpS (bool flush, bool defaultNan, uint64_t val, uint8_t width, uint8_t imm) |
|
float | vfpSFixedToFpS (bool flush, bool defaultNan, int64_t val, uint8_t width, uint8_t imm) |
|
double | vfpUFixedToFpD (bool flush, bool defaultNan, uint64_t val, uint8_t width, uint8_t imm) |
|
double | vfpSFixedToFpD (bool flush, bool defaultNan, int64_t val, uint8_t width, uint8_t imm) |
|
static double | recipSqrtEstimate (double a) |
|
float | fprSqrtEstimate (FPSCR &fpscr, float op) |
|
uint32_t | unsignedRSqrtEstimate (uint32_t op) |
|
static double | recipEstimate (double a) |
|
float | fpRecipEstimate (FPSCR &fpscr, float op) |
|
uint32_t | unsignedRecipEstimate (uint32_t op) |
|
FPSCR | fpStandardFPSCRValue (const FPSCR &fpscr) |
|
template<class T > |
static void | setVfpMicroFlags (VfpMicroMode mode, T &flags) |
|
static float | bitsToFp (uint64_t, float) |
|
static double | bitsToFp (uint64_t, double) |
|
static uint32_t | fpToBits (float) |
|
static uint64_t | fpToBits (double) |
|
template<class fpType > |
static bool | flushToZero (fpType &op) |
|
template<class fpType > |
static bool | flushToZero (fpType &op1, fpType &op2) |
|
template<class fpType > |
static void | vfpFlushToZero (FPSCR &fpscr, fpType &op) |
|
template<class fpType > |
static void | vfpFlushToZero (FPSCR &fpscr, fpType &op1, fpType &op2) |
|
template<class fpType > |
static bool | isSnan (fpType val) |
|
template<class fpType > |
fpType | fixDest (FPSCR fpscr, fpType val, fpType op1) |
|
template<class fpType > |
fpType | fixDest (FPSCR fpscr, fpType val, fpType op1, fpType op2) |
|
template<class fpType > |
fpType | fixDivDest (FPSCR fpscr, fpType val, fpType op1, fpType op2) |
|
static double | makeDouble (uint32_t low, uint32_t high) |
|
static uint32_t | lowFromDouble (double val) |
|
static uint32_t | highFromDouble (double val) |
|
static void | setFPExceptions (int exceptions) |
|
template<typename T > |
uint64_t | vfpFpToFixed (T val, bool isSigned, uint8_t width, uint8_t imm, bool useRmode=true, VfpRoundingMode roundMode=VfpRoundZero, bool aarch64=false) |
|
template<typename T > |
static T | fpAdd (T a, T b) |
|
template<typename T > |
static T | fpSub (T a, T b) |
|
static float | fpAddS (float a, float b) |
|
static double | fpAddD (double a, double b) |
|
static float | fpSubS (float a, float b) |
|
static double | fpSubD (double a, double b) |
|
static float | fpDivS (float a, float b) |
|
static double | fpDivD (double a, double b) |
|
template<typename T > |
static T | fpDiv (T a, T b) |
|
template<typename T > |
static T | fpMulX (T a, T b) |
|
template<typename T > |
static T | fpMul (T a, T b) |
|
static float | fpMulS (float a, float b) |
|
static double | fpMulD (double a, double b) |
|
template<typename T > |
static T | fpMulAdd (T op1, T op2, T addend) |
|
template<typename T > |
static T | fpRIntX (T a, FPSCR &fpscr) |
|
template<typename T > |
static T | fpMaxNum (T a, T b) |
|
template<typename T > |
static T | fpMax (T a, T b) |
|
template<typename T > |
static T | fpMinNum (T a, T b) |
|
template<typename T > |
static T | fpMin (T a, T b) |
|
template<typename T > |
static T | fpRSqrts (T a, T b) |
|
template<typename T > |
static T | fpRecps (T a, T b) |
|
static float | fpRSqrtsS (float a, float b) |
|
static float | fpRecpsS (float a, float b) |
|
template<typename T > |
static T | roundNEven (T a) |
|
template<class XC > |
static void | lockedSnoopHandler (ThreadContext *tc, XC *xc, PacketPtr pkt, Addr cacheBlockMask) |
|
template<class XC > |
static bool | lockedWriteHandler (ThreadContext *tc, XC *xc, const RequestPtr &req, Addr cacheBlockMask) |
|
static SyscallReturn | unameFunc32 (SyscallDesc *desc, ThreadContext *tc, VPtr< Linux::utsname > name) |
| Target uname() handler.
|
|
static SyscallReturn | unameFunc64 (SyscallDesc *desc, ThreadContext *tc, VPtr< Linux::utsname > name) |
| Target uname() handler.
|
|
static SyscallReturn | setTLSFunc32 (SyscallDesc *desc, ThreadContext *tc, uint32_t tlsPtr) |
| Target set_tls() handler.
|
|
static SyscallReturn | setTLSFunc64 (SyscallDesc *desc, ThreadContext *tc, uint32_t tlsPtr) |
|
template<typename T > |
MMU * | getMMUPtr (T *tc) |
|
const PageTableOps * | getPageTableOps (GrainSize trans_granule) |
|
bool | upperAndLowerRange (ThreadContext *tc, ExceptionLevel el) |
|
bool | calculateTBI (ThreadContext *tc, ExceptionLevel el, uint64_t ptr, bool data) |
|
int | calculateBottomPACBit (ThreadContext *tc, ExceptionLevel el, bool top_bit) |
|
Fault | trapPACUse (ThreadContext *tc, ExceptionLevel el) |
|
uint64_t | addPAC (ThreadContext *tc, ExceptionLevel el, uint64_t ptr, uint64_t modifier, uint64_t k1, uint64_t k0, bool data) |
|
uint64_t | auth (ThreadContext *tc, ExceptionLevel el, uint64_t ptr, uint64_t modifier, uint64_t k1, uint64_t K0, bool data, uint8_t errorcode) |
|
Fault | authDA (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | authDB (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | authIA (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | authIB (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | addPACDA (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | addPACDB (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | addPACGA (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | addPACIA (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
Fault | addPACIB (ThreadContext *tc, uint64_t X, uint64_t Y, uint64_t *out) |
|
void | stripPAC (ThreadContext *tc, uint64_t A, bool data, uint64_t *out) |
|
| BitUnion8 (ITSTATE) Bitfield< 7 |
|
| BitUnion32 (PackedIntReg) Bitfield< 31 |
|
| EndBitUnion (PackedIntReg) namespace int_reg |
|
static const RegId & | flattenIntRegModeIndex (int reg) |
|
static RegIndex | makeSP (RegIndex reg) |
|
static bool | couldBeSP (RegIndex reg) |
|
static bool | isSP (RegIndex reg) |
|
static bool | couldBeZero (RegIndex reg) |
|
static bool | isZero (RegIndex reg) |
|
static RegIndex | makeZero (RegIndex reg) |
|
template<typename ElemType > |
MatTile< ElemType > | getTile (MatRegContainer ®, uint8_t tile_idx) |
|
template<typename ElemType > |
MatTileRow< ElemType > | getTileHSlice (MatRegContainer ®, uint8_t tile_idx, uint8_t row_idx) |
|
template<typename ElemType > |
MatTileCol< ElemType > | getTileVSlice (MatRegContainer ®, uint8_t tile_idx, uint8_t col_idx) |
|
template<typename ElemType > |
MatRow< ElemType > | getHSlice (MatRegContainer ®, uint8_t row_idx) |
|
template<typename ElemType > |
MatCol< ElemType > | getVSlice (MatRegContainer ®, uint8_t col_idx) |
|
MiscRegIndex | decodeCP14Reg (unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) |
|
MiscRegIndex | decodeCP15Reg (unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) |
|
MiscRegIndex | decodeCP15Reg64 (unsigned crm, unsigned opc1) |
|
std::tuple< bool, bool > | canReadCoprocReg (MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) |
| Check for permission to read coprocessor registers.
|
|
std::tuple< bool, bool > | canWriteCoprocReg (MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) |
| Check for permission to write coprocessor registers.
|
|
bool | AArch32isUndefinedGenericTimer (MiscRegIndex reg, ThreadContext *tc) |
|
int | snsBankedIndex (MiscRegIndex reg, ThreadContext *tc) |
|
int | snsBankedIndex (MiscRegIndex reg, ThreadContext *tc, bool ns) |
|
int | snsBankedIndex64 (MiscRegIndex reg, ThreadContext *tc) |
|
void | preUnflattenMiscReg () |
|
int | unflattenMiscReg (int reg) |
|
Fault | checkFaultAccessAArch64SysReg (MiscRegIndex reg, CPSR cpsr, ThreadContext *tc, const MiscRegOp64 &inst) |
|
MiscRegIndex | decodeAArch64SysReg (unsigned op0, unsigned op1, unsigned crn, unsigned crm, unsigned op2) |
|
MiscRegIndex | decodeAArch64SysReg (const MiscRegNum64 &sys_reg) |
|
std::optional< MiscRegNum64 > | encodeAArch64SysReg (MiscRegIndex misc_reg) |
|
static Fault | defaultFaultE2H_EL2 (const MiscRegLUTEntry &entry, ThreadContext *tc, const MiscRegOp64 &inst) |
|
static Fault | defaultFaultE2H_EL3 (const MiscRegLUTEntry &entry, ThreadContext *tc, const MiscRegOp64 &inst) |
|
static CPSR | resetCPSR (ArmSystem *system) |
|
bool | aarch64SysRegReadOnly (MiscRegIndex miscReg) |
|
| BitUnion32 (CPSR) Bitfield< 31 |
|
| EndBitUnion (CPSR) BitUnion32(ISR) Bitfield< 8 > a |
|
| EndBitUnion (ISR) BitUnion32(ISAR5) Bitfield< 31 |
|
| EndBitUnion (ISAR5) BitUnion32(ISAR6) Bitfield< 31 |
|
| EndBitUnion (ISAR6) BitUnion64(AA64DFR0) Bitfield< 43 |
|
| EndBitUnion (AA64DFR0) BitUnion64(AA64ISAR0) Bitfield< 63 |
|
| EndBitUnion (AA64ISAR0) BitUnion64(AA64ISAR1) Bitfield< 55 |
|
| EndBitUnion (AA64ISAR1) BitUnion64(AA64MMFR0) Bitfield< 63 |
|
| EndBitUnion (AA64MMFR0) BitUnion64(AA64MMFR1) Bitfield< 43 |
|
| EndBitUnion (AA64MMFR1) BitUnion64(AA64MMFR2) Bitfield< 63 |
|
| EndBitUnion (AA64MMFR2) BitUnion64(AA64MMFR3) Bitfield< 47 |
|
| EndBitUnion (AA64MMFR3) BitUnion64(AA64PFR0) Bitfield< 63 |
|
| EndBitUnion (AA64PFR0) BitUnion64(AA64PFR1) Bitfield< 27 |
|
| EndBitUnion (AA64PFR1) BitUnion64(AA64ZFR0) Bitfield< 59 |
|
| EndBitUnion (AA64ZFR0) BitUnion64(AA64SMFR0) Bitfield< 63 > fa64 |
|
| EndBitUnion (AA64SMFR0) BitUnion32(HDCR) Bitfield< 27 > tdcc |
|
| EndBitUnion (HDCR) BitUnion32(HCPTR) Bitfield< 31 > tcpac |
|
| EndBitUnion (HCPTR) BitUnion32(HSTR) Bitfield< 17 > tjdbx |
|
| EndBitUnion (HSTR) BitUnion64(HCR) Bitfield< 55 > ttlbos |
|
| EndBitUnion (HCR) BitUnion32(NSACR) Bitfield< 20 > nstrcdis |
|
| EndBitUnion (NSACR) BitUnion64(SCR) Bitfield< 44 > sctlr2En |
|
| EndBitUnion (SCR) BitUnion64(SCTLR) Bitfield< 31 > enia |
|
| EndBitUnion (SCTLR) BitUnion32(CPACR) Bitfield< 1 |
|
| EndBitUnion (CPACR) BitUnion32(FSR) Bitfield< 3 |
|
| EndBitUnion (FSR) BitUnion32(FPSCR) Bitfield< 0 > ioc |
|
| EndBitUnion (FPSCR) BitUnion32(FPEXC) Bitfield< 31 > ex |
|
| EndBitUnion (FPEXC) BitUnion32(MVFR0) Bitfield< 3 |
|
| EndBitUnion (MVFR0) BitUnion32(MVFR1) Bitfield< 3 |
|
| EndBitUnion (MVFR1) BitUnion64(TTBCR) Bitfield< 2 |
|
| EndBitUnion (TTBCR) BitUnion64(TCR) Bitfield< 5 |
|
| EndBitUnion (TCR) BitUnion32(HTCR) Bitfield< 2 |
|
| EndBitUnion (HTCR) BitUnion32(VTCR_t) Bitfield< 3 |
|
| EndBitUnion (VTCR_t) BitUnion32(PRRR) Bitfield< 1 |
|
| EndBitUnion (PRRR) BitUnion32(NMRR) Bitfield< 1 |
|
| EndBitUnion (NMRR) BitUnion32(CONTEXTIDR) Bitfield< 7 |
|
| EndBitUnion (CONTEXTIDR) BitUnion32(L2CTLR) Bitfield< 2 |
|
| EndBitUnion (L2CTLR) BitUnion32(CTR) Bitfield< 3 |
|
| EndBitUnion (CTR) BitUnion32(PMSELR) Bitfield< 4 |
|
| EndBitUnion (PMSELR) BitUnion64(PAR) Bitfield< 63 |
|
| EndBitUnion (PAR) BitUnion32(ESR) Bitfield< 31 |
|
| SubBitUnion (cond_iss, 24, 0) Bitfield< 24 > cv |
|
| EndSubBitUnion (cond_iss) SubBitUnion(data_abort_iss |
|
| EndSubBitUnion (data_abort_iss) SubBitUnion(instruction_abort_iss |
|
| EndSubBitUnion (instruction_abort_iss) SubBitUnion(software_step_iss |
|
| EndSubBitUnion (software_step_iss) SubBitUnion(watchpoint_iss |
|
| EndSubBitUnion (watchpoint_iss) EndBitUnion(ESR) BitUnion32(CPTR) Bitfield< 31 > tcpac |
|
| EndBitUnion (CPTR) BitUnion64(ZCR) Bitfield< 3 |
|
| EndBitUnion (ZCR) BitUnion64(SMCR) Bitfield< 63 |
|
| EndBitUnion (SMCR) BitUnion64(SVCR) Bitfield< 63 |
|
| EndBitUnion (SVCR) BitUnion64(SMIDR) Bitfield< 63 |
|
| EndBitUnion (SMIDR) BitUnion64(SMPRI) Bitfield< 63 |
|
| EndBitUnion (SMPRI) BitUnion32(OSL) Bitfield< 64 |
|
| EndBitUnion (OSL) BitUnion64(DBGBCR) Bitfield< 63 |
|
| EndBitUnion (DBGBCR) BitUnion64(DBGWCR) Bitfield< 63 |
|
| EndBitUnion (DBGWCR) BitUnion32(DBGDS32) Bitfield< 31 > tfo |
|
| EndBitUnion (DBGDS32) BitUnion32(DBGVCR) Bitfield< 31 > nsf |
|
| EndBitUnion (DBGVCR) BitUnion32(DEVID) Bitfield< 31 |
|
| EndBitUnion (DEVID) BitUnion64(HFGITR) Bitfield< 54 > dccvac |
|
| EndBitUnion (HFGITR) BitUnion64(HFGTR) Bitfield< 50 > nAccdataEL1 |
|
| EndBitUnion (HFGTR) BitUnion64(HDFGTR) Bitfield< 11 > osdlrEL1 |
|
| EndBitUnion (HDFGTR) BitUnion64(HCRX) Bitfield< 15 > sctlr2En |
|
| EndBitUnion (HCRX) BitUnion64(MPAMIDR) Bitfield< 61 > hasSdeflt |
|
| EndBitUnion (MPAMIDR) BitUnion64(MPAM) Bitfield< 63 > mpamEn |
|
| SubBitUnion (el1, 62, 48) Bitfield< 60 > forcedNs |
|
| EndSubBitUnion (el1) SubBitUnion(el2 |
|
| EndSubBitUnion (el2) SubBitUnion(el3 |
|
| EndSubBitUnion (el3) Bitfield< 47 |
|
| EndBitUnion (MPAM) BitUnion64(MPAMHCR) Bitfield< 31 > trapMpamIdrEL1 |
|
| BitUnion64 (ExtMachInst) Bitfield< 63 |
|
| SubBitUnion (puswl, 24, 20) Bitfield< 24 > prepost |
|
| EndSubBitUnion (puswl) Bitfield< 24 |
|
| EndBitUnion (ExtMachInst) BitUnion32(Affinity) Bitfield< 31 |
|
| EndBitUnion (Affinity) enum ArmShiftType |
|
| BitUnion8 (OperatingMode64) Bitfield< 0 > spX |
|
| EndBitUnion (OperatingMode64) static bool inline opModeIs64(OperatingMode mode) |
|
static bool | opModeIsH (OperatingMode mode) |
|
static bool | opModeIsT (OperatingMode mode) |
|
static ExceptionLevel | opModeToEL (OperatingMode mode) |
|
static bool | unknownMode (OperatingMode mode) |
|
static bool | unknownMode32 (OperatingMode mode) |
|
static const char * | regimeToStr (TranslationRegime regime) |
|
void | sendEvent (ThreadContext *tc) |
| Send an event (SEV) to a specific PE if there isn't already a pending event.
|
|
bool | isSecure (ThreadContext *tc) |
|
bool | isSecureBelowEL3 (ThreadContext *tc) |
|
bool | isSecureAtEL (ThreadContext *tc, ExceptionLevel el) |
|
ExceptionLevel | debugTargetFrom (ThreadContext *tc, bool secure) |
|
bool | inAArch64 (ThreadContext *tc) |
|
ExceptionLevel | currEL (const ThreadContext *tc) |
| Returns the current Exception Level (EL) of the provided ThreadContext.
|
|
bool | longDescFormatInUse (ThreadContext *tc) |
|
RegVal | readMPIDR (ArmSystem *arm_sys, ThreadContext *tc) |
| This helper function is either returing the value of MPIDR_EL1 (by calling getMPIDR), or it is issuing a read to VMPIDR_EL2 (as it happens in virtualized systems)
|
|
RegVal | getMPIDR (ArmSystem *arm_sys, ThreadContext *tc) |
| This helper function is returning the value of MPIDR_EL1.
|
|
static RegVal | getAff2 (ArmSystem *arm_sys, ThreadContext *tc) |
|
static RegVal | getAff1 (ArmSystem *arm_sys, ThreadContext *tc) |
|
static RegVal | getAff0 (ArmSystem *arm_sys, ThreadContext *tc) |
|
Affinity | getAffinity (ArmSystem *arm_sys, ThreadContext *tc) |
| Retrieves MPIDR_EL1.
|
|
bool | HaveExt (ThreadContext *tc, ArmExtension ext) |
| Returns true if the provided ThreadContext supports the ArmExtension passed as a second argument.
|
|
ExceptionLevel | s1TranslationRegime (ThreadContext *tc, ExceptionLevel el) |
|
bool | IsSecureEL2Enabled (ThreadContext *tc) |
|
bool | EL2Enabled (ThreadContext *tc) |
|
bool | ELIs64 (ThreadContext *tc, ExceptionLevel el) |
|
bool | ELIs32 (ThreadContext *tc, ExceptionLevel el) |
|
bool | ELIsInHost (ThreadContext *tc, ExceptionLevel el) |
| Returns true if the current exception level el is executing a Host OS or an application of a Host OS (Armv8.1 Virtualization Host Extensions).
|
|
std::pair< bool, bool > | ELUsingAArch32K (ThreadContext *tc, ExceptionLevel el) |
| This function checks whether selected EL provided as an argument is using the AArch32 ISA.
|
|
bool | haveAArch32EL (ThreadContext *tc, ExceptionLevel el) |
|
std::pair< bool, bool > | ELStateUsingAArch32K (ThreadContext *tc, ExceptionLevel el, bool secure) |
|
bool | ELStateUsingAArch32 (ThreadContext *tc, ExceptionLevel el, bool secure) |
|
bool | isBigEndian64 (const ThreadContext *tc) |
|
bool | badMode32 (ThreadContext *tc, OperatingMode mode) |
| badMode is checking if the execution mode provided as an argument is valid and implemented for AArch32
|
|
bool | badMode (ThreadContext *tc, OperatingMode mode) |
| badMode is checking if the execution mode provided as an argument is valid and implemented.
|
|
int | computeAddrTop (ThreadContext *tc, bool selbit, bool is_instr, TCR tcr, ExceptionLevel el) |
|
Addr | maskTaggedAddr (Addr addr, ThreadContext *tc, ExceptionLevel el, int topbit) |
|
Addr | purifyTaggedAddr (Addr addr, ThreadContext *tc, ExceptionLevel el, TCR tcr, bool isInstr) |
| Removes the tag from tagged addresses if that mode is enabled.
|
|
Addr | purifyTaggedAddr (Addr addr, ThreadContext *tc, ExceptionLevel el, bool is_instr) |
|
Addr | truncPage (Addr addr) |
|
Addr | roundPage (Addr addr) |
|
Fault | mcrMrc15Trap (const MiscRegIndex misc_reg, ExtMachInst mach_inst, ThreadContext *tc, uint32_t imm) |
|
bool | mcrMrc15TrapToHyp (const MiscRegIndex misc_reg, ThreadContext *tc, uint32_t iss, ExceptionClass *ec) |
|
bool | mcrMrc14TrapToHyp (const MiscRegIndex misc_reg, ThreadContext *tc, uint32_t iss) |
|
Fault | mcrrMrrc15Trap (const MiscRegIndex misc_reg, ExtMachInst mach_inst, ThreadContext *tc, uint32_t imm) |
|
bool | mcrrMrrc15TrapToHyp (const MiscRegIndex misc_reg, ThreadContext *tc, uint32_t iss, ExceptionClass *ec) |
|
Fault | AArch64AArch32SystemAccessTrap (const MiscRegIndex misc_reg, ExtMachInst mach_inst, ThreadContext *tc, uint32_t imm, ExceptionClass ec) |
|
bool | isAArch64AArch32SystemAccessTrapEL1 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerHypTrap (const MiscRegIndex misc_reg, ThreadContext *tc, ExceptionClass *ec) |
|
bool | isGenericTimerCommonEL0HypTrap (const MiscRegIndex misc_reg, ThreadContext *tc, ExceptionClass *ec) |
|
bool | isGenericTimerPhysHypTrap (const MiscRegIndex misc_reg, ThreadContext *tc, ExceptionClass *ec) |
|
bool | condGenericTimerPhysHypTrap (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerSystemAccessTrapEL1 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | condGenericTimerSystemAccessTrapEL1 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isAArch64AArch32SystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerSystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerCommonEL0SystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerPhysEL0SystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerPhysEL1SystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerVirtSystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | condGenericTimerCommonEL0SystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | condGenericTimerCommonEL1SystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | condGenericTimerPhysEL1SystemAccessTrapEL2 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | isGenericTimerSystemAccessTrapEL3 (const MiscRegIndex misc_reg, ThreadContext *tc) |
|
bool | decodeMrsMsrBankedReg (uint8_t sysM, bool r, bool &isIntReg, int ®Idx, CPSR cpsr, SCR scr, NSACR nsacr, bool checkSecurity) |
|
bool | isUnpriviledgeAccess (ThreadContext *tc) |
|
bool | SPAlignmentCheckEnabled (ThreadContext *tc) |
|
int | decodePhysAddrRange64 (uint8_t pa_enc) |
| Returns the n.
|
|
uint8_t | encodePhysAddrRange64 (int pa_size) |
| Returns the encoding corresponding to the specified n.
|
|
void | syncVecRegsToElems (ThreadContext *tc) |
|
void | syncVecElemsToRegs (ThreadContext *tc) |
|
bool | fgtEnabled (ThreadContext *tc) |
|
bool | isHcrxEL2Enabled (ThreadContext *tc) |
|
TranslationRegime | translationRegime (ThreadContext *tc, ExceptionLevel el) |
|
ExceptionLevel | translationEl (TranslationRegime regime) |
|
bool | testPredicate (uint32_t nz, uint32_t c, uint32_t v, ConditionCode code) |
|
static bool | inUserMode (CPSR cpsr) |
|
static bool | inPrivilegedMode (CPSR cpsr) |
|
ExceptionLevel | currEL (CPSR cpsr) |
|
static uint8_t | itState (CPSR psr) |
|
static uint32_t | mcrMrcIssBuild (bool isRead, uint32_t crm, RegIndex rt, uint32_t crn, uint32_t opc1, uint32_t opc2) |
|
static void | mcrMrcIssExtract (uint32_t iss, bool &isRead, uint32_t &crm, RegIndex &rt, uint32_t &crn, uint32_t &opc1, uint32_t &opc2) |
|
static uint32_t | mcrrMrrcIssBuild (bool isRead, uint32_t crm, RegIndex rt, RegIndex rt2, uint32_t opc1) |
|
static int | decodeMrsMsrBankedIntRegIndex (uint8_t sysM, bool r) |
|
ByteOrder | byteOrder (const ThreadContext *tc) |
|
static bool | useVMID (TranslationRegime regime) |
|
| BitUnion64 (CNTKCTL) Bitfield< 17 > evntis |
|
| EndBitUnion (CNTKCTL) BitUnion64(CNTHCTL) Bitfield< 17 > evntis |
|
| EndBitUnion (CNTHCTL) BitUnion64(CNTHCTL_E2H) Bitfield< 17 > evntis |
|