/arkcompiler/ets_runtime/ecmascript/compiler/trampoline/aarch64/ |
H A D | optimized_fast_call.cpp | 59 __ Add(tmpArgV, tmpArgV, Immediate(DOUBLE_SLOT_SIZE));
in OptimizedFastCallEntry() 118 __ Add(__ AvailableRegister4(), sp, Immediate(4 * FRAME_SLOT_SIZE)); // 4 skip fp lr type x19
in OptimizedFastCallAndPushArgv() 130 __ Add(expectedNumArgs, expectedNumArgs, Immediate(NUM_MANDATORY_JSFUNC_ARGS));
in OptimizedFastCallAndPushArgv() 138 __ Cmp(actualNumArgsReg, Immediate(3)); // 3: 3 args
in OptimizedFastCallAndPushArgv() 140 __ Mov(Register(X3), Immediate(JSTaggedValue::VALUE_UNDEFINED));
in OptimizedFastCallAndPushArgv() 141 __ Mov(Register(X4), Immediate(JSTaggedValue::VALUE_UNDEFINED));
in OptimizedFastCallAndPushArgv() 142 __ Mov(Register(X5), Immediate(JSTaggedValue::VALUE_UNDEFINED));
in OptimizedFastCallAndPushArgv() 143 __ Mov(Register(X6), Immediate(JSTaggedValue::VALUE_UNDEFINED));
in OptimizedFastCallAndPushArgv() 144 __ Mov(Register(X7), Immediate(JSTaggedValue::VALUE_UNDEFINED));
in OptimizedFastCallAndPushArgv() 150 __ Cmp(actualNumArgsReg, Immediate( in OptimizedFastCallAndPushArgv() [all...] |
H A D | optimized_call.cpp | 72 __ Mov(frameType, Immediate(static_cast<int64_t>(FrameType::LEAVE_FRAME))); in CallRuntime() 75 __ Add(fp, sp, Immediate(2 * FRAME_SLOT_SIZE)); // 2 : 2 means pairs in CallRuntime() 85 __ Add(argV, fp, Immediate(GetStackArgOffSetToFp(2))); // 2: the third arg id in CallRuntime() 94 __ Add(sp, sp, Immediate(2 * FRAME_SLOT_SIZE)); in CallRuntime() 106 __ Add(argc, argc, Immediate(numExtraArgs)); in IncreaseStackForArguments() 112 __ Sub(currentSp, currentSp, Immediate(FRAME_SLOT_SIZE)); in IncreaseStackForArguments() 157 __ Add(tmpArgV, tmpArgV, Immediate(TRIPLE_SLOT_SIZE)); in JSFunctionEntry() 159 __ Cmp(Register(X6), Immediate(1)); in JSFunctionEntry() 224 __ Add(expectedNumArgs, expectedNumArgs, Immediate(NUM_MANDATORY_JSFUNC_ARGS)); in OptimizedCallAndPushArgv() 226 __ Add(argV, sp, Immediate(funcSlotOffSe in OptimizedCallAndPushArgv() [all...] |
H A D | common_call.cpp | 42 __ Mov(frameTypeRegister, Immediate(static_cast<int64_t>(FrameType::ASM_INTERPRETER_BRIDGE_FRAME))); in PushAsmInterpBridgeFrame() 47 __ Add(fp, sp, Immediate(24)); // 24: skip frame type, prevSp, pc in PushAsmInterpBridgeFrame() 76 __ Mov(frameType, Immediate(static_cast<int64_t>(FrameType::LEAVE_FRAME))); in PushLeaveFrame() 80 __ Add(Register(FP), sp, Immediate(DOUBLE_SLOT_SIZE)); in PushLeaveFrame() 102 __ Cmp(argc.W(), Immediate(0)); in PushArgsWithArgv() 112 __ Sub(argc.W(), argc.W(), Immediate(1)); in PushArgsWithArgv() 121 __ Cmp(argc.W(), Immediate(0)); in PushArgsWithArgvInPair() 131 __ Sub(argc.W(), argc.W(), Immediate(1)); // 1: push the top arg already in PushArgsWithArgvInPair() 141 __ Cmp(argc.W(), Immediate(1)); // 1: argc is odd number in copyArgs in PushArgsWithArgvInPair() 147 __ Sub(argc.W(), argc.W(), Immediate( in PushArgsWithArgvInPair() [all...] |
H A D | asm_interpreter_call.cpp | 87 __ Mov(tempRegister.W(), Immediate(static_cast<int64_t>(JSType::JS_FUNCTION_FIRST))); in AsmInterpEntryDispatch() 90 __ Mov(tempRegister.W(), Immediate(static_cast<int64_t>(JSType::JS_FUNCTION_LAST))); in AsmInterpEntryDispatch() 106 __ Add(argvRegister, argvRegister, Immediate(NUM_MANDATORY_JSFUNC_ARGS * JSTaggedValue::TaggedTypeSize())); in AsmInterpEntryDispatch() 113 __ Mov(runtimeId, Immediate(kungfu::RuntimeStubCSigns::ID_ThrowNotCallableException)); in AsmInterpEntryDispatch() 155 __ Cmp(declaredNumArgsRegister, Immediate(argc)); in JSCallCommonEntry() 177 __ Mov(acc, Immediate(JSTaggedValue::VALUE_EXCEPTION)); in JSCallCommonEntry() 273 __ Sub(diffRegister.W(), declaredNumArgsRegister.W(), Immediate(argc)); in JSCallCommonSlowPath() 293 __ Cmp(declaredNumArgsRegister, Immediate(0)); in JSCallCommonSlowPath() 306 __ Cmp(declaredNumArgsRegister, Immediate(1)); in JSCallCommonSlowPath() 526 __ Mov(temp, Immediate(JSTaggedValu in CallNativeWithArgv() [all...] |
H A D | common_call.h | 256 static void SaveFpAndJumpSize(ExtendedAssembler *assembler, Immediate jumpSize);
|
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/x64/ |
H A D | assembler_x64.h | 48 class Immediate { class 50 Immediate(int32_t value) : value_(value) {} in Immediate() function in panda::ecmascript::x64::Immediate 51 ~Immediate() = default; 82 // | prefixs| opcode| modR/M| SIB| Displacement| Immediate| 90 void Pushq(Immediate x); 97 void Movq(Immediate src, Operand dst); 98 void Movq(Immediate src, Register dst); 101 void Addq(Immediate src, Register dst); 103 void Addl(Immediate src, Register dst); 104 void Subq(Immediate sr [all...] |
H A D | macro_assembler_x64.cpp | 22 void MacroAssemblerX64::Move(const StackSlotOperand &dstStackSlot, Immediate value) in Move() 41 void MacroAssemblerX64::Cmp(const StackSlotOperand &stackSlot, Immediate value) in Cmp() 46 assembler.Cmp(x64::Immediate(value.GetValue()), LOCAL_SCOPE_REGISTER); in Cmp() 113 assembler.Movq(panda::ecmascript::x64::Immediate(static_cast<int32_t>(num)), paramReg); in MovParameterIntoParamReg() 118 assembler.Movq(panda::ecmascript::x64::Immediate(static_cast<int32_t>(num)), paramReg); in MovParameterIntoParamReg() 123 assembler.Movq(panda::ecmascript::x64::Immediate(num), paramReg); in MovParameterIntoParamReg()
|
H A D | assembler_x64.cpp | 26 void AssemblerX64::Pushq(Immediate x) in Pushq() 57 void AssemblerX64::Addq(Immediate src, Register dst) in Addq() 87 void AssemblerX64::Addl(Immediate src, Register dst) in Addl() 109 void AssemblerX64::Subq(Immediate src, Register dst) in Subq() 139 void AssemblerX64::Subl(Immediate src, Register dst) in Subl() 161 void AssemblerX64::Cmpq(Immediate src, Register dst) in Cmpq() 183 void AssemblerX64::Cmpb(Immediate src, Register dst) in Cmpb() 210 void AssemblerX64::Cmpl(Immediate src, Register dst) in Cmpl() 232 void AssemblerX64::Cmp(Immediate src, Register dst) in Cmp() 281 void AssemblerX64::Movq(Immediate sr [all...] |
H A D | macro_assembler_x64.h | 37 void Move(const StackSlotOperand &dstStackSlot, Immediate value) override; 39 void Cmp(const StackSlotOperand &stackSlot, Immediate value) override;
|
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/tests/ |
H A D | assembler_aarch64_test.cpp | 136 __ 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() 216 __ Add(Register(SP), Register(SP), Immediate(8)); in HWTEST_F_L0() 217 __ Add(Register(SP), Register(SP), Immediate(-8)); in HWTEST_F_L0() 234 __ Cmp(Register(X1), Immediate(8)); in HWTEST_F_L0() 255 __ Cmp(Register(X1), Immediate(8)); in HWTEST_F_L0() 260 __ Mov(Register(X0), Immediate(0xa)); in HWTEST_F_L0() 264 __ Mov(Register(X0), Immediate( in HWTEST_F_L0() [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/ |
H A D | bytecodes.cpp | 626 info.inputs.emplace_back(Immediate(READ_INST_32_0())); in InitBytecodeInfo() 630 info.inputs.emplace_back(Immediate(READ_INST_64_0())); in InitBytecodeInfo() 757 info.inputs.emplace_back(Immediate(imm)); in InitBytecodeInfo() 762 info.inputs.emplace_back(Immediate(imm)); in InitBytecodeInfo() 893 info.inputs.emplace_back(Immediate(length)); in InitBytecodeInfo() 903 info.inputs.emplace_back(Immediate(length)); in InitBytecodeInfo() 912 info.inputs.emplace_back(Immediate(length)); in InitBytecodeInfo() 922 info.inputs.emplace_back(Immediate(length)); in InitBytecodeInfo() 954 info.inputs.emplace_back(Immediate(level)); in InitBytecodeInfo() 955 info.inputs.emplace_back(Immediate(slo in InitBytecodeInfo() [all...] |
H A D | bytecodes.h | 518 class Immediate { class 520 explicit Immediate(ImmValueType value) : value_(value) in Immediate() function in panda::ecmascript::kungfu::Immediate 523 ~Immediate() = default; 645 std::vector<std::variant<ConstDataId, ICSlotId, Immediate, VirtualRegister>> inputs {};
|
H A D | bytecode_circuit_builder.cpp | 696 } else if (std::holds_alternative<Immediate>(input)) { in CreateGateInList() 698 std::get<Immediate>(input).GetValue(), in CreateGateInList() 760 std::get<Immediate>(info.inputs[0]).ToJSTaggedValueInt(), in NewConst() 765 std::get<Immediate>(info.inputs.at(0)).ToJSTaggedValueDouble(), in NewConst()
|
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/aarch64/ |
H A D | assembler_aarch64.h | 117 class Immediate { class 119 Immediate(int64_t value) : value_(value) {} in Immediate() function in panda::ecmascript::aarch64::Immediate 120 ~Immediate() = default; 159 Operand(Immediate imm) in Operand() 214 inline Immediate GetImmediate() const in GetImmediate() 223 Immediate immediate_; 255 Immediate GetImmediate() const in GetImmediate() 287 Immediate offsetImm_; 310 void Mov(const Register &rd, const Immediate &imm); 353 void Brk(const Immediate [all...] |
H A D | macro_assembler_aarch64.cpp | 36 void MacroAssemblerAArch64::Move(const StackSlotOperand &dstStackSlot, Immediate value) in Move() 41 assembler.Mov(LOCAL_SCOPE_REGISTER, aarch64::Immediate(value.GetValue())); in Move() 58 void MacroAssemblerAArch64::Cmp(const StackSlotOperand &stackSlot, Immediate value) in Cmp() 63 aarch64::Operand immOpnd = aarch64::Immediate(value.GetValue()); in Cmp() 100 assembler.Mov(LOCAL_SCOPE_REGISTER, aarch64::Immediate(funcAddress)); in CallBuiltin() 153 assembler.Mov(paramReg, aarch64::Immediate(static_cast<int64_t>(num))); in MovParameterIntoParamReg() 158 assembler.Mov(paramReg, aarch64::Immediate(static_cast<int64_t>(num))); in MovParameterIntoParamReg() 163 assembler.Mov(paramReg, aarch64::Immediate(static_cast<int64_t>(num))); in MovParameterIntoParamReg() 323 assembler.Mov(destReg, aarch64::Immediate(imm)); in CopyImm() 344 assembler.Mov(destReg, aarch64::Immediate(srcLowe in CopyImm() [all...] |
H A D | macro_assembler_aarch64.h | 42 void Move(const StackSlotOperand &dstStackSlot, Immediate value) override; 44 void Cmp(const StackSlotOperand &stackSlot, Immediate value) override;
|
H A D | extend_assembler.cpp | 112 Mov(op, Immediate(JSTaggedValue(argc).GetRawData())); in PushArgc() 128 Sub(fp, fp, Immediate(8)); in Align16()
|
H A D | assembler_aarch64.cpp | 381 void AssemblerAarch64::Mov(const Register &rd, const Immediate &imm) in Mov() 416 ASSERT_PRINT(regSize == RegXSize, "all 32-bit Immediate will be transformed with a MOVZ/MOVK pair"); in Mov() 462 Add(rd, rm, Operand(Immediate(0))); in Mov() 633 firstshift = (tz / 16) * 16; // 16 : 16 means the operand of MOVK/N/Z is 16 bits Immediate in EmitMovInstruct() 635 lastshift = ((63 - lz) / 16) * 16; // 16 : 16 means the operand of MOVK/N/Z is 16 bits Immediate in EmitMovInstruct() 648 firstshift += 16; // 16 : 16 means the operand of MOVK is 16 bits Immediate in EmitMovInstruct() 1141 void AssemblerAarch64::Brk(const Immediate &imm) in Brk()
|
/arkcompiler/ets_runtime/ecmascript/compiler/baseline/ |
H A D | baseline_assembler.h | 111 void Move(VirtualRegister interpreterDestReg, Immediate value); 112 void Move(SpecialRegister destReg, Immediate value); 117 void Cmp(SpecialRegister reg, Immediate value);
|
H A D | baseline_assembler.cpp | 37 void BaselineAssembler::Move(VirtualRegister interpreterDestReg, Immediate value) in Move() 45 void BaselineAssembler::Move(SpecialRegister destReg, Immediate value) in Move() 96 void BaselineAssembler::Cmp(SpecialRegister reg, Immediate value) in Cmp()
|
H A D | baseline_compiler.cpp | 280 LOG_INST() << " ldundefined " << std::hex << Immediate(JSTaggedValue::VALUE_UNDEFINED).GetValue(); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 282 GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_UNDEFINED)); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 290 GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue(base::NAN_VALUE).GetRawData())); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 298 GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue(base::POSITIVE_INFINITY).GetRawData())); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 305 LOG_INST() << " ldnull " << std::hex << Immediate(JSTaggedValue::VALUE_NULL).GetValue(); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 306 GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_NULL)); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 313 LOG_INST() << " ldtrue " << std::hex << Immediate(JSTaggedValue::VALUE_TRUE).GetValue(); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 314 GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValue::VALUE_TRUE)); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 321 LOG_INST() << " ldfalse " << std::hex << Immediate(JSTaggedValue::VALUE_FALSE).GetValue(); in BYTECODE_BASELINE_HANDLER_IMPLEMENT() 322 GetBaselineAssembler().Move(SpecialRegister::ACC_REGISTER, Immediate(JSTaggedValu in BYTECODE_BASELINE_HANDLER_IMPLEMENT() [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/trampoline/x64/ |
H A D | optimized_fast_call.cpp | 127 __ Cmp(Immediate(3), actualNumArgsReg); // 3: func new this
in OptimizedFastCallAndPushArgv() 139 __ Cmp(Immediate(4), actualNumArgsReg); // 4: func new this arg0
in OptimizedFastCallAndPushArgv() 151 __ Cmp(Immediate(5), actualNumArgsReg); // 5: 5 args
in OptimizedFastCallAndPushArgv() 162 __ Cmp(Immediate(6), actualNumArgsReg); // 6: 6 args
in OptimizedFastCallAndPushArgv() 207 __ Cmp(Immediate(3), expectedNumArgsReg); // 3: expectedNumArgsReg <= 3 jump
in OptimizedFastCallAndPushArgv() 244 __ Addq(Immediate(FRAME_SLOT_SIZE), callsiteSp); // 8 : 8 means skip pc to get last callsitesp
in JSFastCallWithArgV() 314 __ Addq(Immediate(FRAME_SLOT_SIZE), callsiteSp); // 8 : 8 means skip pc to get last callsitesp
in JSFastCallWithArgVAndPushArgv() 398 __ Cmp(Immediate(3), expectedNumArgsReg); // 3:expectedNumArgsReg <= 3 jump
in JSFastCallWithArgVAndPushArgv()
|
H A D | optimized_call.cpp | 289 __ Movq(Immediate(0), Operand(rsp, DOUBLE_SLOT_SIZE)); // argv -> argc in CallBuiltinTrampoline() 341 __ Movq(Immediate(0), Operand(rsp, DOUBLE_SLOT_SIZE)); // 0 -> argc in CallBuiltinConstructorStub() 471 __ Subq(Immediate(kungfu::ArgumentAccessor::GetFixArgsNum()), argc); in GenJSCall() 670 __ Subq(Immediate(kungfu::ArgumentAccessor::GetFixArgsNum()), argc); in AOTCallToAsmInterBridge() 748 __ Subq(Immediate(3), tempArgc); // 3: the first 3 args are not on stack in FastCallToAsmInterBridge() 749 __ Addq(Immediate(TRIPLE_SLOT_SIZE), startSp); // skip bridge frame and return addr in FastCallToAsmInterBridge() 751 __ Subq(Immediate(TRIPLE_SLOT_SIZE), startSp); in FastCallToAsmInterBridge() 804 __ Addq(Immediate(TRIPLE_SLOT_SIZE), argV); // skip func, newtarget and this in FastCallToAsmInterBridge() 1237 __ Addq(Immediate(2 * FRAME_SLOT_SIZE), sp); in PopOptimizedUnfoldArgVFrame() 1287 __ Addq(Immediate(FRAME_SLOT_SIZ in GenJSCallWithArgV() [all...] |
H A D | asm_interpreter_call.cpp | 988 __ Cmpq(Immediate(3), argc); // 3: number of args in CallFastBuiltin() 1003 __ Cmp(Immediate(0), r9); in CallFastBuiltin() 1011 __ Cmp(Immediate(1), r9); in CallFastBuiltin() 1021 __ Cmp(Immediate(2), r9); // 2: number of args in CallFastBuiltin() 1615 __ Cmpl(Immediate(RegionSpaceFlag::SHARED_SWEEPABLE_SPACE_BEGIN), r11); in ASMFastWriteBarrier() 1631 __ Cmpl(Immediate(RegionSpaceFlag::IN_YOUNG_SPACE), r11); in ASMFastWriteBarrier() 1638 __ Cmpl(Immediate(RegionSpaceFlag::IN_YOUNG_SPACE), r11); in ASMFastWriteBarrier() 1653 __ Testb(Immediate(JSThread::CONCURRENT_MARKING_BITFIELD_MASK), r11); in ASMFastWriteBarrier() 1666 __ Cmpl(Immediate(RegionSpaceFlag::IN_SHARED_READ_ONLY_SPACE), r11); in ASMFastWriteBarrier() 1722 __ Cmpl(Immediate(RegionSpaceFla in ASMFastSharedWriteBarrier() [all...] |
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/ |
H A D | macro_assembler.h | 75 virtual void Move(const StackSlotOperand &dstStackSlot, Immediate value) = 0; 78 virtual void Cmp(const StackSlotOperand &stackSlot, Immediate value) = 0;
|