diff options
Diffstat (limited to 'compiler/optimizing')
-rw-r--r-- | compiler/optimizing/intrinsics_x86_64.cc | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/compiler/optimizing/intrinsics_x86_64.cc b/compiler/optimizing/intrinsics_x86_64.cc index 85c33d312f..b9d1a9f2c7 100644 --- a/compiler/optimizing/intrinsics_x86_64.cc +++ b/compiler/optimizing/intrinsics_x86_64.cc @@ -4288,17 +4288,6 @@ void IntrinsicCodeGeneratorX86_64::VisitMethodHandleInvokeExact(HInvoke* invoke) // If method is defined in the receiver's class, execute it as it is. __ j(kEqual, &execute_target_method); - __ testl(Address(temp, mirror::Class::AccessFlagsOffset()), Immediate(kAccInterface)); - // If `method`'s declaring class is not an interface, do virtual dispatch. - __ j(kZero, &do_virtual_dispatch); - - __ movl(temp, Address(method, ArtMethod::AccessFlagsOffset())); - // These flags are uint32_t and their signed value doesn't fit into int32_t (see b/377275405). - __ andl(temp, Immediate(bit_cast<int32_t, uint32_t>(kAccIntrinsic | kAccCopied))); - __ cmpl(temp, Immediate(kAccCopied)); - // If method is defined in an interface and is not copied it should be interface dispatched. - __ j(kNotEqual, slow_path->GetEntryLabel()); - __ Bind(&do_virtual_dispatch); // MethodIndex is uint16_t. __ movzxw(temp, Address(method, ArtMethod::MethodIndexOffset())); |