ART: Refactor mterp slightly
Move marker labels to assembly to allow simpler machine-dependent
changes. Update the generator script. Regenerate the output.
Test: mmma art
Test: m test-art-host
Change-Id: Id32e060af9b2ef3ba5558a89e05ca0edfe4974c6
diff --git a/runtime/interpreter/mterp/arm/instruction_end.S b/runtime/interpreter/mterp/arm/instruction_end.S
new file mode 100644
index 0000000..32c725c
--- /dev/null
+++ b/runtime/interpreter/mterp/arm/instruction_end.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmInstructionEnd
+artMterpAsmInstructionEnd:
diff --git a/runtime/interpreter/mterp/arm/instruction_end_alt.S b/runtime/interpreter/mterp/arm/instruction_end_alt.S
new file mode 100644
index 0000000..f90916f
--- /dev/null
+++ b/runtime/interpreter/mterp/arm/instruction_end_alt.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmAltInstructionEnd
+artMterpAsmAltInstructionEnd:
diff --git a/runtime/interpreter/mterp/arm/instruction_end_sister.S b/runtime/interpreter/mterp/arm/instruction_end_sister.S
new file mode 100644
index 0000000..c5f4886
--- /dev/null
+++ b/runtime/interpreter/mterp/arm/instruction_end_sister.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmSisterEnd
+artMterpAsmSisterEnd:
diff --git a/runtime/interpreter/mterp/arm/instruction_start.S b/runtime/interpreter/mterp/arm/instruction_start.S
new file mode 100644
index 0000000..8874c20
--- /dev/null
+++ b/runtime/interpreter/mterp/arm/instruction_start.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmInstructionStart
+artMterpAsmInstructionStart = .L_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/arm/instruction_start_alt.S b/runtime/interpreter/mterp/arm/instruction_start_alt.S
new file mode 100644
index 0000000..0c9ffdb
--- /dev/null
+++ b/runtime/interpreter/mterp/arm/instruction_start_alt.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/arm/instruction_start_sister.S b/runtime/interpreter/mterp/arm/instruction_start_sister.S
new file mode 100644
index 0000000..2ec51f7
--- /dev/null
+++ b/runtime/interpreter/mterp/arm/instruction_start_sister.S
@@ -0,0 +1,5 @@
+
+ .global artMterpAsmSisterStart
+ .text
+ .balign 4
+artMterpAsmSisterStart:
diff --git a/runtime/interpreter/mterp/arm64/instruction_end.S b/runtime/interpreter/mterp/arm64/instruction_end.S
new file mode 100644
index 0000000..32c725c
--- /dev/null
+++ b/runtime/interpreter/mterp/arm64/instruction_end.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmInstructionEnd
+artMterpAsmInstructionEnd:
diff --git a/runtime/interpreter/mterp/arm64/instruction_end_alt.S b/runtime/interpreter/mterp/arm64/instruction_end_alt.S
new file mode 100644
index 0000000..f90916f
--- /dev/null
+++ b/runtime/interpreter/mterp/arm64/instruction_end_alt.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmAltInstructionEnd
+artMterpAsmAltInstructionEnd:
diff --git a/runtime/interpreter/mterp/arm64/instruction_end_sister.S b/runtime/interpreter/mterp/arm64/instruction_end_sister.S
new file mode 100644
index 0000000..c5f4886
--- /dev/null
+++ b/runtime/interpreter/mterp/arm64/instruction_end_sister.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmSisterEnd
+artMterpAsmSisterEnd:
diff --git a/runtime/interpreter/mterp/arm64/instruction_start.S b/runtime/interpreter/mterp/arm64/instruction_start.S
new file mode 100644
index 0000000..8874c20
--- /dev/null
+++ b/runtime/interpreter/mterp/arm64/instruction_start.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmInstructionStart
+artMterpAsmInstructionStart = .L_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/arm64/instruction_start_alt.S b/runtime/interpreter/mterp/arm64/instruction_start_alt.S
new file mode 100644
index 0000000..0c9ffdb
--- /dev/null
+++ b/runtime/interpreter/mterp/arm64/instruction_start_alt.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/arm64/instruction_start_sister.S b/runtime/interpreter/mterp/arm64/instruction_start_sister.S
new file mode 100644
index 0000000..2ec51f7
--- /dev/null
+++ b/runtime/interpreter/mterp/arm64/instruction_start_sister.S
@@ -0,0 +1,5 @@
+
+ .global artMterpAsmSisterStart
+ .text
+ .balign 4
+artMterpAsmSisterStart:
diff --git a/runtime/interpreter/mterp/gen_mterp.py b/runtime/interpreter/mterp/gen_mterp.py
index 64114d7..75c5174 100755
--- a/runtime/interpreter/mterp/gen_mterp.py
+++ b/runtime/interpreter/mterp/gen_mterp.py
@@ -279,13 +279,8 @@
sister_list = []
assert len(opcodes) == kNumPackedOpcodes
need_dummy_start = False
- start_label = global_name_format % "artMterpAsmInstructionStart"
- end_label = global_name_format % "artMterpAsmInstructionEnd"
- # point MterpAsmInstructionStart at the first handler or stub
- asm_fp.write("\n .global %s\n" % start_label)
- asm_fp.write("%s = " % start_label + label_prefix + "_op_nop\n")
- asm_fp.write(" .text\n\n")
+ loadAndEmitGenericAsm("instruction_start")
for i in xrange(kNumPackedOpcodes):
op = opcodes[i]
@@ -309,20 +304,14 @@
asm_fp.write(label_prefix + "_op_nop: /* dummy */\n");
emitAlign()
- asm_fp.write(" .global %s\n" % end_label)
- asm_fp.write("%s:\n" % end_label)
+
+ loadAndEmitGenericAsm("instruction_end")
if style == "computed-goto":
- start_sister_label = global_name_format % "artMterpAsmSisterStart"
- end_sister_label = global_name_format % "artMterpAsmSisterEnd"
emitSectionComment("Sister implementations", asm_fp)
- asm_fp.write(" .global %s\n" % start_sister_label)
- asm_fp.write(" .text\n")
- asm_fp.write(" .balign 4\n")
- asm_fp.write("%s:\n" % start_sister_label)
+ loadAndEmitGenericAsm("instruction_start_sister")
asm_fp.writelines(sister_list)
- asm_fp.write(" .global %s\n" % end_sister_label)
- asm_fp.write("%s:\n\n" % end_sister_label)
+ loadAndEmitGenericAsm("instruction_end_sister")
#
# Load an alternate entry stub
@@ -345,10 +334,7 @@
start_label = global_name_format % "artMterpAsmAltInstructionStart"
end_label = global_name_format % "artMterpAsmAltInstructionEnd"
- # point MterpAsmInstructionStart at the first handler or stub
- asm_fp.write("\n .global %s\n" % start_label)
- asm_fp.write(" .text\n\n")
- asm_fp.write("%s = " % start_label + label_prefix + "_ALT_op_nop\n")
+ loadAndEmitGenericAsm("instruction_start_alt")
for i in xrange(kNumPackedOpcodes):
op = opcodes[i]
@@ -359,8 +345,8 @@
loadAndEmitAltStub(source, i)
emitAlign()
- asm_fp.write(" .global %s\n" % end_label)
- asm_fp.write("%s:\n" % end_label)
+
+ loadAndEmitGenericAsm("instruction_end_alt")
#
# Load an assembly fragment and emit it.
@@ -377,6 +363,14 @@
appendSourceFile(source, dict, asm_fp, sister_list)
#
+# Load a non-handler assembly fragment and emit it.
+#
+def loadAndEmitGenericAsm(name):
+ source = "%s/%s.S" % (default_op_dir, name)
+ dict = getGlobalSubDict()
+ appendSourceFile(source, dict, asm_fp, None)
+
+#
# Emit fallback fragment
#
def emitFallback(opindex):
diff --git a/runtime/interpreter/mterp/mips/instruction_end.S b/runtime/interpreter/mterp/mips/instruction_end.S
new file mode 100644
index 0000000..32c725c
--- /dev/null
+++ b/runtime/interpreter/mterp/mips/instruction_end.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmInstructionEnd
+artMterpAsmInstructionEnd:
diff --git a/runtime/interpreter/mterp/mips/instruction_end_alt.S b/runtime/interpreter/mterp/mips/instruction_end_alt.S
new file mode 100644
index 0000000..f90916f
--- /dev/null
+++ b/runtime/interpreter/mterp/mips/instruction_end_alt.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmAltInstructionEnd
+artMterpAsmAltInstructionEnd:
diff --git a/runtime/interpreter/mterp/mips/instruction_end_sister.S b/runtime/interpreter/mterp/mips/instruction_end_sister.S
new file mode 100644
index 0000000..c5f4886
--- /dev/null
+++ b/runtime/interpreter/mterp/mips/instruction_end_sister.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmSisterEnd
+artMterpAsmSisterEnd:
diff --git a/runtime/interpreter/mterp/mips/instruction_start.S b/runtime/interpreter/mterp/mips/instruction_start.S
new file mode 100644
index 0000000..8874c20
--- /dev/null
+++ b/runtime/interpreter/mterp/mips/instruction_start.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmInstructionStart
+artMterpAsmInstructionStart = .L_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/mips/instruction_start_alt.S b/runtime/interpreter/mterp/mips/instruction_start_alt.S
new file mode 100644
index 0000000..0c9ffdb
--- /dev/null
+++ b/runtime/interpreter/mterp/mips/instruction_start_alt.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/mips/instruction_start_sister.S b/runtime/interpreter/mterp/mips/instruction_start_sister.S
new file mode 100644
index 0000000..2ec51f7
--- /dev/null
+++ b/runtime/interpreter/mterp/mips/instruction_start_sister.S
@@ -0,0 +1,5 @@
+
+ .global artMterpAsmSisterStart
+ .text
+ .balign 4
+artMterpAsmSisterStart:
diff --git a/runtime/interpreter/mterp/mips64/instruction_end.S b/runtime/interpreter/mterp/mips64/instruction_end.S
new file mode 100644
index 0000000..32c725c
--- /dev/null
+++ b/runtime/interpreter/mterp/mips64/instruction_end.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmInstructionEnd
+artMterpAsmInstructionEnd:
diff --git a/runtime/interpreter/mterp/mips64/instruction_end_alt.S b/runtime/interpreter/mterp/mips64/instruction_end_alt.S
new file mode 100644
index 0000000..f90916f
--- /dev/null
+++ b/runtime/interpreter/mterp/mips64/instruction_end_alt.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmAltInstructionEnd
+artMterpAsmAltInstructionEnd:
diff --git a/runtime/interpreter/mterp/mips64/instruction_end_sister.S b/runtime/interpreter/mterp/mips64/instruction_end_sister.S
new file mode 100644
index 0000000..c5f4886
--- /dev/null
+++ b/runtime/interpreter/mterp/mips64/instruction_end_sister.S
@@ -0,0 +1,3 @@
+
+ .global artMterpAsmSisterEnd
+artMterpAsmSisterEnd:
diff --git a/runtime/interpreter/mterp/mips64/instruction_start.S b/runtime/interpreter/mterp/mips64/instruction_start.S
new file mode 100644
index 0000000..8874c20
--- /dev/null
+++ b/runtime/interpreter/mterp/mips64/instruction_start.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmInstructionStart
+artMterpAsmInstructionStart = .L_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/mips64/instruction_start_alt.S b/runtime/interpreter/mterp/mips64/instruction_start_alt.S
new file mode 100644
index 0000000..0c9ffdb
--- /dev/null
+++ b/runtime/interpreter/mterp/mips64/instruction_start_alt.S
@@ -0,0 +1,4 @@
+
+ .global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/mips64/instruction_start_sister.S b/runtime/interpreter/mterp/mips64/instruction_start_sister.S
new file mode 100644
index 0000000..2ec51f7
--- /dev/null
+++ b/runtime/interpreter/mterp/mips64/instruction_start_sister.S
@@ -0,0 +1,5 @@
+
+ .global artMterpAsmSisterStart
+ .text
+ .balign 4
+artMterpAsmSisterStart:
diff --git a/runtime/interpreter/mterp/out/mterp_arm.S b/runtime/interpreter/mterp/out/mterp_arm.S
index 7ea7982..b2702a9 100644
--- a/runtime/interpreter/mterp/out/mterp_arm.S
+++ b/runtime/interpreter/mterp/out/mterp_arm.S
@@ -396,6 +396,7 @@
GOTO_OPCODE ip @ jump to next instruction
/* NOTE: no fallthrough */
+/* File: arm/instruction_start.S */
.global artMterpAsmInstructionStart
artMterpAsmInstructionStart = .L_op_nop
@@ -7509,19 +7510,25 @@
.balign 128
+/* File: arm/instruction_end.S */
+
.global artMterpAsmInstructionEnd
artMterpAsmInstructionEnd:
+
/*
* ===========================================================================
* Sister implementations
* ===========================================================================
*/
+/* File: arm/instruction_start_sister.S */
+
.global artMterpAsmSisterStart
.text
.balign 4
artMterpAsmSisterStart:
+
/* continuation for op_float_to_long */
/*
* Convert the float in r0 to a long in r0/r1.
@@ -7583,14 +7590,17 @@
mov r0, #0
mov r1, #0
bx lr @ return 0 for NaN
+/* File: arm/instruction_end_sister.S */
+
.global artMterpAsmSisterEnd
artMterpAsmSisterEnd:
+/* File: arm/instruction_start_alt.S */
.global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
.text
-artMterpAsmAltInstructionStart = .L_ALT_op_nop
/* ------------------------------ */
.balign 128
.L_ALT_op_nop: /* 0x00 */
@@ -11944,8 +11954,11 @@
b MterpCheckBefore @ (self, shadow_frame, dex_pc_ptr) @ Tail call.
.balign 128
+/* File: arm/instruction_end_alt.S */
+
.global artMterpAsmAltInstructionEnd
artMterpAsmAltInstructionEnd:
+
/* File: arm/footer.S */
/*
* ===========================================================================
diff --git a/runtime/interpreter/mterp/out/mterp_arm64.S b/runtime/interpreter/mterp/out/mterp_arm64.S
index 70f71ff..2a0c4df 100644
--- a/runtime/interpreter/mterp/out/mterp_arm64.S
+++ b/runtime/interpreter/mterp/out/mterp_arm64.S
@@ -427,6 +427,7 @@
GOTO_OPCODE ip // jump to next instruction
/* NOTE: no fallthrough */
+/* File: arm64/instruction_start.S */
.global artMterpAsmInstructionStart
artMterpAsmInstructionStart = .L_op_nop
@@ -7075,18 +7076,26 @@
.balign 128
+/* File: arm64/instruction_end.S */
+
.global artMterpAsmInstructionEnd
artMterpAsmInstructionEnd:
+
/*
* ===========================================================================
* Sister implementations
* ===========================================================================
*/
+/* File: arm64/instruction_start_sister.S */
+
.global artMterpAsmSisterStart
.text
.balign 4
artMterpAsmSisterStart:
+
+/* File: arm64/instruction_end_sister.S */
+
.global artMterpAsmSisterEnd
artMterpAsmSisterEnd:
@@ -7398,11 +7407,12 @@
ret
+/* File: arm64/instruction_start_alt.S */
.global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
.text
-artMterpAsmAltInstructionStart = .L_ALT_op_nop
/* ------------------------------ */
.balign 128
.L_ALT_op_nop: /* 0x00 */
@@ -11756,8 +11766,11 @@
b MterpCheckBefore // (self, shadow_frame, dex_pc_ptr) Note: tail call.
.balign 128
+/* File: arm64/instruction_end_alt.S */
+
.global artMterpAsmAltInstructionEnd
artMterpAsmAltInstructionEnd:
+
/* File: arm64/close_cfi.S */
// Close out the cfi info. We're treating mterp as a single function.
diff --git a/runtime/interpreter/mterp/out/mterp_mips.S b/runtime/interpreter/mterp/out/mterp_mips.S
index 69568ea..3b86279 100644
--- a/runtime/interpreter/mterp/out/mterp_mips.S
+++ b/runtime/interpreter/mterp/out/mterp_mips.S
@@ -810,6 +810,7 @@
GOTO_OPCODE(t0) # jump to next instruction
/* NOTE: no fallthrough */
+/* File: mips/instruction_start.S */
.global artMterpAsmInstructionStart
artMterpAsmInstructionStart = .L_op_nop
@@ -7873,19 +7874,25 @@
.balign 128
+/* File: mips/instruction_end.S */
+
.global artMterpAsmInstructionEnd
artMterpAsmInstructionEnd:
+
/*
* ===========================================================================
* Sister implementations
* ===========================================================================
*/
+/* File: mips/instruction_start_sister.S */
+
.global artMterpAsmSisterStart
.text
.balign 4
artMterpAsmSisterStart:
+
/* continuation for op_float_to_long */
#ifndef MIPS32REVGE6
@@ -7941,14 +7948,17 @@
.Lop_ushr_long_2addr_finish:
SET_VREG64_GOTO(v1, zero, t3, t0) # vA/vA+1 <- rlo/rhi
+/* File: mips/instruction_end_sister.S */
+
.global artMterpAsmSisterEnd
artMterpAsmSisterEnd:
+/* File: mips/instruction_start_alt.S */
.global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
.text
-artMterpAsmAltInstructionStart = .L_ALT_op_nop
/* ------------------------------ */
.balign 128
.L_ALT_op_nop: /* 0x00 */
@@ -12558,8 +12568,11 @@
jalr zero, t9 # Tail call to Mterp(self, shadow_frame, dex_pc_ptr)
.balign 128
+/* File: mips/instruction_end_alt.S */
+
.global artMterpAsmAltInstructionEnd
artMterpAsmAltInstructionEnd:
+
/* File: mips/footer.S */
/*
* ===========================================================================
diff --git a/runtime/interpreter/mterp/out/mterp_mips64.S b/runtime/interpreter/mterp/out/mterp_mips64.S
index 83a6613..58f98df 100644
--- a/runtime/interpreter/mterp/out/mterp_mips64.S
+++ b/runtime/interpreter/mterp/out/mterp_mips64.S
@@ -430,6 +430,7 @@
/* NOTE: no fallthrough */
+/* File: mips64/instruction_start.S */
.global artMterpAsmInstructionStart
artMterpAsmInstructionStart = .L_op_nop
@@ -7299,26 +7300,35 @@
.balign 128
+/* File: mips64/instruction_end.S */
+
.global artMterpAsmInstructionEnd
artMterpAsmInstructionEnd:
+
/*
* ===========================================================================
* Sister implementations
* ===========================================================================
*/
+/* File: mips64/instruction_start_sister.S */
+
.global artMterpAsmSisterStart
.text
.balign 4
artMterpAsmSisterStart:
+
+/* File: mips64/instruction_end_sister.S */
+
.global artMterpAsmSisterEnd
artMterpAsmSisterEnd:
+/* File: mips64/instruction_start_alt.S */
.global artMterpAsmAltInstructionStart
+artMterpAsmAltInstructionStart = .L_ALT_op_nop
.text
-artMterpAsmAltInstructionStart = .L_ALT_op_nop
/* ------------------------------ */
.balign 128
.L_ALT_op_nop: /* 0x00 */
@@ -12184,8 +12194,11 @@
jalr zero, t9 # (self, shadow_frame, dex_pc_ptr) Note: tail call.
.balign 128
+/* File: mips64/instruction_end_alt.S */
+
.global artMterpAsmAltInstructionEnd
artMterpAsmAltInstructionEnd:
+
/* File: mips64/footer.S */
/*
* We've detected a condition that will result in an exception, but the exception
diff --git a/runtime/interpreter/mterp/out/mterp_x86.S b/runtime/interpreter/mterp/out/mterp_x86.S
index 1eacfe8..6be70cc 100644
--- a/runtime/interpreter/mterp/out/mterp_x86.S
+++ b/runtime/interpreter/mterp/out/mterp_x86.S
@@ -405,6 +405,7 @@
GOTO_NEXT
/* NOTE: no fallthrough */
+/* File: x86/instruction_start.S */
.global SYMBOL(artMterpAsmInstructionStart)
SYMBOL(artMterpAsmInstructionStart) = .L_op_nop
@@ -6470,26 +6471,35 @@
.balign 128
+/* File: x86/instruction_end.S */
+
.global SYMBOL(artMterpAsmInstructionEnd)
SYMBOL(artMterpAsmInstructionEnd):
+
/*
* ===========================================================================
* Sister implementations
* ===========================================================================
*/
+/* File: x86/instruction_start_sister.S */
+
.global SYMBOL(artMterpAsmSisterStart)
.text
.balign 4
SYMBOL(artMterpAsmSisterStart):
+
+/* File: x86/instruction_end_sister.S */
+
.global SYMBOL(artMterpAsmSisterEnd)
SYMBOL(artMterpAsmSisterEnd):
+/* File: x86/instruction_start_alt.S */
.global SYMBOL(artMterpAsmAltInstructionStart)
.text
-
SYMBOL(artMterpAsmAltInstructionStart) = .L_ALT_op_nop
+
/* ------------------------------ */
.balign 128
.L_ALT_op_nop: /* 0x00 */
@@ -12635,8 +12645,11 @@
jmp .L_op_nop+(255*128)
.balign 128
+/* File: x86/instruction_end_alt.S */
+
.global SYMBOL(artMterpAsmAltInstructionEnd)
SYMBOL(artMterpAsmAltInstructionEnd):
+
/* File: x86/footer.S */
/*
* ===========================================================================
diff --git a/runtime/interpreter/mterp/out/mterp_x86_64.S b/runtime/interpreter/mterp/out/mterp_x86_64.S
index ea8f483..562cf7c 100644
--- a/runtime/interpreter/mterp/out/mterp_x86_64.S
+++ b/runtime/interpreter/mterp/out/mterp_x86_64.S
@@ -387,6 +387,7 @@
GOTO_NEXT
/* NOTE: no fallthrough */
+/* File: x86_64/instruction_start.S */
.global SYMBOL(artMterpAsmInstructionStart)
SYMBOL(artMterpAsmInstructionStart) = .L_op_nop
@@ -6217,26 +6218,35 @@
.balign 128
+/* File: x86_64/instruction_end.S */
+
.global SYMBOL(artMterpAsmInstructionEnd)
SYMBOL(artMterpAsmInstructionEnd):
+
/*
* ===========================================================================
* Sister implementations
* ===========================================================================
*/
+/* File: x86_64/instruction_start_sister.S */
+
.global SYMBOL(artMterpAsmSisterStart)
.text
.balign 4
SYMBOL(artMterpAsmSisterStart):
+
+/* File: x86_64/instruction_end_sister.S */
+
.global SYMBOL(artMterpAsmSisterEnd)
SYMBOL(artMterpAsmSisterEnd):
+/* File: x86_64/instruction_start_alt.S */
.global SYMBOL(artMterpAsmAltInstructionStart)
.text
-
SYMBOL(artMterpAsmAltInstructionStart) = .L_ALT_op_nop
+
/* ------------------------------ */
.balign 128
.L_ALT_op_nop: /* 0x00 */
@@ -11870,8 +11880,11 @@
jmp .L_op_nop+(255*128)
.balign 128
+/* File: x86_64/instruction_end_alt.S */
+
.global SYMBOL(artMterpAsmAltInstructionEnd)
SYMBOL(artMterpAsmAltInstructionEnd):
+
/* File: x86_64/footer.S */
/*
* ===========================================================================
diff --git a/runtime/interpreter/mterp/x86/instruction_end.S b/runtime/interpreter/mterp/x86/instruction_end.S
new file mode 100644
index 0000000..3a02a21
--- /dev/null
+++ b/runtime/interpreter/mterp/x86/instruction_end.S
@@ -0,0 +1,3 @@
+
+ .global SYMBOL(artMterpAsmInstructionEnd)
+SYMBOL(artMterpAsmInstructionEnd):
diff --git a/runtime/interpreter/mterp/x86/instruction_end_alt.S b/runtime/interpreter/mterp/x86/instruction_end_alt.S
new file mode 100644
index 0000000..33c2b8e
--- /dev/null
+++ b/runtime/interpreter/mterp/x86/instruction_end_alt.S
@@ -0,0 +1,3 @@
+
+ .global SYMBOL(artMterpAsmAltInstructionEnd)
+SYMBOL(artMterpAsmAltInstructionEnd):
diff --git a/runtime/interpreter/mterp/x86/instruction_end_sister.S b/runtime/interpreter/mterp/x86/instruction_end_sister.S
new file mode 100644
index 0000000..ea14b11
--- /dev/null
+++ b/runtime/interpreter/mterp/x86/instruction_end_sister.S
@@ -0,0 +1,3 @@
+
+ .global SYMBOL(artMterpAsmSisterEnd)
+SYMBOL(artMterpAsmSisterEnd):
diff --git a/runtime/interpreter/mterp/x86/instruction_start.S b/runtime/interpreter/mterp/x86/instruction_start.S
new file mode 100644
index 0000000..ca711de
--- /dev/null
+++ b/runtime/interpreter/mterp/x86/instruction_start.S
@@ -0,0 +1,4 @@
+
+ .global SYMBOL(artMterpAsmInstructionStart)
+SYMBOL(artMterpAsmInstructionStart) = .L_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/x86/instruction_start_alt.S b/runtime/interpreter/mterp/x86/instruction_start_alt.S
new file mode 100644
index 0000000..9272a6a
--- /dev/null
+++ b/runtime/interpreter/mterp/x86/instruction_start_alt.S
@@ -0,0 +1,4 @@
+
+ .global SYMBOL(artMterpAsmAltInstructionStart)
+ .text
+SYMBOL(artMterpAsmAltInstructionStart) = .L_ALT_op_nop
diff --git a/runtime/interpreter/mterp/x86/instruction_start_sister.S b/runtime/interpreter/mterp/x86/instruction_start_sister.S
new file mode 100644
index 0000000..b9ac994
--- /dev/null
+++ b/runtime/interpreter/mterp/x86/instruction_start_sister.S
@@ -0,0 +1,5 @@
+
+ .global SYMBOL(artMterpAsmSisterStart)
+ .text
+ .balign 4
+SYMBOL(artMterpAsmSisterStart):
diff --git a/runtime/interpreter/mterp/x86_64/instruction_end.S b/runtime/interpreter/mterp/x86_64/instruction_end.S
new file mode 100644
index 0000000..3a02a21
--- /dev/null
+++ b/runtime/interpreter/mterp/x86_64/instruction_end.S
@@ -0,0 +1,3 @@
+
+ .global SYMBOL(artMterpAsmInstructionEnd)
+SYMBOL(artMterpAsmInstructionEnd):
diff --git a/runtime/interpreter/mterp/x86_64/instruction_end_alt.S b/runtime/interpreter/mterp/x86_64/instruction_end_alt.S
new file mode 100644
index 0000000..33c2b8e
--- /dev/null
+++ b/runtime/interpreter/mterp/x86_64/instruction_end_alt.S
@@ -0,0 +1,3 @@
+
+ .global SYMBOL(artMterpAsmAltInstructionEnd)
+SYMBOL(artMterpAsmAltInstructionEnd):
diff --git a/runtime/interpreter/mterp/x86_64/instruction_end_sister.S b/runtime/interpreter/mterp/x86_64/instruction_end_sister.S
new file mode 100644
index 0000000..ea14b11
--- /dev/null
+++ b/runtime/interpreter/mterp/x86_64/instruction_end_sister.S
@@ -0,0 +1,3 @@
+
+ .global SYMBOL(artMterpAsmSisterEnd)
+SYMBOL(artMterpAsmSisterEnd):
diff --git a/runtime/interpreter/mterp/x86_64/instruction_start.S b/runtime/interpreter/mterp/x86_64/instruction_start.S
new file mode 100644
index 0000000..ca711de
--- /dev/null
+++ b/runtime/interpreter/mterp/x86_64/instruction_start.S
@@ -0,0 +1,4 @@
+
+ .global SYMBOL(artMterpAsmInstructionStart)
+SYMBOL(artMterpAsmInstructionStart) = .L_op_nop
+ .text
diff --git a/runtime/interpreter/mterp/x86_64/instruction_start_alt.S b/runtime/interpreter/mterp/x86_64/instruction_start_alt.S
new file mode 100644
index 0000000..9272a6a
--- /dev/null
+++ b/runtime/interpreter/mterp/x86_64/instruction_start_alt.S
@@ -0,0 +1,4 @@
+
+ .global SYMBOL(artMterpAsmAltInstructionStart)
+ .text
+SYMBOL(artMterpAsmAltInstructionStart) = .L_ALT_op_nop
diff --git a/runtime/interpreter/mterp/x86_64/instruction_start_sister.S b/runtime/interpreter/mterp/x86_64/instruction_start_sister.S
new file mode 100644
index 0000000..b9ac994
--- /dev/null
+++ b/runtime/interpreter/mterp/x86_64/instruction_start_sister.S
@@ -0,0 +1,5 @@
+
+ .global SYMBOL(artMterpAsmSisterStart)
+ .text
+ .balign 4
+SYMBOL(artMterpAsmSisterStart):