summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/code_generator_x86.cc
diff options
context:
space:
mode:
authorRoland Levillain <rpl@google.com>2015-04-24 18:17:40 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-04-24 18:17:41 +0000
commiteb5459ca861b58ee8a9907789f11400dcdddb87b (patch)
tree36c1f328c48f0ec111ee31702cc4a82ddb2ad784 /compiler/optimizing/code_generator_x86.cc
parentae803f6efbe8378b5423c51ee3c5564cae0e6e59 (diff)
parent4c0eb42259d790fddcd9978b66328dbb3ab65615 (diff)
downloadart-eb5459ca861b58ee8a9907789f11400dcdddb87b.tar.gz
art-eb5459ca861b58ee8a9907789f11400dcdddb87b.tar.bz2
art-eb5459ca861b58ee8a9907789f11400dcdddb87b.zip
Merge "Ensure inlined static calls perform clinit checks in Optimizing."
Diffstat (limited to 'compiler/optimizing/code_generator_x86.cc')
-rw-r--r--compiler/optimizing/code_generator_x86.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_x86.cc b/compiler/optimizing/code_generator_x86.cc
index 021e2eb74f..70e4440e7a 100644
--- a/compiler/optimizing/code_generator_x86.cc
+++ b/compiler/optimizing/code_generator_x86.cc
@@ -1194,6 +1194,10 @@ void InstructionCodeGeneratorX86::VisitReturn(HReturn* ret) {
}
void LocationsBuilderX86::VisitInvokeStaticOrDirect(HInvokeStaticOrDirect* invoke) {
+ // Explicit clinit checks triggered by static invokes must have been
+ // pruned by art::PrepareForRegisterAllocation.
+ DCHECK(!invoke->IsStaticWithExplicitClinitCheck());
+
IntrinsicLocationsBuilderX86 intrinsic(codegen_);
if (intrinsic.TryDispatch(invoke)) {
return;
@@ -1212,6 +1216,10 @@ static bool TryGenerateIntrinsicCode(HInvoke* invoke, CodeGeneratorX86* codegen)
}
void InstructionCodeGeneratorX86::VisitInvokeStaticOrDirect(HInvokeStaticOrDirect* invoke) {
+ // Explicit clinit checks triggered by static invokes must have been
+ // pruned by art::PrepareForRegisterAllocation.
+ DCHECK(!invoke->IsStaticWithExplicitClinitCheck());
+
if (TryGenerateIntrinsicCode(invoke, codegen_)) {
return;
}