5#ifndef RUNTIME_VM_CONSTANTS_RISCV_H_
6#define RUNTIME_VM_CONSTANTS_RISCV_H_
8#ifndef RUNTIME_VM_CONSTANTS_H_
9#error Do not include constants_riscv.h directly; use constants.h instead.
25#if defined(TARGET_ARCH_RISCV32)
26typedef uint32_t uintx_t;
27typedef int32_t intx_t;
32#elif defined(TARGET_ARCH_RISCV64)
33typedef uint64_t uintx_t;
34typedef int64_t intx_t;
167#define DART_ASSEMBLER_HAS_NULL_REG 1
179struct SharedSlowPathStubABI {
184struct InstantiationABI {
195struct InstantiateTAVInternalRegs {
209struct TTSInternalRegs {
227struct STCInternalRegs {
274struct AssertSubtypeABI {
291struct InitStaticFieldABI {
297struct InitLateStaticFieldInternalRegs {
303struct InitInstanceFieldABI {
310struct InitLateInstanceFieldInternalRegs {
316struct LateInitializationErrorABI {
332struct AssertBooleanABI {
337struct RangeErrorABI {
343struct AllocateObjectABI {
350struct AllocateClosureABI {
359struct AllocateMintABI {
365struct AllocateBoxABI {
371struct AllocateArrayABI {
378struct AllocateRecordABI {
387struct AllocateSmallRecordABI {
397struct AllocateTypedDataArrayABI {
403struct BoxDoubleStubABI {
410struct DoubleToIntegerStubABI {
418struct SuspendStubABI {
431struct InitSuspendableFunctionStubABI {
436struct ResumeStubABI {
453struct ReturnStubABI {
458struct AsyncExceptionHandlerStubABI {
463struct CloneSuspendStateStubABI {
473struct FfiAsyncCallbackSendStubABI {
481struct DispatchTableNullErrorABI {
489#define R(reg) (static_cast<RegList>(1) << (reg))
664#if defined(TARGET_ARCH_IS_64_BIT)
669#elif defined(TARGET_ARCH_IS_32_BIT)
675#error "Unexpected word size"
677#if !defined(DART_COMPRESSED_POINTERS)
689 return static_cast<int32_t
>(
static_cast<uint32_t
>(
value) << (32 -
N)) >>
694 return static_cast<intx_t
>(
x);
697 return static_cast<intx_t
>(
x);
700 return static_cast<intx_t
>(
static_cast<int32_t
>(
x));
703 return static_cast<intx_t
>(
static_cast<int64_t
>(
x));
950#define DEFINE_REG_ENCODING(type, name, shift) \
951 inline bool Is##name(type r) { \
952 return static_cast<uint32_t>(r) < 32; \
954 inline uint32_t Encode##name(type r) { \
955 ASSERT(Is##name(r)); \
956 return static_cast<uint32_t>(r) << shift; \
958 inline type Decode##name(uint32_t encoding) { \
959 return type((encoding >> shift) & 31); \
969#undef DEFINE_REG_ENCODING
971#define DEFINE_FUNCT_ENCODING(type, name, shift, mask) \
972 inline bool Is##name(type f) { \
973 return (f & mask) == f; \
975 inline uint32_t Encode##name(type f) { \
976 ASSERT(Is##name(f)); \
979 inline type Decode##name(uint32_t encoding) { \
980 return static_cast<type>((encoding >> shift) & mask); \
995#undef DEFINE_FUNCT_ENCODING
998 return static_cast<intx_t
>(
static_cast<uintx_t
>(imm) << (XLEN - 12)) >>
1002 return static_cast<intx_t
>(
1003 (
static_cast<uintx_t
>(imm) -
static_cast<uintx_t
>(
ImmLo(imm)))
1013 uint32_t encoded = 0;
1014 encoded |= ((imm >> 12) & 0x1) << 31;
1015 encoded |= ((imm >> 5) & 0x3f) << 25;
1016 encoded |= ((imm >> 1) & 0xf) << 8;
1017 encoded |= ((imm >> 11) & 0x1) << 7;
1022 imm |= (((encoded >> 31) & 0x1) << 12);
1023 imm |= (((encoded >> 25) & 0x3f) << 5);
1024 imm |= (((encoded >> 8) & 0xf) << 1);
1025 imm |= (((encoded >> 7) & 0x1) << 11);
1034 uint32_t encoded = 0;
1035 encoded |= ((imm >> 20) & 0x1) << 31;
1036 encoded |= ((imm >> 1) & 0x3ff) << 21;
1037 encoded |= ((imm >> 11) & 0x1) << 20;
1038 encoded |= ((imm >> 12) & 0xff) << 12;
1043 imm |= (((encoded >> 31) & 0x1) << 20);
1044 imm |= (((encoded >> 21) & 0x3ff) << 1);
1045 imm |= (((encoded >> 20) & 0x1) << 11);
1046 imm |= (((encoded >> 12) & 0xff) << 12);
1055 return static_cast<uint32_t
>(imm) << 20;
1069 return SignExtend(32, encoded & ~((1 << 12) - 1));
1077 uint32_t encoded = 0;
1078 encoded |= ((imm >> 5) & 0x7f) << 25;
1079 encoded |= ((imm >> 0) & 0x1f) << 7;
1084 imm |= (((encoded >> 25) & 0x7f) << 5);
1085 imm |= (((encoded >> 7) & 0x1f) << 0);
1090 return (parcel & 3) != 3;
1117 uint32_t
shamt()
const {
return DecodeShamt(encoding_); }
1123 if (acquire && release)
return std::memory_order_acq_rel;
1124 if (acquire)
return std::memory_order_acquire;
1125 if (release)
return std::memory_order_release;
1126 return std::memory_order_relaxed;
1135 uint32_t
csr()
const {
return encoding_ >> 20; }
1144 const uint32_t encoding_;
1147#define DEFINE_REG_ENCODING(type, name, shift) \
1148 inline bool Is##name(type r) { \
1149 return static_cast<uint32_t>(r) < 32; \
1151 inline uint32_t Encode##name(type r) { \
1152 ASSERT(Is##name(r)); \
1153 return static_cast<uint32_t>(r) << shift; \
1155 inline type Decode##name(uint32_t encoding) { \
1156 return type((encoding >> shift) & 31); \
1159#define DEFINE_REG_PRIME_ENCODING(type, name, shift) \
1160 inline bool Is##name(type r) { \
1161 return (r >= 8) && (r < 16); \
1163 inline uint32_t Encode##name(type r) { \
1164 ASSERT(Is##name(r)); \
1165 return (static_cast<uint32_t>(r) & 7) << shift; \
1167 inline type Decode##name(uint32_t encoding) { \
1168 return type(((encoding >> shift) & 7) + 8); \
1183#undef DEFINE_REG_ENCODING
1184#undef DEFINE_REG_PRIME_ENCODING
1191 uint32_t encoding = 0;
1192 encoding |= ((imm >> 5) & 0x1) << 12;
1193 encoding |= ((imm >> 2) & 0x7) << 4;
1194 encoding |= ((imm >> 6) & 0x3) << 2;
1199 imm |= ((encoding >> 12) & 0x1) << 5;
1200 imm |= ((encoding >> 4) & 0x7) << 2;
1201 imm |= ((encoding >> 2) & 0x3) << 6;
1210 uint32_t encoding = 0;
1211 encoding |= ((imm >> 5) & 0x1) << 12;
1212 encoding |= ((imm >> 3) & 0x3) << 5;
1213 encoding |= ((imm >> 6) & 0x7) << 2;
1218 imm |= ((encoding >> 12) & 0x1) << 5;
1219 imm |= ((encoding >> 5) & 0x3) << 3;
1220 imm |= ((encoding >> 2) & 0x7) << 6;
1229 uint32_t encoding = 0;
1230 encoding |= ((imm >> 2) & 0xF) << 9;
1231 encoding |= ((imm >> 6) & 0x3) << 7;
1236 imm |= ((encoding >> 9) & 0xF) << 2;
1237 imm |= ((encoding >> 7) & 0x3) << 6;
1246 uint32_t encoding = 0;
1247 encoding |= ((imm >> 3) & 0x7) << 10;
1248 encoding |= ((imm >> 6) & 0x7) << 7;
1253 imm |= ((encoding >> 10) & 0x7) << 3;
1254 imm |= ((encoding >> 7) & 0x7) << 6;
1263 uint32_t encoding = 0;
1264 encoding |= ((imm >> 3) & 0x7) << 10;
1265 encoding |= ((imm >> 2) & 0x1) << 6;
1266 encoding |= ((imm >> 6) & 0x1) << 5;
1271 imm |= ((encoding >> 10) & 0x7) << 3;
1272 imm |= ((encoding >> 6) & 0x1) << 2;
1273 imm |= ((encoding >> 5) & 0x1) << 6;
1282 uint32_t encoding = 0;
1283 encoding |= ((imm >> 3) & 0x7) << 10;
1284 encoding |= ((imm >> 6) & 0x3) << 5;
1289 imm |= ((encoding >> 10) & 0x7) << 3;
1290 imm |= ((encoding >> 5) & 0x3) << 6;
1299 uint32_t encoding = 0;
1300 encoding |= ((imm >> 11) & 0x1) << 12;
1301 encoding |= ((imm >> 4) & 0x1) << 11;
1302 encoding |= ((imm >> 8) & 0x3) << 9;
1303 encoding |= ((imm >> 10) & 0x1) << 8;
1304 encoding |= ((imm >> 6) & 0x1) << 7;
1305 encoding |= ((imm >> 7) & 0x1) << 6;
1306 encoding |= ((imm >> 1) & 0x7) << 3;
1307 encoding |= ((imm >> 5) & 0x1) << 2;
1312 imm |= ((encoding >> 12) & 0x1) << 11;
1313 imm |= ((encoding >> 11) & 0x1) << 4;
1314 imm |= ((encoding >> 9) & 0x3) << 8;
1315 imm |= ((encoding >> 8) & 0x1) << 10;
1316 imm |= ((encoding >> 7) & 0x1) << 6;
1317 imm |= ((encoding >> 6) & 0x1) << 7;
1318 imm |= ((encoding >> 3) & 0x7) << 1;
1319 imm |= ((encoding >> 2) & 0x1) << 5;
1328 uint32_t encoding = 0;
1329 encoding |= ((imm >> 8) & 0x1) << 12;
1330 encoding |= ((imm >> 3) & 0x3) << 10;
1331 encoding |= ((imm >> 6) & 0x3) << 5;
1332 encoding |= ((imm >> 1) & 0x3) << 3;
1333 encoding |= ((imm >> 5) & 0x1) << 2;
1338 imm |= ((encoding >> 12) & 0x1) << 8;
1339 imm |= ((encoding >> 10) & 0x3) << 3;
1340 imm |= ((encoding >> 5) & 0x3) << 6;
1341 imm |= ((encoding >> 3) & 0x3) << 1;
1342 imm |= ((encoding >> 2) & 0x1) << 5;
1351 uint32_t encoding = 0;
1352 encoding |= ((imm >> 5) & 0x1) << 12;
1353 encoding |= ((imm >> 0) & 0x1F) << 2;
1358 imm |= ((encoding >> 12) & 0x1) << 5;
1359 imm |= ((encoding >> 2) & 0x1F) << 0;
1368 uint32_t encoding = 0;
1369 encoding |= ((imm >> 17) & 0x1) << 12;
1370 encoding |= ((imm >> 12) & 0x1F) << 2;
1375 imm |= ((encoding >> 12) & 0x1) << 17;
1376 imm |= ((encoding >> 2) & 0x1F) << 12;
1385 uint32_t encoding = 0;
1386 encoding |= ((imm >> 9) & 0x1) << 12;
1387 encoding |= ((imm >> 4) & 0x1) << 6;
1388 encoding |= ((imm >> 6) & 0x1) << 5;
1389 encoding |= ((imm >> 7) & 0x3) << 3;
1390 encoding |= ((imm >> 5) & 0x1) << 2;
1395 imm |= ((encoding >> 12) & 0x1) << 9;
1396 imm |= ((encoding >> 6) & 0x1) << 4;
1397 imm |= ((encoding >> 5) & 0x1) << 6;
1398 imm |= ((encoding >> 3) & 0x3) << 7;
1399 imm |= ((encoding >> 2) & 0x1) << 5;
1408 uint32_t encoding = 0;
1409 encoding |= ((imm >> 4) & 0x3) << 11;
1410 encoding |= ((imm >> 6) & 0xF) << 7;
1411 encoding |= ((imm >> 2) & 0x1) << 6;
1412 encoding |= ((imm >> 3) & 0x1) << 5;
1417 imm |= ((encoding >> 11) & 0x3) << 4;
1418 imm |= ((encoding >> 7) & 0xF) << 6;
1419 imm |= ((encoding >> 6) & 0x1) << 2;
1420 imm |= ((encoding >> 5) & 0x1) << 3;
1517 const uint16_t encoding_;
1520#define DEFINE_TYPED_ENUM_SET(name, storage_t) \
1524 constexpr explicit name(storage_t encoding) : encoding_(encoding) {} \
1525 constexpr storage_t encoding() const { \
1528 constexpr bool operator==(const name& other) const { \
1529 return encoding_ == other.encoding_; \
1531 constexpr bool operator!=(const name& other) const { \
1532 return encoding_ != other.encoding_; \
1534 inline constexpr name##Set operator|(const name& other) const; \
1535 inline constexpr name##Set operator|(const name##Set& other) const; \
1538 const storage_t encoding_; \
1540 inline std::ostream& operator<<(std::ostream& stream, const name& element) { \
1541 return stream << #name << "(" << element.encoding() << ")"; \
1545 constexpr name##Set(name element) \
1546 : encoding_(1u << element.encoding()) {} \
1547 constexpr explicit name##Set(storage_t encoding) : encoding_(encoding) {} \
1548 constexpr static name##Set Empty() { \
1549 return name##Set(0); \
1551 constexpr bool Includes(const name r) const { \
1552 return (encoding_ & (1 << r.encoding())) != 0; \
1554 constexpr bool IncludesAll(const name##Set other) const { \
1555 return (encoding_ & other.encoding_) == other.encoding_; \
1557 constexpr bool IsEmpty() const { \
1558 return encoding_ == 0; \
1560 constexpr bool operator==(const name##Set& other) const { \
1561 return encoding_ == other.encoding_; \
1563 constexpr bool operator!=(const name##Set& other) const { \
1564 return encoding_ != other.encoding_; \
1566 constexpr name##Set operator|(const name& other) const { \
1567 return name##Set(encoding_ | (1 << other.encoding())); \
1569 constexpr name##Set operator|(const name##Set& other) const { \
1570 return name##Set(encoding_ | other.encoding_); \
1572 constexpr name##Set operator&(const name##Set& other) const { \
1573 return name##Set(encoding_ & other.encoding_); \
1577 storage_t encoding_; \
1579 constexpr name##Set name::operator|(const name& other) const { \
1580 return name##Set((1u << encoding_) | (1u << other.encoding_)); \
1582 constexpr name##Set name::operator|(const name##Set& other) const { \
1583 return other | *this; \
1607#define LINK_REGISTER RA
#define COMPILE_ASSERT(expr)
CInstr(uint16_t encoding)
static constexpr uint32_t kInstrSize
uint16_t encoding() const
static constexpr ExtensionStrategy kArgumentStackExtension
static constexpr Register kSecondReturnReg
static constexpr intptr_t kCalleeSaveCpuRegisters
static constexpr AlignmentStrategy kArgumentRegisterAlignmentVarArgs
static constexpr AlignmentStrategy kFieldAlignment
static const FpuRegister FpuArgumentRegisters[]
static const Register ArgumentRegisters[]
static constexpr bool kArgumentIntRegXorFpuReg
static constexpr intptr_t kFpuArgumentRegisters
static constexpr FpuRegister kReturnFpuReg
static constexpr intptr_t kNumFpuArgRegs
static constexpr Register kPointerToReturnStructRegisterCall
static constexpr Register kFirstNonArgumentRegister
static constexpr Register kFfiAnyNonAbiRegister
static constexpr AlignmentStrategy kArgumentStackAlignmentVarArgs
static constexpr Register kPointerToReturnStructRegisterReturn
static constexpr AlignmentStrategy kArgumentRegisterAlignment
static constexpr ExtensionStrategy kReturnRegisterExtension
COMPILE_ASSERT(((R(kFirstNonArgumentRegister)|R(kSecondNonArgumentRegister)) &(kArgumentRegisters|R(kPointerToReturnStructRegisterCall)))==0)
static constexpr Register kStackPointerRegister
static constexpr Register kReturnReg
static constexpr intptr_t kArgumentRegisters
static constexpr Register kSecondNonArgumentRegister
static constexpr ExtensionStrategy kArgumentRegisterExtension
static constexpr intptr_t kNumArgRegs
static constexpr AlignmentStrategy kArgumentStackAlignment
uint32_t encoding() const
static constexpr int32_t kBreakPointInstruction
std::memory_order memory_order() const
RoundingMode rounding() const
static constexpr int32_t kSimulatorRedirectInstruction
static bool IsInt(intptr_t N, T value)
static constexpr int CountOneBits32(uint32_t x)
static bool IsUint(intptr_t N, T value)
static constexpr bool IsAligned(T x, uintptr_t alignment, uintptr_t offset=0)
#define DEFINE_FUNCT_ENCODING(type, name, shift, mask)
#define DEFINE_REG_ENCODING(type, name, shift)
#define DEFINE_TYPED_ENUM_SET(name, storage_t)
#define DEFINE_REG_PRIME_ENCODING(type, name, shift)
#define DECLARE_FLAG(type, name)
constexpr int64_t kMaxInt64
static constexpr ExtensionSet RV_GCB
constexpr int64_t kMinInt64
const FpuRegister kNoFpuRegister
uint32_t EncodeBTypeImm(intptr_t imm)
uint32_t EncodeCBImm(intptr_t imm)
const Register kWriteBarrierSlotReg
const intptr_t kReleaseShift
@ TIMES_COMPRESSED_HALF_WORD_SIZE
@ TIMES_COMPRESSED_WORD_SIZE
bool IsCI16Imm(intptr_t imm)
static constexpr Extension RV_F(3)
uint32_t EncodeUTypeImm(intptr_t imm)
intx_t DecodeCBImm(uint32_t encoding)
static Condition InvertCondition(Condition c)
const RegList kAbiVolatileCpuRegs
constexpr Register FAR_TMP
const Register kExceptionObjectReg
bool IsCInstruction(uint16_t parcel)
static constexpr Extension RV_Zbs(9)
intptr_t DecodeBTypeImm(uint32_t encoded)
intx_t DecodeCMem8Imm(uint32_t encoding)
const RegList kReservedCpuRegisters
const Register kWriteBarrierObjectReg
int32_t SignExtend(int N, int32_t value)
static constexpr ExtensionSet RV_GC
const RegList kAllFpuRegistersList
constexpr int32_t kMinInt32
const Register kWriteBarrierValueReg
intx_t DecodeCSPLoad4Imm(uint32_t encoding)
intx_t DecodeCUImm(uint32_t encoding)
uint32_t EncodeCSPStore4Imm(intptr_t imm)
const char *const fpu_reg_names[kNumberOfFpuRegisters]
bool IsCSPLoad4Imm(intptr_t imm)
constexpr uint64_t kMaxUint64
constexpr intptr_t kInt32SizeLog2
constexpr uint32_t kMaxUint32
bool IsCJImm(intptr_t imm)
uint32_t EncodeCJImm(intptr_t imm)
Register ConcreteRegister(LinkRegister)
bool IsCIImm(intptr_t imm)
uint32_t EncodeCSPLoad8Imm(intptr_t imm)
const Register CALLEE_SAVED_TEMP
static constexpr Extension RV_Zbc(8)
constexpr uword kBreakInstructionFiller
const Register ARGS_DESC_REG
const Register DISPATCH_TABLE_REG
const int kNumberOfFpuRegisters
const RegList kAbiPreservedCpuRegs
intptr_t DecodeITypeImm(uint32_t encoded)
constexpr RegList kAbiArgumentFpuRegs
intx_t sign_extend(int32_t x)
intx_t DecodeCIImm(uint32_t encoding)
bool IsCSPStore8Imm(intptr_t imm)
intptr_t DecodeUTypeImm(uint32_t encoded)
intptr_t DecodeJTypeImm(uint32_t encoded)
constexpr RegList kDartAvailableCpuRegs
const intptr_t kAcquireShift
const int kAbiPreservedCpuRegCount
uint32_t EncodeCMem8Imm(intptr_t imm)
const RegList kDartVolatileCpuRegs
uint32_t EncodeCUImm(intptr_t imm)
static constexpr ExtensionSet RV_B
uint32_t EncodeCI4SPNImm(intptr_t imm)
const intptr_t kStoreBufferWrapperSize
const int kAbiPreservedFpuRegCount
bool IsSTypeImm(intptr_t imm)
intx_t DecodeCSPStore4Imm(uint32_t encoding)
bool IsJTypeImm(intptr_t imm)
intx_t DecodeCMem4Imm(uint32_t encoding)
static constexpr Extension RV_A(2)
uint32_t EncodeCSPLoad4Imm(intptr_t imm)
intx_t DecodeCSPStore8Imm(uint32_t encoding)
constexpr int kRegisterAllocationBias
uint32_t EncodeCIImm(intptr_t imm)
bool IsITypeImm(intptr_t imm)
const Register FUNCTION_REG
constexpr intptr_t kNumberOfReservedCpuRegisters
bool IsCSPStore4Imm(intptr_t imm)
bool IsCUImm(intptr_t imm)
const Register IC_DATA_REG
bool IsUTypeImm(intptr_t imm)
bool IsCMem4Imm(intptr_t imm)
bool IsBTypeImm(intptr_t imm)
const char *const cpu_reg_names[kNumberOfCpuRegisters]
constexpr int32_t kMaxInt32
constexpr intptr_t kInt64SizeLog2
constexpr Register WRITE_BARRIER_STATE
static constexpr Extension RV_Zba(6)
intx_t DecodeCSPLoad8Imm(uint32_t encoding)
intx_t DecodeCI4SPNImm(uint32_t encoding)
static constexpr Extension RV_M(1)
static constexpr Extension RV_C(5)
uint32_t EncodeITypeImm(intptr_t imm)
uint32_t EncodeSTypeImm(intptr_t imm)
constexpr RegList kAbiPreservedFpuRegs
uint32_t EncodeCMem4Imm(intptr_t imm)
uint32_t EncodeCSPStore8Imm(intptr_t imm)
bool IsCSPLoad8Imm(intptr_t imm)
const RegList kAbiArgumentCpuRegs
bool IsCMem8Imm(intptr_t imm)
uint32_t EncodeJTypeImm(intptr_t imm)
const Register kStackTraceObjectReg
const RegList kAllCpuRegistersList
intx_t DecodeCI16Imm(uint32_t encoding)
bool IsCBImm(intptr_t imm)
const intptr_t kPreferredLoopAlignment
simd128_value_t fpu_register_t
constexpr intptr_t kNumberOfReservedFpuRegisters
intx_t DecodeCJImm(uint32_t encoding)
const RegList kAbiVolatileFpuRegs
bool IsCI4SPNImm(intptr_t imm)
uint32_t EncodeCI16Imm(intptr_t imm)
const Register CALLEE_SAVED_TEMP2
static constexpr ExtensionSet RV_G
static constexpr Extension RV_D(4)
intptr_t DecodeSTypeImm(uint32_t encoded)
@ kAlignedToWordSizeAndValueSize
const char *const cpu_reg_abi_names[kNumberOfCpuRegisters]
static constexpr Extension RV_I(0)
const int kFpuRegisterSize
static constexpr Extension RV_Zbb(7)
constexpr int kNumberOfDartAvailableCpuRegs
constexpr intptr_t kReservedFpuRegisters
static constexpr Register kResultReg
static constexpr Register kLengthReg
static constexpr Register kTypeArgumentsReg
static constexpr Register kResultReg
static constexpr Register kTempReg
static constexpr Register kFunctionReg
static constexpr Register kContextReg
static constexpr Register kResultReg
static constexpr Register kInstantiatorTypeArgsReg
static constexpr Register kScratchReg
static constexpr Register kResultReg
static constexpr Register kTempReg
static constexpr Register kTypeArgumentsReg
static constexpr Register kResultReg
static constexpr Register kTagsReg
static constexpr Register kShapeReg
static constexpr Register kResultReg
static constexpr Register kTemp1Reg
static constexpr Register kTemp2Reg
static constexpr Register kResultReg
static constexpr Register kShapeReg
static constexpr Register kValue2Reg
static constexpr Register kValue0Reg
static constexpr Register kTempReg
static constexpr Register kValue1Reg
static constexpr Register kLengthReg
static constexpr Register kResultReg
static constexpr Register kObjectReg
static constexpr Register kSubTypeReg
static constexpr Register kSuperTypeReg
static constexpr Register kFunctionTypeArgumentsReg
static constexpr intptr_t kAbiRegisters
static constexpr Register kInstantiatorTypeArgumentsReg
static constexpr Register kDstNameReg
static constexpr Register kSuspendStateReg
static constexpr Register kTempReg
static constexpr Register kResultReg
static constexpr FpuRegister kValueReg
static constexpr Register kDestinationReg
static constexpr Register kSrcFrameReg
static constexpr Register kFrameSizeReg
static constexpr Register kSourceReg
static constexpr Register kTempReg
static constexpr Register kDstFrameReg
static constexpr Register kCpuRegistersForArgs[]
static constexpr FpuRegister kFpuRegistersForArgs[]
static constexpr Register kClassIdReg
static constexpr Register kResultReg
static constexpr Register kRecognizedKindReg
static constexpr FpuRegister kInputReg
static constexpr Register kArgsReg
static constexpr Register kFieldReg
static constexpr Register kResultReg
static constexpr Register kInstanceReg
static constexpr Register kAddressReg
static constexpr Register kScratchReg
static constexpr Register kAddressReg
static constexpr Register kScratchReg
static constexpr Register kResultReg
static constexpr Register kFieldReg
static constexpr Register kTypeArgsReg
static constexpr Register kEntryStartReg
static constexpr intptr_t kSavedRegisters
static constexpr Register kCurrentEntryIndexReg
static constexpr Register kProbeMaskReg
static constexpr Register kProbeDistanceReg
static constexpr Register kInstantiatorTypeArgumentsReg
static constexpr Register kScratchReg
static constexpr Register kResultTypeReg
static constexpr Register kUninstantiatedTypeArgumentsReg
static constexpr Register kResultTypeArgumentsReg
static constexpr Register kFunctionTypeArgumentsReg
static constexpr Register kFieldReg
static constexpr Register kLengthReg
static constexpr Register kIndexReg
static constexpr Register kStackTraceReg
static constexpr Register kExceptionReg
static constexpr Register kSrcFrameReg
static constexpr Register kDstFrameReg
static constexpr Register kFrameSizeReg
static constexpr Register kSuspendStateReg
static constexpr Register kExceptionReg
static constexpr Register kTempReg
static constexpr Register kResumePcReg
static constexpr Register kStackTraceReg
static constexpr Register kSuspendStateReg
static constexpr Register kCacheContentsSizeReg
static constexpr Register kInstanceInstantiatorTypeArgumentsReg
static constexpr intptr_t kInternalRegisters
static constexpr Register kInstanceParentFunctionTypeArgumentsReg
static constexpr Register kProbeDistanceReg
static constexpr Register kInstanceCidOrSignatureReg
static constexpr Register kCacheEntriesEndReg
static constexpr Register kInstanceDelayedFunctionTypeArgumentsReg
static constexpr Register kResultReg
static constexpr Register kSrcFrameReg
static constexpr Register kFunctionDataReg
static constexpr Register kSuspendStateReg
static constexpr Register kTempReg
static constexpr Register kArgumentReg
static constexpr Register kDstFrameReg
static constexpr Register kTypeArgsReg
static constexpr Register kFrameSizeReg
static constexpr intptr_t kInternalRegisters
static constexpr intptr_t kSavedTypeArgumentRegisters
static constexpr Register kSuperTypeArgumentReg
static constexpr Register kSubTypeArgumentReg
static constexpr Register kInstanceTypeArgumentsReg
static constexpr Register kScratchReg
static constexpr Register kExceptionReg
static constexpr Register kSubtypeTestCacheReg
static constexpr Register kDstTypeReg
static constexpr Register kInstanceReg
static constexpr Register kFunctionTypeArgumentsReg
static constexpr Register kInstantiatorTypeArgumentsReg
static constexpr intptr_t kNonPreservedAbiRegisters
static constexpr Register kSubtypeTestCacheResultReg
static constexpr intptr_t kPreservedAbiRegisters
static constexpr Register kScratchReg
static constexpr intptr_t kAbiRegisters
static constexpr Register kInstanceOfResultReg