Home
last modified time | relevance | path

Searched refs:pc (Results 1 – 25 of 135) sorted by relevance

123456

/frameworks/libs/native_bridge_support/android_api/libEGL/proxy/
Dopengl_trampolines-inl.h7 …PI", GetTrampolineFunc<uint32_t(uint32_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
8 …lineFunc<uint32_t(void*, void*, uint32_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
9 …2_t(void*, void*, void*, uint32_t, void*)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
10 …mpolineFunc<uint32_t(void*, void*, void*)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
11 …int32_t(void*, void*, uint32_t, uint64_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
12 …int32_t(void*, void*, uint32_t, uint64_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
13 …eFunc<uint32_t(void*, uint32_t, uint64_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
14 …XT", GetTrampolineFunc<uint32_t(uint32_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
15 …eFunc<uint32_t(uint32_t, void*, uint32_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
16 …tTrampolineFunc<uint32_t(void*, uint32_t)>(),[](GuestAddr pc) { return WrapGuestFunctionImpl(pc, k…
[all …]
Degl_trampolines.cc57 void RunGuest_glDebugMessageCallback(GuestAddr pc, GuestArgumentBuffer* buf) { in RunGuest_glDebugMessageCallback() argument
66 RunGuestCall(pc, buf); in RunGuest_glDebugMessageCallback()
72 void RunGuest_glGetPointerv(GuestAddr pc, GuestArgumentBuffer* buf) { in RunGuest_glGetPointerv() argument
75 RunGuestCall(pc, buf); in RunGuest_glGetPointerv()
109 void RunGuest_eglGetProcAddress(GuestAddr pc, GuestArgumentBuffer* buf);
175 void RunGuest_eglGetProcAddress(GuestAddr pc, GuestArgumentBuffer* buf) { in RunGuest_eglGetProcAddress() argument
177 RunGuestCall(pc, buf); in RunGuest_eglGetProcAddress()
233 void RunGuestAndroidGLESLayer_Initialize(GuestAddr pc, GuestArgumentBuffer* buf) { in RunGuestAndroidGLESLayer_Initialize() argument
239 RunGuestCall(pc, buf); in RunGuestAndroidGLESLayer_Initialize()
243 void RunGuestAndroidGLESLayer_GetProcAddress(GuestAddr pc, GuestArgumentBuffer* buf) { in RunGuestAndroidGLESLayer_GetProcAddress() argument
[all …]
/frameworks/libs/binary_translation/runtime_primitives/
Dtranslation_cache_test.cc35 constexpr GuestAddr pc = 0x12345678; in TEST() local
39 EXPECT_EQ(tc.GetHostCodePtr(pc)->load(), kEntryNotTranslated); in TEST()
40 EXPECT_EQ(tc.GetHostCodePtr(pc + 1024)->load(), kEntryNotTranslated); in TEST()
41 EXPECT_EQ(tc.GetInvocationCounter(pc), 0U); in TEST()
45 constexpr GuestAddr pc = 0x12345678; in TEST() local
50 GuestCodeEntry* entry = tc.AddAndLockForTranslation(pc, 0); in TEST()
54 tc.SetTranslatedAndUnlock(pc, entry, 1, GuestCodeEntry::Kind::kSpecialHandler, {kEntryNoExec, 0}); in TEST()
56 EXPECT_EQ(tc.GetInvocationCounter(pc), 42U); in TEST()
60 constexpr GuestAddr pc = 0x12345678; in TEST() local
65 ASSERT_FALSE(tc.AddAndLockForTranslation(pc, 1)); in TEST()
[all …]
Dhost_function_wrapper_impl.cc31 void MakeTrampolineCallable(GuestAddr pc, in MakeTrampolineCallable() argument
36 if (!pc) { in MakeTrampolineCallable()
44 if (!IsProgramCounterProperlyAlignedForArch(pc)) { in MakeTrampolineCallable()
45 TRACE("address %p of wrapped host function '%s' is not aligned", ToHostAddr<void>(pc), name); in MakeTrampolineCallable()
48 GuestCodeEntry* entry = cache->AddAndLockForWrapping(pc); in MakeTrampolineCallable()
51 GenTrampolineAdaptor(&mc, pc, AsHostCode(func), arg, name); in MakeTrampolineCallable()
53 pc, entry, is_host_func, {GetDefaultCodePoolInstance()->Add(&mc), mc.install_size()}); in MakeTrampolineCallable()
57 void* UnwrapHostFunction(GuestAddr pc) { in UnwrapHostFunction() argument
58 if (TranslationCache::GetInstance()->IsHostFunctionWrapped(pc)) { in UnwrapHostFunction()
60 return ToHostAddr<void>(pc); in UnwrapHostFunction()
Dtranslation_cache.cc35 GuestCodeEntry* TranslationCache::AddAndLockForTranslation(GuestAddr pc, in AddAndLockForTranslation() argument
41 auto* host_code_ptr = GetHostCodePtrWritable(pc); in AddAndLockForTranslation()
43 auto* entry = AddUnsafe(pc, in AddAndLockForTranslation()
66 GuestCodeEntry* TranslationCache::LockForGearUpTranslation(GuestAddr pc) { in LockForGearUpTranslation() argument
69 auto* entry = LookupGuestCodeEntryUnsafe(pc); in LockForGearUpTranslation()
93 void TranslationCache::SetTranslatedAndUnlock(GuestAddr pc, in SetTranslatedAndUnlock() argument
111 guest_entries_.erase(pc); in SetTranslatedAndUnlock()
135 GuestCodeEntry* TranslationCache::AddAndLockForWrapping(GuestAddr pc) { in AddAndLockForWrapping() argument
141 auto* entry = AddUnsafe(pc, in AddAndLockForWrapping()
142 GetHostCodePtrWritable(pc), in AddAndLockForWrapping()
[all …]
Dguest_function_wrapper_impl.cc63 HostCode Find(GuestAddr pc, const char* signature, HostCode guest_runner) const { in Find() argument
65 auto it = map_.find(std::make_tuple(pc, signature, guest_runner)); in Find()
74 HostCode Insert(GuestAddr pc, const char* signature, HostCode guest_runner, MachineCode* mc) { in Insert() argument
77 std::make_pair(std::make_tuple(pc, std::string(signature), guest_runner), nullptr)); in Insert()
113 HostCode WrapGuestFunctionImpl(GuestAddr pc, in WrapGuestFunctionImpl() argument
117 if (!pc) { in WrapGuestFunctionImpl()
123 HostCode wrapper = wrapper_cache->Find(pc, signature, guest_runner); in WrapGuestFunctionImpl()
130 if (!g_is_address_guest_executable_func(pc) && in WrapGuestFunctionImpl()
131 !TranslationCache::GetInstance()->IsHostFunctionWrapped(pc)) { in WrapGuestFunctionImpl()
132 LOG_ALWAYS_FATAL("Trying to wrap non-executable guest address 0x%zx", pc); in WrapGuestFunctionImpl()
[all …]
Dinterpret_helpers_riscv64.cc33 uint8_t GetRiscv64InsnSize(GuestAddr pc) { in GetRiscv64InsnSize() argument
35 if ((*ToHostAddr<const uint16_t>(pc) & kInsnLenMask) != kInsnLenMask) { in GetRiscv64InsnSize()
43 void UndefinedInsn(GuestAddr pc) { in UndefinedInsn() argument
44 auto* addr = ToHostAddr<const uint16_t>(pc); in UndefinedInsn()
45 uint8_t size = GetRiscv64InsnSize(pc); in UndefinedInsn()
Dvirtual_guest_call_frame.cc25 void InitVirtualGuestCallFrameReturnAddress(GuestAddr pc) { in InitVirtualGuestCallFrameReturnAddress() argument
26 ScopedVirtualGuestCallFrame::SetReturnAddress(pc); in InitVirtualGuestCallFrameReturnAddress()
27 CHECK(TranslationCache::GetInstance()->SetStop(pc)); in InitVirtualGuestCallFrameReturnAddress()
/frameworks/libs/binary_translation/runtime_primitives/include/berberis/runtime_primitives/
Dtranslation_cache.h112 bool SetStop(GuestAddr pc) { in SetStop() argument
114 auto host_code_ptr = GetHostCodePtrWritable(pc); in SetStop()
121 void TestingClearStop(GuestAddr pc) { in TestingClearStop() argument
122 GetHostCodePtrWritable(pc)->store(kEntryNotTranslated); // set default value. in TestingClearStop()
130 [[nodiscard]] GuestCodeEntry* AddAndLockForTranslation(GuestAddr pc, uint32_t counter_threshold);
134 [[nodiscard]] GuestCodeEntry* LockForGearUpTranslation(GuestAddr pc);
138 void SetTranslatedAndUnlock(GuestAddr pc,
145 [[nodiscard]] GuestCodeEntry* AddAndLockForWrapping(GuestAddr pc);
147 void SetWrappedAndUnlock(GuestAddr pc,
152 [[nodiscard]] bool IsHostFunctionWrapped(GuestAddr pc) const;
[all …]
Dguest_function_wrapper_impl.h40 using GuestRunnerFunc = void (*)(GuestAddr pc, GuestArgumentBuffer* buf);
41 using IsAddressGuestExecutableFunc = bool (*)(GuestAddr pc);
43 HostCode WrapGuestFunctionImpl(GuestAddr pc,
50 HostCode (*wrapper)(GuestAddr pc);
/frameworks/libs/binary_translation/runtime/
Dtranslator_riscv64.cc104 uint8_t GetRiscv64InsnSize(GuestAddr pc) { in GetRiscv64InsnSize() argument
106 if ((*ToHostAddr<uint16_t>(pc) & kInsnLenMask) != kInsnLenMask) { in GetRiscv64InsnSize()
115 GuestAddr pc, in InstallTranslated() argument
119 ProfilerLogGeneratedCode(host_code, machine_code->install_size(), pc, size, prefix); in InstallTranslated()
131 GuestAddr pc, in TryLiteTranslateAndInstallRegion() argument
135 auto [success, stop_pc] = TryLiteTranslateRegion(pc, &machine_code, params); in TryLiteTranslateAndInstallRegion()
137 size_t size = stop_pc - pc; in TryLiteTranslateAndInstallRegion()
140 return {true, InstallTranslated(&machine_code, pc, size, "lite"), size, kLightTranslated}; in TryLiteTranslateAndInstallRegion()
149 success = LiteTranslateRange(pc, stop_pc, &another_machine_code, params); in TryLiteTranslateAndInstallRegion()
153 InstallTranslated(&another_machine_code, pc, size, "lite_range"), in TryLiteTranslateAndInstallRegion()
[all …]
Dexecute_guest.cc39 auto pc = GetInsnAddr(GetCPUState(*state)); in ExecuteGuest() local
44 if (pc != GetInsnAddr(GetCPUState(*state))) { in ExecuteGuest()
46 ToHostAddr<void>(pc), in ExecuteGuest()
48 pc = GetInsnAddr(GetCPUState(*state)); in ExecuteGuest()
52 auto code = cache->GetHostCodePtr(pc)->load(); in ExecuteGuest()
58 TRACE("RunGeneratedCode @ 0x%zx", pc); in ExecuteGuest()
/frameworks/native/services/inputflinger/tests/
DPointerChoreographer_test.cpp131 std::shared_ptr<FakePointerController> pc = std::make_shared<FakePointerController>(); in SetUp() local
132 EXPECT_FALSE(pc->isPointerShown()); in SetUp()
133 mCreatedControllers.emplace_back(type, pc); in SetUp()
134 return pc; in SetUp()
154 void assertPointerControllerRemoved(const std::shared_ptr<FakePointerController>& pc) { in assertPointerControllerRemoved() argument
163 ASSERT_EQ(1, pc.use_count()) << "Expected PointerChoreographer to release all references " in assertPointerControllerRemoved()
167 void assertPointerControllerNotRemoved(const std::shared_ptr<FakePointerController>& pc) { in assertPointerControllerNotRemoved() argument
169 ASSERT_GT(pc.use_count(), 1) << "Expected PointerChoreographer to hold at least one " in assertPointerControllerNotRemoved()
259 auto pc = assertPointerControllerCreated(ControllerType::MOUSE); in TEST_F() local
263 assertPointerControllerRemoved(pc); in TEST_F()
[all …]
/frameworks/libs/binary_translation/guest_abi/arm/
Dhost_function_wrapper_test.cc91 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
98 EXPECT_EQ(-2, CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, sub)); in TEST_F()
109 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
118 EXPECT_EQ(-2.0, CallWrappedHostFunctionFromWrappedGuestFunction<float>(pc, fsub)); in TEST_F()
129 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
141 (CallWrappedHostFunctionFromWrappedGuestFunction<float, GuestAbi::kAapcsVfp>(pc, fsub_vfp))); in TEST_F()
158 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
171 EXPECT_EQ(12, CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 1)); in TEST_F()
172 EXPECT_EQ(-2, CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 2)); in TEST_F()
173 EXPECT_DEATH(CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 0), ""); in TEST_F()
Dguest_function_wrapper_test.cc44 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
50 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub"); in TEST_F()
60 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
67 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_long"); in TEST_F()
77 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
86 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_float"); in TEST_F()
96 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
105 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_double"); in TEST_F()
/frameworks/libs/binary_translation/guest_abi/riscv64/
Dhost_function_wrapper_test.cc85 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
92 EXPECT_EQ(CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, sub), -2); in TEST_F()
103 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
112 (CallWrappedHostFunctionFromWrappedGuestFunction<float, GuestAbi::kLp64d>(pc, fsub)), -2.0f); in TEST_F()
123 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
132 (CallWrappedHostFunctionFromWrappedGuestFunction<double, GuestAbi::kLp64d>(pc, dsub)), -2.0); in TEST_F()
149 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
163 EXPECT_EQ(CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 1), 12); in TEST_F()
164 EXPECT_EQ(CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 2), -2); in TEST_F()
165 EXPECT_DEATH(CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 0), ""); in TEST_F()
Dguest_function_wrapper_test.cc43 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
49 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub"); in TEST_F()
59 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
65 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_long"); in TEST_F()
75 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
81 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_float"); in TEST_F()
91 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
97 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_double"); in TEST_F()
/frameworks/libs/binary_translation/guest_abi/arm64/
Dguest_function_wrapper_test.cc43 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
49 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub"); in TEST_F()
59 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
65 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_long"); in TEST_F()
75 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
81 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_float"); in TEST_F()
91 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
97 TwoArgFunction sub = WrapGuestFunction(bit_cast<GuestType<TwoArgFunction>>(pc), "sub_double"); in TEST_F()
Dhost_function_wrapper_test.cc90 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
97 EXPECT_EQ(-2, CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, sub)); in TEST_F()
108 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
114 EXPECT_EQ(-2.0, CallWrappedHostFunctionFromWrappedGuestFunction<float>(pc, fsub)); in TEST_F()
131 GuestAddr pc = MakeGuestExecRegion<uint32_t>({ in TEST_F() local
144 EXPECT_EQ(12, CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 1)); in TEST_F()
145 EXPECT_EQ(-2, CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 2)); in TEST_F()
146 EXPECT_DEATH(CallWrappedHostFunctionFromWrappedGuestFunction<int>(pc, add_sub_chooser, 0), ""); in TEST_F()
/frameworks/libs/binary_translation/guest_os_primitives/
Dguest_map_shadow.cc115 GuestAddr pc = AlignDownGuestPageSize(start); in GetExecutable() local
118 bool is_exec = IsExecAddr(pc); in GetExecutable()
119 pc += kGuestPageSize; in GetExecutable()
120 while (pc < end) { in GetExecutable()
121 if (is_exec != IsExecAddr(pc)) { in GetExecutable()
124 pc += kGuestPageSize; in GetExecutable()
136 GuestAddr pc = AlignDownGuestPageSize(start); in SetExecutable() local
137 while (pc < end) { in SetExecutable()
138 SetExecAddr(pc, 1); in SetExecutable()
139 pc += kGuestPageSize; in SetExecutable()
[all …]
/frameworks/base/tests/Camera2Tests/SmartCamera/SimpleCamera/src/androidx/media/filterfw/geometry/
DQuad.java249 PointF pc = center(); in grow() local
250 return new Quad(factor * (mTopLeft.x - pc.x) + pc.x, in grow()
251 factor * (mTopLeft.y - pc.y) + pc.y, in grow()
252 factor * (mTopRight.x - pc.x) + pc.x, in grow()
253 factor * (mTopRight.y - pc.y) + pc.y, in grow()
254 factor * (mBottomLeft.x - pc.x) + pc.x, in grow()
255 factor * (mBottomLeft.y - pc.y) + pc.y, in grow()
256 factor * (mBottomRight.x - pc.x) + pc.x, in grow()
257 factor * (mBottomRight.y - pc.y) + pc.y); in grow()
/frameworks/base/services/tests/servicestests/src/com/android/server/biometrics/sensors/fingerprint/aidl/
DFingerprintEnrollClientTest.java183 PointerContext pc = new PointerContext(); in pointerUp_v1() local
184 pc.pointerId = POINTER_ID; in pointerUp_v1()
185 client.onPointerUp(pc); in pointerUp_v1()
196 PointerContext pc = new PointerContext(); in pointerDown_v1() local
197 pc.pointerId = POINTER_ID; in pointerDown_v1()
198 pc.x = TOUCH_X; in pointerDown_v1()
199 pc.y = TOUCH_Y; in pointerDown_v1()
200 pc.minor = TOUCH_MINOR; in pointerDown_v1()
201 pc.major = TOUCH_MAJOR; in pointerDown_v1()
202 client.onPointerDown(pc); in pointerDown_v1()
[all …]
/frameworks/native/services/inputflinger/
DPointerChoreographer.cpp233 auto [displayId, pc] = ensureMouseControllerLocked(args.displayId); in processMouseEventLocked()
240 const auto [x, y] = pc.getPosition(); in processMouseEventLocked()
245 pc.setPosition(args.xCursorPosition, args.yCursorPosition); in processMouseEventLocked()
250 pc.move(deltaX, deltaY); in processMouseEventLocked()
251 const auto [x, y] = pc.getPosition(); in processMouseEventLocked()
258 pc.unfade(PointerControllerInterface::Transition::IMMEDIATE); in processMouseEventLocked()
265 auto [displayId, pc] = ensureMouseControllerLocked(args.displayId); in processTouchpadEventLocked()
273 pc.move(deltaX, deltaY); in processTouchpadEventLocked()
275 pc.unfade(PointerControllerInterface::Transition::IMMEDIATE); in processTouchpadEventLocked()
278 const auto [x, y] = pc.getPosition(); in processTouchpadEventLocked()
[all …]
/frameworks/libs/binary_translation/heavy_optimizer/riscv64/
Dheavy_optimize_region.cc36 std::tuple<GuestAddr, bool, size_t> HeavyOptimizeRegion(GuestAddr pc, in HeavyOptimizeRegion() argument
41 HeavyOptimizerFrontend frontend(&machine_ir, pc); in HeavyOptimizeRegion()
63 TRACE("Heavy optimizing 0x%lx (%lu bytes)", pc, stop_pc - pc); in HeavyOptimizeRegion()
/frameworks/libs/binary_translation/code_gen_lib/
Dcode_gen_lib_riscv64_to_x86_64.cc57 GuestAddr pc, in GenTrampolineAdaptor() argument
66 as.Movq(as.rdi, pc); in GenTrampolineAdaptor()
100 void EmitSyscall(x86_64::Assembler* as, GuestAddr pc) { in EmitSyscall() argument
102 as->Movq(as->rdi, pc); in EmitSyscall()
117 EmitDirectDispatch(as, pc + 4, /*check_pending_signals=*/true); in EmitSyscall()
120 void EmitDirectDispatch(x86_64::Assembler* as, GuestAddr pc, bool check_pending_signals) { in EmitDirectDispatch() argument
122 as->Movq(as->rax, pc); in EmitDirectDispatch()
133 CHECK_EQ(pc & 0xffff000000000000, 0); in EmitDirectDispatch()
135 reinterpret_cast<uint64_t>(TranslationCache::GetInstance()->GetHostCodePtr(pc))); in EmitDirectDispatch()

123456