Reviewers: jochen, ulan,
Description:
A64: Let the Simulator trap BLR XZR instructions.
This instruction is used as a guard for the constant pool.
Please review this at https://codereview.chromium.org/170673003/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+5, -0 lines):
M src/a64/simulator-a64.cc
Index: src/a64/simulator-a64.cc
diff --git a/src/a64/simulator-a64.cc b/src/a64/simulator-a64.cc
index
e0a0d62a02a695128f50cbc2821c2c776e89401e..014b71477def993b76a8d1c6d953b8c0b67403fe
100644
--- a/src/a64/simulator-a64.cc
+++ b/src/a64/simulator-a64.cc
@@ -986,6 +986,11 @@ void
Simulator::VisitUnconditionalBranchToRegister(Instruction* instr) {
switch (instr->Mask(UnconditionalBranchToRegisterMask)) {
case BLR: {
set_lr(instr->NextInstruction());
+ if (instr->Rn() == 31) {
+ // BLR XZR is used as a guard for the constant pool. We should
never hit
+ // this, but if we do trap to allow debugging.
+ Debug();
+ }
// Fall through.
}
case BR:
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.