Commit 12a9ee3a authored by Igor Sheludko's avatar Igor Sheludko Committed by Commit Bot

[ptr-compr] Switch to 31 bit Smis on 64-bit architectures

32 bit Smis are incompatible with pointer compression so we land disable
them before enabling pointer compression in order to separate memory and
performance regressions caused by 31 bit Smis from pointer compression
change.

Bug: v8:9767
Change-Id: I3d4a675df4208f808b1ba6e7816be545eae0dc24
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1815249Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63934}
parent 2c17e49a
...@@ -108,7 +108,7 @@ declare_args() { ...@@ -108,7 +108,7 @@ declare_args() {
# Enable pointer compression (sets -dV8_COMPRESS_POINTERS). # Enable pointer compression (sets -dV8_COMPRESS_POINTERS).
v8_enable_pointer_compression = false v8_enable_pointer_compression = false
v8_enable_31bit_smis_on_64bit_arch = false v8_enable_31bit_smis_on_64bit_arch = true
# Sets -dOBJECT_PRINT. # Sets -dOBJECT_PRINT.
v8_enable_object_print = "" v8_enable_object_print = ""
......
...@@ -1146,7 +1146,7 @@ TNode<BoolT> CodeStubAssembler::TaggedIsPositiveSmi(SloppyTNode<Object> a) { ...@@ -1146,7 +1146,7 @@ TNode<BoolT> CodeStubAssembler::TaggedIsPositiveSmi(SloppyTNode<Object> a) {
return Word32Equal( return Word32Equal(
Word32And( Word32And(
TruncateIntPtrToInt32(BitcastTaggedToWordForTagAndSmiBits(a)), TruncateIntPtrToInt32(BitcastTaggedToWordForTagAndSmiBits(a)),
Uint32Constant(kSmiTagMask | static_cast<int32_t>(kSmiSignMask))), Uint32Constant(static_cast<uint32_t>(kSmiTagMask | kSmiSignMask))),
Int32Constant(0)); Int32Constant(0));
#else #else
return WordEqual(WordAnd(BitcastTaggedToWordForTagAndSmiBits(a), return WordEqual(WordAnd(BitcastTaggedToWordForTagAndSmiBits(a),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment