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));
954#define DEFINE_REG_ENCODING(type, name, shift) \
955 inline bool Is##name(type r) { \
956 return static_cast<uint32_t>(r) < 32; \
958 inline uint32_t Encode##name(type r) { \
959 ASSERT(Is##name(r)); \
960 return static_cast<uint32_t>(r) << shift; \
962 inline type Decode##name(uint32_t encoding) { \
963 return type((encoding >> shift) & 31); \
973#undef DEFINE_REG_ENCODING
975#define DEFINE_FUNCT_ENCODING(type, name, shift, mask) \
976 inline bool Is##name(type f) { \
977 return (f & mask) == f; \
979 inline uint32_t Encode##name(type f) { \
980 ASSERT(Is##name(f)); \
983 inline type Decode##name(uint32_t encoding) { \
984 return static_cast<type>((encoding >> shift) & mask); \
999#undef DEFINE_FUNCT_ENCODING
1002 return static_cast<intx_t
>(
static_cast<uintx_t
>(imm) << (XLEN - 12)) >>
1006 return static_cast<intx_t
>(
1007 (
static_cast<uintx_t
>(imm) -
static_cast<uintx_t
>(
ImmLo(imm)))
1017 uint32_t encoded = 0;
1018 encoded |= ((imm >> 12) & 0x1) << 31;
1019 encoded |= ((imm >> 5) & 0x3f) << 25;
1020 encoded |= ((imm >> 1) & 0xf) << 8;
1021 encoded |= ((imm >> 11) & 0x1) << 7;
1026 imm |= (((encoded >> 31) & 0x1) << 12);
1027 imm |= (((encoded >> 25) & 0x3f) << 5);
1028 imm |= (((encoded >> 8) & 0xf) << 1);
1029 imm |= (((encoded >> 7) & 0x1) << 11);
1038 uint32_t encoded = 0;
1039 encoded |= ((imm >> 20) & 0x1) << 31;
1040 encoded |= ((imm >> 1) & 0x3ff) << 21;
1041 encoded |= ((imm >> 11) & 0x1) << 20;
1042 encoded |= ((imm >> 12) & 0xff) << 12;
1047 imm |= (((encoded >> 31) & 0x1) << 20);
1048 imm |= (((encoded >> 21) & 0x3ff) << 1);
1049 imm |= (((encoded >> 20) & 0x1) << 11);
1050 imm |= (((encoded >> 12) & 0xff) << 12);
1059 return static_cast<uint32_t
>(imm) << 20;
1073 return SignExtend(32, encoded & ~((1 << 12) - 1));
1081 uint32_t encoded = 0;
1082 encoded |= ((imm >> 5) & 0x7f) << 25;
1083 encoded |= ((imm >> 0) & 0x1f) << 7;
1088 imm |= (((encoded >> 25) & 0x7f) << 5);
1089 imm |= (((encoded >> 7) & 0x1f) << 0);
1094 return (parcel & 3) != 3;
1121 uint32_t
shamt()
const {
return DecodeShamt(encoding_); }
1127 if (acquire && release)
return std::memory_order_acq_rel;
1128 if (acquire)
return std::memory_order_acquire;
1129 if (release)
return std::memory_order_release;
1130 return std::memory_order_relaxed;
1139 uint32_t
csr()
const {
return encoding_ >> 20; }
1148 const uint32_t encoding_;
1151#define DEFINE_REG_ENCODING(type, name, shift) \
1152 inline bool Is##name(type r) { \
1153 return static_cast<uint32_t>(r) < 32; \
1155 inline uint32_t Encode##name(type r) { \
1156 ASSERT(Is##name(r)); \
1157 return static_cast<uint32_t>(r) << shift; \
1159 inline type Decode##name(uint32_t encoding) { \
1160 return type((encoding >> shift) & 31); \
1163#define DEFINE_REG_PRIME_ENCODING(type, name, shift) \
1164 inline bool Is##name(type r) { \
1165 return (r >= 8) && (r < 16); \
1167 inline uint32_t Encode##name(type r) { \
1168 ASSERT(Is##name(r)); \
1169 return (static_cast<uint32_t>(r) & 7) << shift; \
1171 inline type Decode##name(uint32_t encoding) { \
1172 return type(((encoding >> shift) & 7) + 8); \
1187#undef DEFINE_REG_ENCODING
1188#undef DEFINE_REG_PRIME_ENCODING
1195 uint32_t encoding = 0;
1196 encoding |= ((imm >> 5) & 0x1) << 12;
1197 encoding |= ((imm >> 2) & 0x7) << 4;
1198 encoding |= ((imm >> 6) & 0x3) << 2;
1203 imm |= ((encoding >> 12) & 0x1) << 5;
1204 imm |= ((encoding >> 4) & 0x7) << 2;
1205 imm |= ((encoding >> 2) & 0x3) << 6;
1214 uint32_t encoding = 0;
1215 encoding |= ((imm >> 5) & 0x1) << 12;
1216 encoding |= ((imm >> 3) & 0x3) << 5;
1217 encoding |= ((imm >> 6) & 0x7) << 2;
1222 imm |= ((encoding >> 12) & 0x1) << 5;
1223 imm |= ((encoding >> 5) & 0x3) << 3;
1224 imm |= ((encoding >> 2) & 0x7) << 6;
1233 uint32_t encoding = 0;
1234 encoding |= ((imm >> 2) & 0xF) << 9;
1235 encoding |= ((imm >> 6) & 0x3) << 7;
1240 imm |= ((encoding >> 9) & 0xF) << 2;
1241 imm |= ((encoding >> 7) & 0x3) << 6;
1250 uint32_t encoding = 0;
1251 encoding |= ((imm >> 3) & 0x7) << 10;
1252 encoding |= ((imm >> 6) & 0x7) << 7;
1257 imm |= ((encoding >> 10) & 0x7) << 3;
1258 imm |= ((encoding >> 7) & 0x7) << 6;
1267 uint32_t encoding = 0;
1268 encoding |= ((imm >> 3) & 0x7) << 10;
1269 encoding |= ((imm >> 2) & 0x1) << 6;
1270 encoding |= ((imm >> 6) & 0x1) << 5;
1275 imm |= ((encoding >> 10) & 0x7) << 3;
1276 imm |= ((encoding >> 6) & 0x1) << 2;
1277 imm |= ((encoding >> 5) & 0x1) << 6;
1286 uint32_t encoding = 0;
1287 encoding |= ((imm >> 3) & 0x7) << 10;
1288 encoding |= ((imm >> 6) & 0x3) << 5;
1293 imm |= ((encoding >> 10) & 0x7) << 3;
1294 imm |= ((encoding >> 5) & 0x3) << 6;
1303 uint32_t encoding = 0;
1304 encoding |= ((imm >> 11) & 0x1) << 12;
1305 encoding |= ((imm >> 4) & 0x1) << 11;
1306 encoding |= ((imm >> 8) & 0x3) << 9;
1307 encoding |= ((imm >> 10) & 0x1) << 8;
1308 encoding |= ((imm >> 6) & 0x1) << 7;
1309 encoding |= ((imm >> 7) & 0x1) << 6;
1310 encoding |= ((imm >> 1) & 0x7) << 3;
1311 encoding |= ((imm >> 5) & 0x1) << 2;
1316 imm |= ((encoding >> 12) & 0x1) << 11;
1317 imm |= ((encoding >> 11) & 0x1) << 4;
1318 imm |= ((encoding >> 9) & 0x3) << 8;
1319 imm |= ((encoding >> 8) & 0x1) << 10;
1320 imm |= ((encoding >> 7) & 0x1) << 6;
1321 imm |= ((encoding >> 6) & 0x1) << 7;
1322 imm |= ((encoding >> 3) & 0x7) << 1;
1323 imm |= ((encoding >> 2) & 0x1) << 5;
1332 uint32_t encoding = 0;
1333 encoding |= ((imm >> 8) & 0x1) << 12;
1334 encoding |= ((imm >> 3) & 0x3) << 10;
1335 encoding |= ((imm >> 6) & 0x3) << 5;
1336 encoding |= ((imm >> 1) & 0x3) << 3;
1337 encoding |= ((imm >> 5) & 0x1) << 2;
1342 imm |= ((encoding >> 12) & 0x1) << 8;
1343 imm |= ((encoding >> 10) & 0x3) << 3;
1344 imm |= ((encoding >> 5) & 0x3) << 6;
1345 imm |= ((encoding >> 3) & 0x3) << 1;
1346 imm |= ((encoding >> 2) & 0x1) << 5;
1355 uint32_t encoding = 0;
1356 encoding |= ((imm >> 5) & 0x1) << 12;
1357 encoding |= ((imm >> 0) & 0x1F) << 2;
1362 imm |= ((encoding >> 12) & 0x1) << 5;
1363 imm |= ((encoding >> 2) & 0x1F) << 0;
1372 uint32_t encoding = 0;
1373 encoding |= ((imm >> 17) & 0x1) << 12;
1374 encoding |= ((imm >> 12) & 0x1F) << 2;
1379 imm |= ((encoding >> 12) & 0x1) << 17;
1380 imm |= ((encoding >> 2) & 0x1F) << 12;
1389 uint32_t encoding = 0;
1390 encoding |= ((imm >> 9) & 0x1) << 12;
1391 encoding |= ((imm >> 4) & 0x1) << 6;
1392 encoding |= ((imm >> 6) & 0x1) << 5;
1393 encoding |= ((imm >> 7) & 0x3) << 3;
1394 encoding |= ((imm >> 5) & 0x1) << 2;
1399 imm |= ((encoding >> 12) & 0x1) << 9;
1400 imm |= ((encoding >> 6) & 0x1) << 4;
1401 imm |= ((encoding >> 5) & 0x1) << 6;
1402 imm |= ((encoding >> 3) & 0x3) << 7;
1403 imm |= ((encoding >> 2) & 0x1) << 5;
1412 uint32_t encoding = 0;
1413 encoding |= ((imm >> 4) & 0x3) << 11;
1414 encoding |= ((imm >> 6) & 0xF) << 7;
1415 encoding |= ((imm >> 2) & 0x1) << 6;
1416 encoding |= ((imm >> 3) & 0x1) << 5;
1421 imm |= ((encoding >> 11) & 0x3) << 4;
1422 imm |= ((encoding >> 7) & 0xF) << 6;
1423 imm |= ((encoding >> 6) & 0x1) << 2;
1424 imm |= ((encoding >> 5) & 0x1) << 3;
1521 const uint16_t encoding_;
1524#define DEFINE_TYPED_ENUM_SET(name, storage_t) \
1528 constexpr explicit name(storage_t encoding) : encoding_(encoding) {} \
1529 constexpr storage_t encoding() const { \
1532 constexpr bool operator==(const name& other) const { \
1533 return encoding_ == other.encoding_; \
1535 constexpr bool operator!=(const name& other) const { \
1536 return encoding_ != other.encoding_; \
1538 inline constexpr name##Set operator|(const name& other) const; \
1539 inline constexpr name##Set operator|(const name##Set& other) const; \
1542 const storage_t encoding_; \
1544 inline std::ostream& operator<<(std::ostream& stream, const name& element) { \
1545 return stream << #name << "(" << element.encoding() << ")"; \
1549 constexpr
name##Set(name element) \
1550 : encoding_(1u << element.encoding()) {} \
1551 constexpr explicit name##Set(storage_t encoding) : encoding_(encoding) {} \
1552 constexpr static name##Set Empty() { \
1553 return name##Set(0); \
1555 constexpr bool Includes(const name r) const { \
1556 return (encoding_ & (1 << r.encoding())) != 0; \
1558 constexpr bool IncludesAll(const name##Set other) const { \
1559 return (encoding_ & other.encoding_) == other.encoding_; \
1561 constexpr bool IsEmpty() const { \
1562 return encoding_ == 0; \
1564 constexpr bool operator==(const name##Set& other) const { \
1565 return encoding_ == other.encoding_; \
1567 constexpr bool operator!=(const name##Set& other) const { \
1568 return encoding_ != other.encoding_; \
1570 constexpr name##Set operator|(const name& other) const { \
1571 return name##Set(encoding_ | (1 << other.encoding())); \
1573 constexpr name##Set operator|(const name##Set& other) const { \
1574 return name##Set(encoding_ | other.encoding_); \
1576 constexpr name##Set operator&(const name##Set& other) const { \
1577 return name##Set(encoding_ & other.encoding_); \
1581 storage_t encoding_; \
1583 constexpr name##Set name::operator|(const name& other) const { \
1584 return name##Set((1u << encoding_) | (1u << other.encoding_)); \
1586 constexpr name##Set name::operator|(const name##Set& other) const { \
1587 return other | *this; \
1612#define LINK_REGISTER RA
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)
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)
intptr_t DecodeBTypeImm(uint32_t encoded)
intx_t DecodeCMem8Imm(uint32_t encoding)
const RegList kReservedCpuRegisters
const Register kWriteBarrierObjectReg
static constexpr Extension RV_Zbc(9)
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
constexpr uword kBreakInstructionFiller
const Register ARGS_DESC_REG
static constexpr Extension RV_Zalasr(10)
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
static constexpr Extension RV_Zbs(8)
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
COMPILE_ASSERT(kUnreachableReference==WeakTable::kNoValue)
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
DECLARE_FLAG(bool, show_invisible_frames)
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