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

Reply via email to