ART: Let mterp know about invoke-custom
By default, the mterp assembly interpreter will redirect any
new or unexpected dex opcode to the reference switch interpreter.
That's what is happening now with the new invoke-custom opcodes.
This CL simply makes that fallback transition explicit.
Test: ART_TEST_INTERPRETER=true m test-art-host
Change-Id: I9e1388ce58cb6e0618697748c6bafa55fdbbeb57
diff --git a/runtime/interpreter/mterp/config_arm b/runtime/interpreter/mterp/config_arm
index 6d9774c..b19426b 100644
--- a/runtime/interpreter/mterp/config_arm
+++ b/runtime/interpreter/mterp/config_arm
@@ -288,8 +288,8 @@
# op op_unused_f9 FALLBACK
op op_invoke_polymorphic FALLBACK
op op_invoke_polymorphic_range FALLBACK
- # op op_unused_fc FALLBACK
- # op op_unused_fd FALLBACK
+ op op_invoke_custom FALLBACK
+ op op_invoke_custom_range FALLBACK
# op op_unused_fe FALLBACK
# op op_unused_ff FALLBACK
op-end
diff --git a/runtime/interpreter/mterp/config_arm64 b/runtime/interpreter/mterp/config_arm64
index 9f32695..0987964 100644
--- a/runtime/interpreter/mterp/config_arm64
+++ b/runtime/interpreter/mterp/config_arm64
@@ -286,8 +286,8 @@
# op op_unused_f9 FALLBACK
op op_invoke_polymorphic FALLBACK
op op_invoke_polymorphic_range FALLBACK
- # op op_unused_fc FALLBACK
- # op op_unused_fd FALLBACK
+ op op_invoke_custom FALLBACK
+ op op_invoke_custom_range FALLBACK
# op op_unused_fe FALLBACK
# op op_unused_ff FALLBACK
op-end
diff --git a/runtime/interpreter/mterp/config_mips b/runtime/interpreter/mterp/config_mips
index 708a22b..fe07385 100644
--- a/runtime/interpreter/mterp/config_mips
+++ b/runtime/interpreter/mterp/config_mips
@@ -288,8 +288,8 @@
# op op_unused_f9 FALLBACK
op op_invoke_polymorphic FALLBACK
op op_invoke_polymorphic_range FALLBACK
- # op op_unused_fc FALLBACK
- # op op_unused_fd FALLBACK
+ op op_invoke_custom FALLBACK
+ op op_invoke_custom_range FALLBACK
# op op_unused_fe FALLBACK
# op op_unused_ff FALLBACK
op-end
diff --git a/runtime/interpreter/mterp/config_mips64 b/runtime/interpreter/mterp/config_mips64
index 7643a48..d24cf4d 100644
--- a/runtime/interpreter/mterp/config_mips64
+++ b/runtime/interpreter/mterp/config_mips64
@@ -288,8 +288,8 @@
# op op_unused_f9 FALLBACK
op op_invoke_polymorphic FALLBACK
op op_invoke_polymorphic_range FALLBACK
- # op op_unused_fc FALLBACK
- # op op_unused_fd FALLBACK
+ op op_invoke_custom FALLBACK
+ op op_invoke_custom_range FALLBACK
# op op_unused_fe FALLBACK
# op op_unused_ff FALLBACK
op-end
diff --git a/runtime/interpreter/mterp/config_x86 b/runtime/interpreter/mterp/config_x86
index f454786..076baf2 100644
--- a/runtime/interpreter/mterp/config_x86
+++ b/runtime/interpreter/mterp/config_x86
@@ -292,8 +292,8 @@
# op op_unused_f9 FALLBACK
op op_invoke_polymorphic FALLBACK
op op_invoke_polymorphic_range FALLBACK
- # op op_unused_fc FALLBACK
- # op op_unused_fd FALLBACK
+ op op_invoke_custom FALLBACK
+ op op_invoke_custom_range FALLBACK
# op op_unused_fe FALLBACK
# op op_unused_ff FALLBACK
op-end
diff --git a/runtime/interpreter/mterp/config_x86_64 b/runtime/interpreter/mterp/config_x86_64
index dbfd3d1..44b671a 100644
--- a/runtime/interpreter/mterp/config_x86_64
+++ b/runtime/interpreter/mterp/config_x86_64
@@ -292,8 +292,8 @@
# op op_unused_f9 FALLBACK
op op_invoke_polymorphic FALLBACK
op op_invoke_polymorphic_range FALLBACK
- # op op_unused_fc FALLBACK
- # op op_unused_fd FALLBACK
+ op op_invoke_custom FALLBACK
+ op op_invoke_custom_range FALLBACK
# op op_unused_fe FALLBACK
# op op_unused_ff FALLBACK
op-end
diff --git a/runtime/interpreter/mterp/out/mterp_arm.S b/runtime/interpreter/mterp/out/mterp_arm.S
index 8916241..576020f 100644
--- a/runtime/interpreter/mterp/out/mterp_arm.S
+++ b/runtime/interpreter/mterp/out/mterp_arm.S
@@ -7347,24 +7347,16 @@
/* ------------------------------ */
.balign 128
-.L_op_unused_fc: /* 0xfc */
-/* File: arm/op_unused_fc.S */
-/* File: arm/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
- b MterpFallback
+.L_op_invoke_custom: /* 0xfc */
+/* Transfer stub to alternate interpreter */
+ b MterpFallback
/* ------------------------------ */
.balign 128
-.L_op_unused_fd: /* 0xfd */
-/* File: arm/op_unused_fd.S */
-/* File: arm/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
- b MterpFallback
+.L_op_invoke_custom_range: /* 0xfd */
+/* Transfer stub to alternate interpreter */
+ b MterpFallback
/* ------------------------------ */
@@ -11763,7 +11755,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fc: /* 0xfc */
+.L_ALT_op_invoke_custom: /* 0xfc */
/* File: arm/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
@@ -11780,7 +11772,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fd: /* 0xfd */
+.L_ALT_op_invoke_custom_range: /* 0xfd */
/* File: arm/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
diff --git a/runtime/interpreter/mterp/out/mterp_arm64.S b/runtime/interpreter/mterp/out/mterp_arm64.S
index 7d442c0..a7b5587 100644
--- a/runtime/interpreter/mterp/out/mterp_arm64.S
+++ b/runtime/interpreter/mterp/out/mterp_arm64.S
@@ -6914,24 +6914,16 @@
/* ------------------------------ */
.balign 128
-.L_op_unused_fc: /* 0xfc */
-/* File: arm64/op_unused_fc.S */
-/* File: arm64/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
- b MterpFallback
+.L_op_invoke_custom: /* 0xfc */
+/* Transfer stub to alternate interpreter */
+ b MterpFallback
/* ------------------------------ */
.balign 128
-.L_op_unused_fd: /* 0xfd */
-/* File: arm64/op_unused_fd.S */
-/* File: arm64/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
- b MterpFallback
+.L_op_invoke_custom_range: /* 0xfd */
+/* Transfer stub to alternate interpreter */
+ b MterpFallback
/* ------------------------------ */
@@ -11580,7 +11572,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fc: /* 0xfc */
+.L_ALT_op_invoke_custom: /* 0xfc */
/* File: arm64/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
@@ -11597,7 +11589,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fd: /* 0xfd */
+.L_ALT_op_invoke_custom_range: /* 0xfd */
/* File: arm64/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
diff --git a/runtime/interpreter/mterp/out/mterp_mips.S b/runtime/interpreter/mterp/out/mterp_mips.S
index e154e6c..b47c019 100644
--- a/runtime/interpreter/mterp/out/mterp_mips.S
+++ b/runtime/interpreter/mterp/out/mterp_mips.S
@@ -7761,25 +7761,15 @@
/* ------------------------------ */
.balign 128
-.L_op_unused_fc: /* 0xfc */
-/* File: mips/op_unused_fc.S */
-/* File: mips/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
- b MterpFallback
-
+.L_op_invoke_custom: /* 0xfc */
+/* Transfer stub to alternate interpreter */
+ b MterpFallback
/* ------------------------------ */
.balign 128
-.L_op_unused_fd: /* 0xfd */
-/* File: mips/op_unused_fd.S */
-/* File: mips/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
- b MterpFallback
-
+.L_op_invoke_custom_range: /* 0xfd */
+/* Transfer stub to alternate interpreter */
+ b MterpFallback
/* ------------------------------ */
.balign 128
@@ -12423,7 +12413,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fc: /* 0xfc */
+.L_ALT_op_invoke_custom: /* 0xfc */
/* File: mips/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
@@ -12441,7 +12431,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fd: /* 0xfd */
+.L_ALT_op_invoke_custom_range: /* 0xfd */
/* File: mips/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
diff --git a/runtime/interpreter/mterp/out/mterp_mips64.S b/runtime/interpreter/mterp/out/mterp_mips64.S
index 013bb32..e1867d0 100644
--- a/runtime/interpreter/mterp/out/mterp_mips64.S
+++ b/runtime/interpreter/mterp/out/mterp_mips64.S
@@ -7084,26 +7084,16 @@
/* ------------------------------ */
.balign 128
-.L_op_unused_fc: /* 0xfc */
-/* File: mips64/op_unused_fc.S */
-/* File: mips64/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
+.L_op_invoke_custom: /* 0xfc */
+/* Transfer stub to alternate interpreter */
b MterpFallback
-
/* ------------------------------ */
.balign 128
-.L_op_unused_fd: /* 0xfd */
-/* File: mips64/op_unused_fd.S */
-/* File: mips64/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
+.L_op_invoke_custom_range: /* 0xfd */
+/* Transfer stub to alternate interpreter */
b MterpFallback
-
/* ------------------------------ */
.balign 128
.L_op_unused_fe: /* 0xfe */
@@ -11982,7 +11972,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fc: /* 0xfc */
+.L_ALT_op_invoke_custom: /* 0xfc */
/* File: mips64/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
@@ -12001,7 +11991,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fd: /* 0xfd */
+.L_ALT_op_invoke_custom_range: /* 0xfd */
/* File: mips64/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
diff --git a/runtime/interpreter/mterp/out/mterp_x86.S b/runtime/interpreter/mterp/out/mterp_x86.S
index 695d1e4..aab20f5 100644
--- a/runtime/interpreter/mterp/out/mterp_x86.S
+++ b/runtime/interpreter/mterp/out/mterp_x86.S
@@ -6292,23 +6292,15 @@
/* ------------------------------ */
.balign 128
-.L_op_unused_fc: /* 0xfc */
-/* File: x86/op_unused_fc.S */
-/* File: x86/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
+.L_op_invoke_custom: /* 0xfc */
+/* Transfer stub to alternate interpreter */
jmp MterpFallback
/* ------------------------------ */
.balign 128
-.L_op_unused_fd: /* 0xfd */
-/* File: x86/op_unused_fd.S */
-/* File: x86/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
+.L_op_invoke_custom_range: /* 0xfd */
+/* Transfer stub to alternate interpreter */
jmp MterpFallback
@@ -12410,7 +12402,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fc: /* 0xfc */
+.L_ALT_op_invoke_custom: /* 0xfc */
/* File: x86/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
@@ -12434,7 +12426,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fd: /* 0xfd */
+.L_ALT_op_invoke_custom_range: /* 0xfd */
/* File: x86/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
diff --git a/runtime/interpreter/mterp/out/mterp_x86_64.S b/runtime/interpreter/mterp/out/mterp_x86_64.S
index 2eab58c..eb57066 100644
--- a/runtime/interpreter/mterp/out/mterp_x86_64.S
+++ b/runtime/interpreter/mterp/out/mterp_x86_64.S
@@ -6057,23 +6057,15 @@
/* ------------------------------ */
.balign 128
-.L_op_unused_fc: /* 0xfc */
-/* File: x86_64/op_unused_fc.S */
-/* File: x86_64/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
+.L_op_invoke_custom: /* 0xfc */
+/* Transfer stub to alternate interpreter */
jmp MterpFallback
/* ------------------------------ */
.balign 128
-.L_op_unused_fd: /* 0xfd */
-/* File: x86_64/op_unused_fd.S */
-/* File: x86_64/unused.S */
-/*
- * Bail to reference interpreter to throw.
- */
+.L_op_invoke_custom_range: /* 0xfd */
+/* Transfer stub to alternate interpreter */
jmp MterpFallback
@@ -11671,7 +11663,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fc: /* 0xfc */
+.L_ALT_op_invoke_custom: /* 0xfc */
/* File: x86_64/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle
@@ -11693,7 +11685,7 @@
/* ------------------------------ */
.balign 128
-.L_ALT_op_unused_fd: /* 0xfd */
+.L_ALT_op_invoke_custom_range: /* 0xfd */
/* File: x86_64/alt_stub.S */
/*
* Inter-instruction transfer stub. Call out to MterpCheckBefore to handle