Add return-void-barrier instruction.
This introduces the return-void-barrier instruction, which is identical
to return-void on UP systems, but provides an additional store/store
barrier on SMP. This is intended for use in constructors of objects
with final fields.
The assembler doesn't like "dmb st", and we don't have an
ANDROID_MEMBAR_STORE barrier defined, so this currently uses full
fences.
This just defines the new instruction. It's not actually used yet.
Also, removed some stale "unused" files from the x86 and x86-atom
directories.
Bug 2965743.
Change-Id: I072e372fd2d57f2617a8d4fff5fd4b38bdda75d1
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c
index e298f3d..177b1c6 100644
--- a/vm/compiler/codegen/arm/CodegenDriver.c
+++ b/vm/compiler/codegen/arm/CodegenDriver.c
@@ -1324,12 +1324,12 @@
}
switch (dalvikOpCode) {
case OP_RETURN_VOID:
+ case OP_RETURN_VOID_BARRIER:
genReturnCommon(cUnit,mir);
break;
case OP_UNUSED_73:
case OP_UNUSED_79:
case OP_UNUSED_7A:
- case OP_UNUSED_F1:
case OP_UNUSED_FF:
LOGE("Codegen: got unused opcode 0x%x\n",dalvikOpCode);
return true;