Remove invalid slow assert in arm64's SmiUntag

The assertion is invalid if dst aliases src, which is the case in
InterpreterOnStackReplacement:

  __ SmiUntag(x1,
              FieldMemOperand(x1, FixedArray::OffsetOfElementAt(
                                      DeoptimizationData::kOsrPcOffsetIndex)));

This didn't fail so far because slow asserts in snapshotted code are
never executed.

Bug: v8:7853
Change-Id: I5b2dad780da94b5821aa9a624a3fcb9d083b3aa3
Reviewed-on: https://chromium-review.googlesource.com/1109503
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53905}
This commit is contained in:
jgruber 2018-06-21 08:03:02 +02:00 committed by Commit Bot
parent 4735bc7e6b
commit 9498d609a0

View File

@ -1054,10 +1054,6 @@ void TurboAssembler::SmiUntag(Register dst, const MemOperand& src) {
DCHECK(dst.Is64Bits());
if (SmiValuesAre32Bits()) {
if (src.IsImmediateOffset() && src.shift_amount() == 0) {
if (FLAG_enable_slow_asserts) {
Ldr(dst, src);
AssertSmi(dst);
}
// Load value directly from the upper half-word.
// Assumes that Smis are shifted by 32 bits and little endianness.
DCHECK_EQ(kSmiShift, 32);