Home
last modified time | relevance | path

Searched full:register (Results 1 – 25 of 732) sorted by relevance

12345678910>>...30

/arkcompiler/ets_runtime/ecmascript/compiler/assembler/aarch64/
Dassembler_aarch64.h23 class Register {
25 Register(RegisterId reg, RegisterType type = RegisterType::X) : reg_(reg), type_(type) {}; in reg_()
27 Register W() const in W()
29 return Register(reg_, RegisterType::W); in W()
32 Register X() const in X()
34 return Register(reg_, RegisterType::X); in X()
62 inline bool operator !=(const Register &other)
67 inline bool operator ==(const Register &other)
99 return 8; // 8:Register size in GetRegSize()
101 return 16; // 16:Register size in GetRegSize()
[all …]
Dextend_assembler.cpp21 Register ExtendedAssembler::ghcJSCallDispacherArgs_[JS_CALL_DISPATCHER_ARGS_COUNT] = {
24 Register ExtendedAssembler::cppJSCallDispacherArgs_[JS_CALL_DISPATCHER_ARGS_COUNT] = {
30 Register sp(SP); in CalleeSave()
31 Stp(Register(X27), Register(X28), MemoryOperand(sp, -PAIR_SLOT_SIZE, PREINDEX)); in CalleeSave()
32 Stp(Register(X25), Register(X26), MemoryOperand(sp, -PAIR_SLOT_SIZE, PREINDEX)); in CalleeSave()
33 Stp(Register(X23), Register(X24), MemoryOperand(sp, -PAIR_SLOT_SIZE, PREINDEX)); in CalleeSave()
34 Stp(Register(X21), Register(X22), MemoryOperand(sp, -PAIR_SLOT_SIZE, PREINDEX)); in CalleeSave()
35 Stp(Register(X19), Register(X20), MemoryOperand(sp, -PAIR_SLOT_SIZE, PREINDEX)); in CalleeSave()
45 Register sp(SP); in CalleeRestore()
50 Ldp(Register(X19), Register(X20), MemoryOperand(sp, PAIR_SLOT_SIZE, POSTINDEX)); in CalleeRestore()
[all …]
Dmacro_assembler_aarch64.h56 const std::vector<aarch64::Register> registerParamVec {
57 … aarch64::Register(aarch64::X0), aarch64::Register(aarch64::X1), aarch64::Register(aarch64::X2),
58 … aarch64::Register(aarch64::X3), aarch64::Register(aarch64::X4), aarch64::Register(aarch64::X5),
59 aarch64::Register(aarch64::X6), aarch64::Register(aarch64::X7) };
60 …const aarch64::Register GLUE_REGISTER = aarch64::Register(aarch64::X19); // same with ghc callco…
61 const aarch64::Register LOCAL_SCOPE_REGISTER = aarch64::Register(aarch64::X11);
62 const aarch64::Register RETURN_REGISTER = aarch64::Register(aarch64::X0);
63 void MovParameterIntoParamReg(MacroParameter param, aarch64::Register paramReg);
64 … void PickLoadStoreInsn(aarch64::Register reg, aarch64::MemoryOperand memOpnd, bool isLoad = true);
69 void CopyImm(aarch64::Register destReg, int64_t imm, uint32_t size);
[all …]
Dextend_assembler.h44 void PushArgc(int32_t argc, Register op, Register fp);
45 void PushArgc(Register argc, Register op, Register fp);
46 void Align16(Register fp);
48 Register TempRegister1() in TempRegister1()
57 Register TempRegister2() in TempRegister2()
66 Register AvailableRegister1() const in AvailableRegister1()
68 // X11 is neither callee saved reegister nor argument register in AvailableRegister1()
71 Register AvailableRegister2() const in AvailableRegister2()
73 // X12 is neither callee saved reegister nor argument register in AvailableRegister2()
76 Register AvailableRegister3() const in AvailableRegister3()
[all …]
Dassembler_aarch64.cpp90 void AssemblerAarch64::Ldp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Ldp()
124 void AssemblerAarch64::Stp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Stp()
277 void AssemblerAarch64::Ldr(const Register &rt, const MemoryOperand &operand, Scale scale) in Ldr()
291 Register rm = operand.GetRegisterOffset(); in Ldr()
292 Register rn = operand.GetRegBase(); in Ldr()
303 void AssemblerAarch64::Ldr(const Register &rt, const MemoryOperand &operand) in Ldr()
308 void AssemblerAarch64::Ldrh(const Register &rt, const MemoryOperand &operand) in Ldrh()
314 void AssemblerAarch64::Ldrb(const Register &rt, const MemoryOperand &operand) in Ldrb()
320 void AssemblerAarch64::Str(const Register &rt, const MemoryOperand &operand) in Str()
357 void AssemblerAarch64::Ldur(const Register &rt, const MemoryOperand &operand) in Ldur()
[all …]
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/x64/
Dassembler_x64.h21 enum Register : uint8_t { enum
63 Operand(Register base, int32_t disp);
64 Operand(Register base, Register index, Scale scale, int32_t disp);
65 Operand(Register index, Scale scale, int32_t disp);
68 void BuildSIB(Scale scale, Register index, Register base);
69 void BuildModerm(int32_t mode, Register rm);
89 void Pushq(Register x);
91 void Push(Register x);
92 void Popq(Register x);
93 void Pop(Register x);
[all …]
Dextended_assembler_x64.h41 void PushArgsWithArgv(Register argc, Register argv, Register operatorRegister);
42 void PushArgc(int32_t argc, Register tempArgcRegister);
43 void PushArgc(Register argcRegister, Register tempArgcRegister);
45 Register TempRegister() in TempRegister()
48 LOG_COMPILER(FATAL) << "temp register inuse."; in TempRegister()
54 Register AvailableRegister1() const in AvailableRegister1()
56 // r10 is neither callee saved reegister nor argument register in AvailableRegister1()
59 Register AvailableRegister2() const in AvailableRegister2()
61 // r11 is neither callee saved reegister nor argument register in AvailableRegister2()
64 Register CppJSCallAvailableRegister1() const in CppJSCallAvailableRegister1()
[all …]
/arkcompiler/ets_runtime/ecmascript/compiler/trampoline/aarch64/
Dcommon_call.h64 …void PushUndefinedWithArgc(ExtendedAssembler *assembler, Register glue, Register argc, Register te…
65 Register fp, Label *next, Label *stackOverflow);
66 …atic void PushArgsWithArgv(ExtendedAssembler *assembler, Register glue, Register argc, Register ar…
67 Register op, Register fp, Label *next, Label *stackOverflow);
68 …oid PushArgsWithArgvInPair(ExtendedAssembler *assembler, Register argc, Register argv, Register pa…
69 Register op1, Register op2, Label *next);
72 …void StackOverflowCheck(ExtendedAssembler *assembler, Register glue, Register currentSlot, Registe…
73 Register op, Label *stackOverflow);
74 static void PushLeaveFrame(ExtendedAssembler *assembler, Register glue);
113 static void JSCallCheck(ExtendedAssembler *assembler, Register jsfunc, Register taggedValue,
[all …]
Doptimized_fast_call.cpp44 Register glueReg(X0); in OptimizedFastCallEntry()
45 Register argc(X1); in OptimizedFastCallEntry()
46 Register argV(X2); in OptimizedFastCallEntry()
47 Register prevFpReg(X3); in OptimizedFastCallEntry()
48 Register sp(SP); in OptimizedFastCallEntry()
51 __ Mov(Register(X3), argc); in OptimizedFastCallEntry()
52 __ Mov(Register(X4), argV); in OptimizedFastCallEntry()
53 Register tmpArgc(X3); in OptimizedFastCallEntry()
54 Register tmpArgV(X4); in OptimizedFastCallEntry()
56 __ Mov(Register(X20), glueReg); in OptimizedFastCallEntry()
[all …]
Doptimized_call.cpp60 Register glue(X0); in CallRuntime()
61 Register fp(FP); in CallRuntime()
62 Register tmp(X19); in CallRuntime()
63 Register sp(SP); in CallRuntime()
64 Register argC(X1); in CallRuntime()
65 Register argV(X2); in CallRuntime()
70 Register frameType(X2); in CallRuntime()
79 Register rtfunc(X19); in CallRuntime()
99 void OptimizedCall::IncreaseStackForArguments(ExtendedAssembler *assembler, Register argc, Register in IncreaseStackForArguments()
102 Register sp(SP); in IncreaseStackForArguments()
[all …]
Dcommon_call.cpp36 Register fp(X29); in PushAsmInterpBridgeFrame()
37 Register sp(SP); in PushAsmInterpBridgeFrame()
40 Register frameTypeRegister = __ TempRegister1(); in PushAsmInterpBridgeFrame()
44 …__ Stp(frameTypeRegister, Register(X30), MemoryOperand(sp, -2 * FRAME_SLOT_SIZE, AddrMode::PREINDE… in PushAsmInterpBridgeFrame()
46 … __ Stp(Register(Zero), Register(FP), MemoryOperand(sp, -2 * FRAME_SLOT_SIZE, AddrMode::PREINDEX)); in PushAsmInterpBridgeFrame()
56 Register sp(SP); in PopAsmInterpBridgeFrame()
62 … __ Ldp(Register(Zero), Register(FP), MemoryOperand(sp, 2 * FRAME_SLOT_SIZE, AddrMode::POSTINDEX)); in PopAsmInterpBridgeFrame()
64 …__ Ldp(Register(Zero), Register(X30), MemoryOperand(sp, 2 * FRAME_SLOT_SIZE, AddrMode::POSTINDEX)); in PopAsmInterpBridgeFrame()
68 void CommonCall::PushLeaveFrame(ExtendedAssembler *assembler, Register glue) in PushLeaveFrame()
71 Register frameType = __ TempRegister2(); in PushLeaveFrame()
[all …]
Dasm_interpreter_call.cpp76 Register glueRegister(X0); in AsmInterpEntryDispatch()
77 Register argcRegister(X4, W); in AsmInterpEntryDispatch()
78 Register argvRegister(X5); in AsmInterpEntryDispatch()
79 Register callTargetRegister(X1); in AsmInterpEntryDispatch()
80 Register callFieldRegister(X3); in AsmInterpEntryDispatch()
81 Register bitFieldRegister(X16); in AsmInterpEntryDispatch()
82 Register tempRegister(X17); // can not be used to store any variable in AsmInterpEntryDispatch()
83 Register functionTypeRegister(X18, W); in AsmInterpEntryDispatch()
111 Register runtimeId(X11); in AsmInterpEntryDispatch()
112 Register trampoline(X12); in AsmInterpEntryDispatch()
[all …]
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/tests/
Dassembler_aarch64_test.cpp136 __ Mov(Register(X1), Immediate(0xffff000012345678)); in HWTEST_F_L0()
137 __ Mov(Register(X2), Immediate(0x12345678abcd00ef)); in HWTEST_F_L0()
138 __ Mov(Register(X3), Immediate(0x7fff001234)); in HWTEST_F_L0()
139 __ Mov(Register(X4).W(), Immediate(0xff0000ff)); in HWTEST_F_L0()
151 __ Mov(Register(X1), Register(X2)); in HWTEST_F_L0()
152 __ Mov(Register(X2), Register(SP)); in HWTEST_F_L0()
153 __ Mov(Register(X1, W), Register(X2, W)); in HWTEST_F_L0()
167 __ Stp(Register(X1), Register(X2), MemoryOperand(Register(SP), 8, POSTINDEX)); in HWTEST_F_L0()
168 __ Ldp(Register(X1), Register(X2), MemoryOperand(Register(SP), 8, PREINDEX)); in HWTEST_F_L0()
169 __ Ldp(Register(X3), Register(X4), MemoryOperand(Register(SP), 8, OFFSET)); in HWTEST_F_L0()
[all …]
/arkcompiler/ets_runtime/ecmascript/compiler/trampoline/x64/
Dcommon_call.h40 static void CopyArgumentWithArgV(ExtendedAssembler *assembler, Register argc, Register argV);
43 static void PushUndefinedWithArgc(ExtendedAssembler *assembler, Register argc);
45 …hArgsWithArgvAndCheckStack(ExtendedAssembler *assembler, Register glue, Register argc, Register ar…
46 Register op1, Register op2, Label *stackOverflow);
47 …c void StackOverflowCheck(ExtendedAssembler *assembler, Register glue, Register numArgs, Register
48 Register op2, Label *stackOverflow);
86 static void JSCallCheck(ExtendedAssembler *assembler, Register jsFuncReg,
88 static void ThrowNonCallableInternal(ExtendedAssembler *assembler, Register glueReg);
89 …static void JSBoundFunctionCallInternal(ExtendedAssembler *assembler, Register jsFuncReg, Label *j…
91 static void PushArgsWithArgV(ExtendedAssembler *assembler, Register jsfunc,
[all …]
Dcommon_call.cpp32 void CommonCall::CopyArgumentWithArgV(ExtendedAssembler *assembler, Register argc, Register argV) in CopyArgumentWithArgV()
35 Register arg = __ AvailableRegister1(); in CopyArgumentWithArgV()
58 Register r13 = __ CppJSCallAvailableRegister1(); in GetArgvAtStack()
59 Register r14 = __ CppJSCallAvailableRegister2(); in GetArgvAtStack()
75 void CommonCall::PushUndefinedWithArgc(ExtendedAssembler *assembler, Register argc) in PushUndefinedWithArgc()
84 …mmonCall::PushArgsWithArgvAndCheckStack(ExtendedAssembler *assembler, Register glue, Register argc, in PushArgsWithArgvAndCheckStack()
85 Register argv, Register op1, Register op2, Label *stackOverflow) in PushArgsWithArgvAndCheckStack()
89 Register opArgc = argc; in PushArgsWithArgvAndCheckStack()
90 Register op = op1; in PushArgsWithArgvAndCheckStack()
92 // use op2 as opArgc and will not change argc register in PushArgsWithArgvAndCheckStack()
[all …]
Dasm_interpreter_call.cpp87 Register glueRegister = __ GlueRegister(); in GeneratorReEnterAsmInterpDispatch()
88 Register contextRegister = rsi; in GeneratorReEnterAsmInterpDispatch()
89 Register prevSpRegister = rbp; in GeneratorReEnterAsmInterpDispatch()
91 Register callTargetRegister = r9; in GeneratorReEnterAsmInterpDispatch()
92 Register methodRegister = rcx; in GeneratorReEnterAsmInterpDispatch()
93 Register tempRegister = r11; // can not be used to store any variable in GeneratorReEnterAsmInterpDispatch()
94 Register opRegister = r8; // can not be used to store any variable in GeneratorReEnterAsmInterpDispatch()
100 Register fpRegister = r10; in GeneratorReEnterAsmInterpDispatch()
102 Register nRegsRegister = rdx; in GeneratorReEnterAsmInterpDispatch()
103 Register regsArrayRegister = r12; in GeneratorReEnterAsmInterpDispatch()
[all …]
/arkcompiler/runtime_core/static_core/compiler/tests/
Dspill_fill_encoder_test.cpp32 {{LocationType::REGISTER, LocationType::STACK, 1U, 0U, DataType::Type::INT64}, in TEST_F()
33 {LocationType::REGISTER, LocationType::STACK, 0U, 2U, DataType::Type::INT64}, in TEST_F()
34 {LocationType::REGISTER, LocationType::REGISTER, 0U, 1U, DataType::Type::INT64}, in TEST_F()
35 {LocationType::REGISTER, LocationType::REGISTER, 1U, 2U, DataType::Type::INT64}, in TEST_F()
36 {LocationType::IMMEDIATE, LocationType::REGISTER, 0U, 0U, DataType::Type::INT64}, in TEST_F()
37 {LocationType::IMMEDIATE, LocationType::REGISTER, 0U, 1U, DataType::Type::INT64}, in TEST_F()
38 {LocationType::STACK, LocationType::REGISTER, 0U, 0U, DataType::Type::INT64}, in TEST_F()
39 {LocationType::STACK, LocationType::REGISTER, 1U, 1U, DataType::Type::INT64}, in TEST_F()
40 {LocationType::STACK, LocationType::REGISTER, 2U, 2U, DataType::Type::INT64}, in TEST_F()
41 {LocationType::REGISTER, LocationType::REGISTER, 2U, 4U, DataType::Type::INT64}, in TEST_F()
[all …]
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/
Dcfi.def32 CFI_DEFINE( def_cfa, , 2, Register, Immediate, Undef )
33 CFI_DEFINE( def_cfa_register, , 1, Register, Undef, Undef )
36 CFI_DEFINE( offset, , 2, Register, Immediate, Undef )
37 CFI_DEFINE( val_offset, , 2, Register, Immediate, Undef )
38 CFI_DEFINE( rel_offset, , 2, Register, Immediate, Undef )
39 CFI_DEFINE( register, , 2, Register, Register, Undef )
40 CFI_DEFINE( restore, , 1, Register, Undef, Undef )
41 CFI_DEFINE( undefined, , 1, Register, Undef, Undef )
42 CFI_DEFINE( same_value, , 1, Register, Undef, Undef )
45 CFI_DEFINE( return_column, , 1, Register, Undef, Undef )
[all …]
/arkcompiler/runtime_core/static_core/verification/models/contexts_merge/
Dcheck_set_intersection_as_lub.als19 fact Validity {all r: Register | r.Valid }
22 fun SuperTypesIntersection[regs: set Register] : set Type
27 -- which is a subtype of register type
28 pred CorrectSubtyping[r: Register, types: set Type]
32 pred MayBeSubstitutedFor[subst, r:Register]
40 Register.holds in Instance
43 some Register.type & Interface
44 some disj r1, r2, r3, arg : Register {
55 example: run Show for 7 but exactly 4 Register, exactly 5 Class, exactly 5 Interface, exactly 3 Ins…
59 #Register >=4
[all …]
/arkcompiler/runtime_core/compiler/optimizer/optimizations/regalloc/
Dreg_map.h28 …* equal to the number of given registers and save map to restore actual codegen register number fr…
29 * register number.
50 bool IsRegAvailable(Register reg, Arch arch) const;
51 Register CodegenToRegallocReg(Register codegen_reg) const;
52 Register RegallocToCodegenReg(Register regalloc_reg) const;
53 Register GetBorder() const in GetBorder()
60 ArenaVector<Register> codegen_reg_map_;
62 Register border_ {0};
/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/regalloc/
Dreg_map.h28 …* equal to the number of given registers and save map to restore actual codegen register number fr…
29 * register number.
50 bool IsRegAvailable(Register reg, Arch arch) const;
51 Register CodegenToRegallocReg(Register codegenReg) const;
52 Register RegallocToCodegenReg(Register regallocReg) const;
53 Register GetBorder() const in GetBorder()
60 ArenaVector<Register> codegenRegMap_;
62 Register border_ {0};
/arkcompiler/runtime_core/static_core/compiler/docs/
Dreg_alloc_linear_scan_doc.md1 # Register allocator
4 `Register allocator` assigns program variables to target CPU registers
17 Current algorithm is based on paper "Linear Scan Register Allocation" by Massimiliano Poletto. Ther…
21Register allocator` works with instructions' lifetime intervals, computed by `LivenessAnalyzer`. I…
28 At this point register allocator resolves location for each instruction's input depending on regist…
30 …hat ends before the user and the segment that starts at the user) and a register is preferred over…
51 REGISTER = 1,
57 `Register allocator` iterates over instructions and inserts `SpillFillInst` in the following cases:
58 * Pop instruction's input form preassigned stack slot to spill-fill register;
59 * Push instruction's result from spill-fill register to preassigned stack slot;
[all …]
/arkcompiler/runtime_core/bytecode_optimizer/
Dreg_encoder.h25 * Register Encoder.
27 * After compiler's register allocation layout of the virtual frame looks like:
38 * The size of the frame is fixed (see register allocator for details).
52 * range temps from free registers if necessary, consistently changing all register
73 compiler::Register reg;
77 RegContent(compiler::Register r, compiler::DataType::Type t) : reg(r), type(t) {} in RegContent()
89 using RegContentMap = ArenaUnorderedMap<compiler::Register, RegContent>;
90 using RegContentVec = ArenaVector<std::pair<compiler::Register, RegContent>>;
137 void RenumberRegs(const compiler::Register min_reg, const compiler::Register delta);
143 compiler::Register GetNumArgsFromGraph() const in GetNumArgsFromGraph()
[all …]
Dreg_encoder.cpp60 static compiler::Register CalculateNumNeededRangeTemps(const compiler::Graph *graph) in CalculateNumNeededRangeTemps()
62 compiler::Register ret = 0; in CalculateNumNeededRangeTemps()
107 auto delta = static_cast<compiler::Register>(num_temps_ - max_num_temps); in RunImpl()
121 for (compiler::Register r = 0; r < num_regs; r++) { in RunImpl()
144 static bool RegNeedsRenumbering(panda::compiler::Register r) in RegNeedsRenumbering()
149 static panda::compiler::Register RenumberReg(const panda::compiler::Register r, const panda::compil… in RenumberReg()
157 …enumberSpillFillRegs(panda::compiler::SpillFillInst *inst, const panda::compiler::Register min_reg, in RenumberSpillFillRegs()
158 const panda::compiler::Register delta) in RenumberSpillFillRegs()
161 if (sf.SrcType() == compiler::LocationType::REGISTER && sf.SrcValue() >= min_reg) { in RenumberSpillFillRegs()
164 if (sf.DstType() == compiler::LocationType::REGISTER && sf.DstValue() >= min_reg) { in RenumberSpillFillRegs()
[all …]
/arkcompiler/runtime_core/static_core/bytecode_optimizer/
Dcommon.h27 constexpr compiler::Register MIN_REGISTER_NUMBER = 0;
28 constexpr compiler::Register MAX_NUM_SHORT_CALL_ARGS = 2;
29 constexpr compiler::Register MAX_NUM_NON_RANGE_ARGS = 4;
30 constexpr compiler::Register MAX_NUM_INPUTS = MAX_NUM_NON_RANGE_ARGS;
31 constexpr ark::compiler::Register NUM_COMPACTLY_ENCODED_REGS = 16;
32 [[maybe_unused]] constexpr compiler::Register MAX_8_BIT_REG = 255 - 1U; // exclude INVALID_REG

12345678910>>...30