Revision: 19208
Author: [email protected]
Date: Fri Feb 7 17:56:30 2014 UTC
Log: A64: Check that branch targets are reachable.
Assembling a branch that cannot reach its target is a security hole.
This patch prepares incoming changes that let the MacroAssembler handle
branches
to distant targets.
[email protected]
Review URL: https://codereview.chromium.org/157683003
http://code.google.com/p/v8/source/detail?r=19208
Modified:
/branches/experimental/a64/src/a64/assembler-a64-inl.h
=======================================
--- /branches/experimental/a64/src/a64/assembler-a64-inl.h Thu Feb 6
14:30:18 2014 UTC
+++ /branches/experimental/a64/src/a64/assembler-a64-inl.h Fri Feb 7
17:56:30 2014 UTC
@@ -884,7 +884,7 @@
Instr Assembler::ImmPCRelAddress(int imm21) {
- ASSERT(is_int21(imm21));
+ CHECK(is_int21(imm21));
Instr imm = static_cast<Instr>(truncate_to_int21(imm21));
Instr immhi = (imm >> ImmPCRelLo_width) << ImmPCRelHi_offset;
Instr immlo = imm << ImmPCRelLo_offset;
@@ -893,25 +893,25 @@
Instr Assembler::ImmUncondBranch(int imm26) {
- ASSERT(is_int26(imm26));
+ CHECK(is_int26(imm26));
return truncate_to_int26(imm26) << ImmUncondBranch_offset;
}
Instr Assembler::ImmCondBranch(int imm19) {
- ASSERT(is_int19(imm19));
+ CHECK(is_int19(imm19));
return truncate_to_int19(imm19) << ImmCondBranch_offset;
}
Instr Assembler::ImmCmpBranch(int imm19) {
- ASSERT(is_int19(imm19));
+ CHECK(is_int19(imm19));
return truncate_to_int19(imm19) << ImmCmpBranch_offset;
}
Instr Assembler::ImmTestBranch(int imm14) {
- ASSERT(is_int14(imm14));
+ CHECK(is_int14(imm14));
return truncate_to_int14(imm14) << ImmTestBranch_offset;
}
@@ -978,7 +978,7 @@
Instr Assembler::ImmLLiteral(int imm19) {
- ASSERT(is_int19(imm19));
+ CHECK(is_int19(imm19));
return truncate_to_int19(imm19) << ImmLLiteral_offset;
}
--
--
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.