@@ -1355,7 +1355,18 @@
// If this is a null check, then add the start of the previous instruction to the list
else if( mach->is_MachNullCheck() ) {
+#ifdef AARCH64
+ /* aarch64 may issue multiple instruction sequences.
+ * The implicit exception must point to the load/store instruction.
+ * However, the load/store will always be the last instruction.
+ * Since instructions sequences are fixed size we can simply
+ * use current_offset - NativeInstruction::instruction_size
+ * x86 cannot do this because of variable size instructions.
+ */
+ inct_starts[inct_cnt++] = current_offset - NativeInstruction::instruction_size;
+#else
inct_starts[inct_cnt++] = previous_offset;
+#endif
}
// If this is a branch, then fill in the label with the target BB's label