Index: src/code-stub-assembler.cc |
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc |
index 5dbf000c9286a012383f291f6699f1e793ab6f6f..9aa67811cd6733900a64535e097cdee9448d6fe8 100644 |
--- a/src/code-stub-assembler.cc |
+++ b/src/code-stub-assembler.cc |
@@ -367,7 +367,9 @@ |
Node* no_runtime_result = top; |
StoreNoWriteBarrier(MachineType::PointerRepresentation(), top_address, |
new_top); |
- result.Bind(BitcastWordToTagged(no_runtime_result)); |
+ no_runtime_result = BitcastWordToTagged( |
+ IntPtrAdd(no_runtime_result, IntPtrConstant(kHeapObjectTag))); |
+ result.Bind(no_runtime_result); |
Goto(&merge_runtime); |
Bind(&merge_runtime); |
@@ -385,9 +387,8 @@ |
if (flags & kDoubleAlignment) { |
// TODO(epertoso): Simd128 alignment. |
Label aligned(this), not_aligned(this), merge(this, &adjusted_size); |
- Branch(WordAnd(IntPtrSub(top, IntPtrConstant(kHeapObjectTag)), |
- IntPtrConstant(kDoubleAlignmentMask)), |
- ¬_aligned, &aligned); |
+ Branch(WordAnd(top, IntPtrConstant(kDoubleAlignmentMask)), ¬_aligned, |
+ &aligned); |
Bind(¬_aligned); |
Node* not_aligned_size = |