Reviewers: Yang,
Message:
This fixes IA32 only. For X64 we already use the smaller version. For ARM we
either use the ARMv7 "ubfx" instruction or a two-instruction supplement, in
both
cases the mask fits into the immediate.
Description:
Make instruction for write barrier smaller.
[email protected]
BUG=v8:1495
Please review this at http://codereview.chromium.org/7703007/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/ia32/macro-assembler-ia32.cc
Index: src/ia32/macro-assembler-ia32.cc
diff --git a/src/ia32/macro-assembler-ia32.cc
b/src/ia32/macro-assembler-ia32.cc
index
04e6cde4ed149da8da2151c0b759936e34ceab9b..9df5cad915a0a615e0510d514c70d19b16893730
100644
--- a/src/ia32/macro-assembler-ia32.cc
+++ b/src/ia32/macro-assembler-ia32.cc
@@ -69,8 +69,8 @@ void MacroAssembler::RecordWriteHelper(Register object,
// Compute number of region covering addr. See
Page::GetRegionNumberForAddress
// method for more details.
- and_(addr, Page::kPageAlignmentMask);
shr(addr, Page::kRegionSizeLog2);
+ and_(addr, Page::kPageAlignmentMask >> Page::kRegionSizeLog2);
// Set dirty mark for region.
// Bit tests with a memory operand should be avoided on Intel processors,
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev