v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
|
Go to the source code of this file.
Data Structures | |
class | Registers |
struct | Registers::RegisterAlias |
class | FPURegisters |
struct | FPURegisters::RegisterAlias |
class | Instruction |
Namespaces | |
v8 | |
v8::internal | |
Macros | |
#define | UNIMPLEMENTED_MIPS() |
#define | UNSUPPORTED_MIPS() v8::internal::PrintF("Unsupported instruction.\n") |
Enumerations | |
enum | ArchVariants { kMips32r2, kMips32r1, kLoongson } |
enum | SoftwareInterruptCodes { kCallRtRedirected = 0x10, kBreakpoint = 0x20, kStopCode = 1 << 23, call_rt_redirected = 0xfffff } |
enum | Opcode { AND = 0 << 21, EOR = 1 << 21, SUB = 2 << 21, RSB = 3 << 21, ADD = 4 << 21, ADC = 5 << 21, SBC = 6 << 21, RSC = 7 << 21, TST = 8 << 21, TEQ = 9 << 21, CMP = 10 << 21, CMN = 11 << 21, ORR = 12 << 21, MOV = 13 << 21, BIC = 14 << 21, MVN = 15 << 21, SPECIAL = 0 << kOpcodeShift, REGIMM = 1 << kOpcodeShift, J = ((0 << 3) + 2) << kOpcodeShift, JAL = ((0 << 3) + 3) << kOpcodeShift, BEQ = ((0 << 3) + 4) << kOpcodeShift, BNE = ((0 << 3) + 5) << kOpcodeShift, BLEZ = ((0 << 3) + 6) << kOpcodeShift, BGTZ = ((0 << 3) + 7) << kOpcodeShift, ADDI = ((1 << 3) + 0) << kOpcodeShift, ADDIU = ((1 << 3) + 1) << kOpcodeShift, SLTI = ((1 << 3) + 2) << kOpcodeShift, SLTIU = ((1 << 3) + 3) << kOpcodeShift, ANDI = ((1 << 3) + 4) << kOpcodeShift, ORI = ((1 << 3) + 5) << kOpcodeShift, XORI = ((1 << 3) + 6) << kOpcodeShift, LUI = ((1 << 3) + 7) << kOpcodeShift, COP1 = ((2 << 3) + 1) << kOpcodeShift, BEQL = ((2 << 3) + 4) << kOpcodeShift, BNEL = ((2 << 3) + 5) << kOpcodeShift, BLEZL = ((2 << 3) + 6) << kOpcodeShift, BGTZL = ((2 << 3) + 7) << kOpcodeShift, SPECIAL2 = ((3 << 3) + 4) << kOpcodeShift, SPECIAL3 = ((3 << 3) + 7) << kOpcodeShift, LB = ((4 << 3) + 0) << kOpcodeShift, LH = ((4 << 3) + 1) << kOpcodeShift, LWL = ((4 << 3) + 2) << kOpcodeShift, LW = ((4 << 3) + 3) << kOpcodeShift, LBU = ((4 << 3) + 4) << kOpcodeShift, LHU = ((4 << 3) + 5) << kOpcodeShift, LWR = ((4 << 3) + 6) << kOpcodeShift, SB = ((5 << 3) + 0) << kOpcodeShift, SH = ((5 << 3) + 1) << kOpcodeShift, SWL = ((5 << 3) + 2) << kOpcodeShift, SW = ((5 << 3) + 3) << kOpcodeShift, SWR = ((5 << 3) + 6) << kOpcodeShift, LWC1 = ((6 << 3) + 1) << kOpcodeShift, LDC1 = ((6 << 3) + 5) << kOpcodeShift, SWC1 = ((7 << 3) + 1) << kOpcodeShift, SDC1 = ((7 << 3) + 5) << kOpcodeShift } |
enum | SecondaryField { SLL = ((0 << 3) + 0), MOVCI = ((0 << 3) + 1), SRL = ((0 << 3) + 2), SRA = ((0 << 3) + 3), SLLV = ((0 << 3) + 4), SRLV = ((0 << 3) + 6), SRAV = ((0 << 3) + 7), JR = ((1 << 3) + 0), JALR = ((1 << 3) + 1), MOVZ = ((1 << 3) + 2), MOVN = ((1 << 3) + 3), BREAK = ((1 << 3) + 5), MFHI = ((2 << 3) + 0), MFLO = ((2 << 3) + 2), MULT = ((3 << 3) + 0), MULTU = ((3 << 3) + 1), DIV = ((3 << 3) + 2), DIVU = ((3 << 3) + 3), ADD = 4 << 21, ADDU = ((4 << 3) + 1), SUB = 2 << 21, SUBU = ((4 << 3) + 3), AND = 0 << 21, OR = ((4 << 3) + 5), XOR = ((4 << 3) + 6), NOR = ((4 << 3) + 7), SLT = ((5 << 3) + 2), SLTU = ((5 << 3) + 3), TGE = ((6 << 3) + 0), TGEU = ((6 << 3) + 1), TLT = ((6 << 3) + 2), TLTU = ((6 << 3) + 3), TEQ = 9 << 21, TNE = ((6 << 3) + 6), MUL = ((0 << 3) + 2), CLZ = 1 << 4, CLO = ((4 << 3) + 1), EXT = ((0 << 3) + 0), INS = ((0 << 3) + 4), BLTZ = ((0 << 3) + 0) << 16, BGEZ = ((0 << 3) + 1) << 16, BLTZAL = ((2 << 3) + 0) << 16, BGEZAL = ((2 << 3) + 1) << 16, MFC1 = ((0 << 3) + 0) << 21, CFC1 = ((0 << 3) + 2) << 21, MFHC1 = ((0 << 3) + 3) << 21, MTC1 = ((0 << 3) + 4) << 21, CTC1 = ((0 << 3) + 6) << 21, MTHC1 = ((0 << 3) + 7) << 21, BC1 = ((1 << 3) + 0) << 21, S = 1 << 20, D = ((2 << 3) + 1) << 21, W = 1 << 21, L = 1 << 20, PS = ((2 << 3) + 6) << 21, ROUND_L_S = ((1 << 3) + 0), TRUNC_L_S = ((1 << 3) + 1), CEIL_L_S = ((1 << 3) + 2), FLOOR_L_S = ((1 << 3) + 3), ROUND_W_S = ((1 << 3) + 4), TRUNC_W_S = ((1 << 3) + 5), CEIL_W_S = ((1 << 3) + 6), FLOOR_W_S = ((1 << 3) + 7), CVT_D_S = ((4 << 3) + 1), CVT_W_S = ((4 << 3) + 4), CVT_L_S = ((4 << 3) + 5), CVT_PS_S = ((4 << 3) + 6), ADD_D = ((0 << 3) + 0), SUB_D = ((0 << 3) + 1), MUL_D = ((0 << 3) + 2), DIV_D = ((0 << 3) + 3), SQRT_D = ((0 << 3) + 4), ABS_D = ((0 << 3) + 5), MOV_D = ((0 << 3) + 6), NEG_D = ((0 << 3) + 7), ROUND_L_D = ((1 << 3) + 0), TRUNC_L_D = ((1 << 3) + 1), CEIL_L_D = ((1 << 3) + 2), FLOOR_L_D = ((1 << 3) + 3), ROUND_W_D = ((1 << 3) + 4), TRUNC_W_D = ((1 << 3) + 5), CEIL_W_D = ((1 << 3) + 6), FLOOR_W_D = ((1 << 3) + 7), CVT_S_D = ((4 << 3) + 0), CVT_W_D = ((4 << 3) + 4), CVT_L_D = ((4 << 3) + 5), C_F_D = ((6 << 3) + 0), C_UN_D = ((6 << 3) + 1), C_EQ_D = ((6 << 3) + 2), C_UEQ_D = ((6 << 3) + 3), C_OLT_D = ((6 << 3) + 4), C_ULT_D = ((6 << 3) + 5), C_OLE_D = ((6 << 3) + 6), C_ULE_D = ((6 << 3) + 7), CVT_S_W = ((4 << 3) + 0), CVT_D_W = ((4 << 3) + 1), CVT_S_L = ((4 << 3) + 0), CVT_D_L = ((4 << 3) + 1), NULLSF = 0 } |
enum | Condition { kNoCondition = -1, eq = 0 << 28, ne = 1 << 28, cs = 2 << 28, cc = 3 << 28, mi = 4 << 28, pl = 5 << 28, vs = 6 << 28, vc = 7 << 28, hi = 8 << 28, ls = 9 << 28, ge = 10 << 28, lt = 11 << 28, gt = 12 << 28, le = 13 << 28, al = 14 << 28, kSpecialCondition = 15 << 28, kNumberOfConditions = 16, hs = cs, lo = cc, no_condition = -1, overflow = 0, no_overflow = 1, below = 2, above_equal = 3, equal = 4, not_equal = 5, below_equal = 6, above = 7, negative = 8, positive = 9, parity_even = 10, parity_odd = 11, less = 12, greater_equal = 13, less_equal = 14, greater = 15, carry = below, not_carry = above_equal, zero = equal, not_zero = not_equal, sign = negative, not_sign = positive, kNoCondition = -1, overflow = 0, no_overflow = 1, Uless = 2, Ugreater_equal = 3, equal = 4, not_equal = 5, Uless_equal = 6, Ugreater = 7, negative = 8, positive = 9, parity_even = 10, parity_odd = 11, less = 12, greater_equal = 13, less_equal = 14, greater = 15, cc_always = 16, carry = below, not_carry = above_equal, zero = equal, eq = 0 << 28, not_zero = not_equal, ne = 1 << 28, nz = not_equal, sign = negative, not_sign = positive, mi = 4 << 28, pl = 5 << 28, hi = 8 << 28, ls = 9 << 28, ge = 10 << 28, lt = 11 << 28, gt = 12 << 28, le = 13 << 28, hs = cs, lo = cc, al = 14 << 28, cc_default = kNoCondition, no_condition = -1, overflow = 0, no_overflow = 1, below = 2, above_equal = 3, equal = 4, not_equal = 5, below_equal = 6, above = 7, negative = 8, positive = 9, parity_even = 10, parity_odd = 11, less = 12, greater_equal = 13, less_equal = 14, greater = 15, always = 16, never = 17, carry = below, not_carry = above_equal, zero = equal, not_zero = not_equal, sign = negative, not_sign = positive, last_condition = greater } |
enum | FPUCondition { kNoFPUCondition = -1, F = 0, UN = 1, EQ = 2, UEQ = 3, OLT = 4, ULT = 5, OLE = 6, ULE = 7 } |
enum | FPURoundingMode { RN = 0 << 22, RZ = 3 << 22, RP = 1 << 22, RM = 2 << 22, kRoundToNearest = RN, kRoundToZero = RZ, kRoundToPlusInf = RP, kRoundToMinusInf = RM } |
enum | CheckForInexactConversion { kCheckForInexactConversion, kDontCheckForInexactConversion, kCheckForInexactConversion, kDontCheckForInexactConversion } |
enum | Hint { no_hint = 0, no_hint = 0 } |
Functions | |
STATIC_ASSERT (kMaxWatchpointCode< kMaxStopCode) | |
Condition | NegateCondition (Condition cond) |
Condition | ReverseCondition (Condition cond) |
Hint | NegateHint (Hint ignored) |
Variables | |
const bool | IsMipsSoftFloatABI = true |
const int | kInvalidRegister = -1 |
const int | kNumSimuRegisters = 35 |
const int | kNumFPURegisters = 32 |
const int | kInvalidFPURegister = -1 |
const int | kFCSRRegister = 31 |
const int | kInvalidFPUControlRegister = -1 |
const uint32_t | kFPUInvalidResult = (uint32_t) (1 << 31) - 1 |
const uint32_t | kFCSRInexactFlagBit = 2 |
const uint32_t | kFCSRUnderflowFlagBit = 3 |
const uint32_t | kFCSROverflowFlagBit = 4 |
const uint32_t | kFCSRDivideByZeroFlagBit = 5 |
const uint32_t | kFCSRInvalidOpFlagBit = 6 |
const uint32_t | kFCSRInexactFlagMask = 1 << kFCSRInexactFlagBit |
const uint32_t | kFCSRUnderflowFlagMask = 1 << kFCSRUnderflowFlagBit |
const uint32_t | kFCSROverflowFlagMask = 1 << kFCSROverflowFlagBit |
const uint32_t | kFCSRDivideByZeroFlagMask = 1 << kFCSRDivideByZeroFlagBit |
const uint32_t | kFCSRInvalidOpFlagMask = 1 << kFCSRInvalidOpFlagBit |
const uint32_t | kFCSRFlagMask |
const uint32_t | kFCSRExceptionFlagMask = kFCSRFlagMask ^ kFCSRInexactFlagMask |
const uint32_t | kMaxWatchpointCode = 31 |
const int | kOpcodeShift = 26 |
const int | kOpcodeBits = 6 |
const int | kRsShift = 21 |
const int | kRsBits = 5 |
const int | kRtShift = 16 |
const int | kRtBits = 5 |
const int | kRdShift = 11 |
const int | kRdBits = 5 |
const int | kSaShift = 6 |
const int | kSaBits = 5 |
const int | kFunctionShift = 0 |
const int | kFunctionBits = 6 |
const int | kLuiShift = 16 |
const int | kImm16Shift = 0 |
const int | kImm16Bits = 16 |
const int | kImm26Shift = 0 |
const int | kImm26Bits = 26 |
const int | kImm28Shift = 0 |
const int | kImm28Bits = 28 |
const int | kImmFieldShift = 2 |
const int | kFsShift = 11 |
const int | kFsBits = 5 |
const int | kFtShift = 16 |
const int | kFtBits = 5 |
const int | kFdShift = 6 |
const int | kFdBits = 5 |
const int | kFCccShift = 8 |
const int | kFCccBits = 3 |
const int | kFBccShift = 18 |
const int | kFBccBits = 3 |
const int | kFBtrueShift = 16 |
const int | kFBtrueBits = 1 |
const int | kOpcodeMask = ((1 << kOpcodeBits) - 1) << kOpcodeShift |
const int | kImm16Mask = ((1 << kImm16Bits) - 1) << kImm16Shift |
const int | kImm26Mask = ((1 << kImm26Bits) - 1) << kImm26Shift |
const int | kImm28Mask = ((1 << kImm28Bits) - 1) << kImm28Shift |
const int | kRsFieldMask = ((1 << kRsBits) - 1) << kRsShift |
const int | kRtFieldMask = ((1 << kRtBits) - 1) << kRtShift |
const int | kRdFieldMask = ((1 << kRdBits) - 1) << kRdShift |
const int | kSaFieldMask = ((1 << kSaBits) - 1) << kSaShift |
const int | kFunctionFieldMask = ((1 << kFunctionBits) - 1) << kFunctionShift |
const int | kHiMask = 0xffff << 16 |
const int | kLoMask = 0xffff |
const int | kSignMask = 0x80000000 |
const int | kJumpAddrMask = (1 << (kImm26Bits + kImmFieldShift)) - 1 |
const uint32_t | kFPURoundingModeMask = 3 << 0 |
const Instr | kPushInstruction |
const Instr | kLwRegFpOffsetPattern |
const Instr | kSwRegFpOffsetPattern |
const Instr | kLwRegFpNegOffsetPattern |
const Instr | kSwRegFpNegOffsetPattern |
const Instr | kRtMask |
const Instr | kLwSwInstrTypeMask |
const Instr | kLwSwInstrArgumentMask |
const Instr | kLwSwOffsetMask |
const Instr | rtCallRedirInstr = SPECIAL | BREAK | call_rt_redirected << 6 |
const Instr | nopInstr = 0 |
const int | kCArgSlotCount = 4 |
const int | kCArgsSlotsSize = kCArgSlotCount * Instruction::kInstrSize |
const int | kJSArgsSlotsSize = 0 * Instruction::kInstrSize |
const int | kBArgsSlotsSize = 0 * Instruction::kInstrSize |
const int | kBranchReturnOffset = 2 * Instruction::kInstrSize |
#define UNIMPLEMENTED_MIPS | ( | ) |
Definition at line 37 of file constants-mips.h.
#define UNSUPPORTED_MIPS | ( | ) | v8::internal::PrintF("Unsupported instruction.\n") |
Definition at line 40 of file constants-mips.h.
enum ArchVariants |
Enumerator | |
---|---|
kMips32r2 | |
kMips32r1 | |
kLoongson |
Definition at line 42 of file constants-mips.h.
const bool IsMipsSoftFloatABI = true |
Definition at line 68 of file constants-mips.h.