Remove the use of Method from jni_compiler
Change-Id: Ibf1c72a806e7f1ba7a2d83960c3d57f41937d336
diff --git a/src/calling_convention_x86.cc b/src/calling_convention_x86.cc
index 07ccece..7becbb3 100644
--- a/src/calling_convention_x86.cc
+++ b/src/calling_convention_x86.cc
@@ -22,12 +22,12 @@
return ManagedRegister::NoRegister(); // No free regs, so assembler uses push/pop
}
-static ManagedRegister ReturnRegisterForMethod(const Method* method) {
- if (method->IsReturnAFloatOrDouble()) {
+static ManagedRegister ReturnRegisterForShorty(const char* shorty) {
+ if (shorty[0] == 'F' || shorty[0] == 'D') {
return X86ManagedRegister::FromX87Register(ST0);
- } else if (method->IsReturnALong()) {
+ } else if (shorty[0] == 'J') {
return X86ManagedRegister::FromRegisterPair(EAX_EDX);
- } else if (method->IsReturnVoid()) {
+ } else if (shorty[0] == 'V') {
return ManagedRegister::NoRegister();
} else {
return X86ManagedRegister::FromCpuRegister(EAX);
@@ -35,11 +35,11 @@
}
ManagedRegister X86ManagedRuntimeCallingConvention::ReturnRegister() {
- return ReturnRegisterForMethod(GetMethod());
+ return ReturnRegisterForShorty(GetShorty());
}
ManagedRegister X86JniCallingConvention::ReturnRegister() {
- return ReturnRegisterForMethod(GetMethod());
+ return ReturnRegisterForShorty(GetShorty());
}
// Managed runtime calling convention
@@ -85,7 +85,7 @@
}
bool X86JniCallingConvention::IsMethodRegisterClobberedPreCall() {
- return GetMethod()->IsSynchronized(); // Monitor enter crushes the method register
+ return IsSynchronized(); // Monitor enter crushes the method register
}
bool X86JniCallingConvention::IsCurrentParamInRegister() {
@@ -107,10 +107,9 @@
}
size_t X86JniCallingConvention::NumberOfOutgoingStackArgs() {
- size_t static_args = GetMethod()->IsStatic() ? 1 : 0; // count jclass
+ size_t static_args = IsStatic() ? 1 : 0; // count jclass
// regular argument parameters and this
- size_t param_args = GetMethod()->NumArgs() +
- GetMethod()->NumLongOrDoubleArgs();
+ size_t param_args = NumArgs() + NumLongOrDoubleArgs();
return static_args + param_args + 2; // count JNIEnv* and return pc (pushed after Method*)
}