< prev index next >

src/cpu/aarch32/vm/nativeInst_aarch32.cpp

Print this page
rev 8069 : 8164652: aarch32: C1 port

*** 90,103 **** // patching should be not only safe (i.e. this call could be executed by some thread), // but it also should be atomic (some other thread could call NativeCall::destination() // and see valid destination value) if (NativeImmCall::is_at(addr())) { ! assert(false, "could be patched mt_safe way, but should not be requested to. " ! "Known mt_safe requests have arbitrary destination offset. " ! "Use trampoline_call for this."); ! ShouldNotCallThis(); } else if (NativeTrampolineCall::is_at(addr())) { NativeTrampolineCall::from(addr())->set_destination_mt_safe(dest); } else { ShouldNotReachHere(); } --- 90,101 ---- // patching should be not only safe (i.e. this call could be executed by some thread), // but it also should be atomic (some other thread could call NativeCall::destination() // and see valid destination value) if (NativeImmCall::is_at(addr())) { ! NativeImmCall::from(addr())->set_destination(dest); ! ICache::invalidate_word(addr()); } else if (NativeTrampolineCall::is_at(addr())) { NativeTrampolineCall::from(addr())->set_destination_mt_safe(dest); } else { ShouldNotReachHere(); }
< prev index next >