< prev index next >
src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
Print this page
rev 54011 : 8219993: AArch64: Compiled CI stubs are unsafely modified
Reviewed-by: adinn
@@ -32,10 +32,11 @@
#include "c1/c1_MacroAssembler.hpp"
#include "c1/c1_Runtime1.hpp"
#include "c1/c1_ValueStack.hpp"
#include "ci/ciArrayKlass.hpp"
#include "ci/ciInstance.hpp"
+#include "code/compiledIC.hpp"
#include "gc/shared/barrierSet.hpp"
#include "gc/shared/cardTableBarrierSet.hpp"
#include "gc/shared/collectedHeap.hpp"
#include "nativeInst_aarch64.hpp"
#include "oops/objArrayKlass.hpp"
@@ -2061,15 +2062,14 @@
}
int start = __ offset();
__ relocate(static_stub_Relocation::spec(call_pc));
- __ mov_metadata(rmethod, (Metadata*)NULL);
- __ movptr(rscratch1, 0);
- __ br(rscratch1);
+ __ emit_static_call_stub();
- assert(__ offset() - start <= call_stub_size(), "stub too big");
+ assert(__ offset() - start + CompiledStaticCall::to_trampoline_stub_size()
+ <= call_stub_size(), "stub too big");
__ end_a_stub();
}
void LIR_Assembler::throw_op(LIR_Opr exceptionPC, LIR_Opr exceptionOop, CodeEmitInfo* info) {
< prev index next >