Commit 978edb24 authored by zhengxing.li's avatar zhengxing.li Committed by Commit bot

X87: [stubs] Convert GrowElementsStub to TurboFan.

  port eb841269 (r38371)

  original commit message:
  One caveat: the Crankshaft stub used to preserve callee-clobbered double
  registers, which is contrary to any real platform ABI that we support. Since the
  only current use of this stub is in Crankshaft, the instruction there now must
  be marked as double-clobbering. This might result in a small performance
  regression. However, when this stub is eventually used in TF-generated code, it
  will be called from deferred code that can save doubles only on the rarely-taken
  path... something that Crankshaft can't do.

BUG=

Review-Url: https://codereview.chromium.org/2226673002
Cr-Commit-Position: refs/heads/master@{#38465}
parent 59e2d106
......@@ -4307,8 +4307,7 @@ void LCodeGen::DoDeferredMaybeGrowElements(LMaybeGrowElements* instr) {
__ SmiTag(ebx);
}
GrowArrayElementsStub stub(isolate(), instr->hydrogen()->is_js_array(),
instr->hydrogen()->kind());
GrowArrayElementsStub stub(isolate(), instr->hydrogen()->kind());
__ CallStub(&stub);
RecordSafepointWithLazyDeopt(
instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
......
......@@ -2157,6 +2157,8 @@ class LMaybeGrowElements final : public LTemplateInstruction<1, 5, 0> {
LOperand* key() { return inputs_[3]; }
LOperand* current_capacity() { return inputs_[4]; }
bool ClobbersDoubleRegisters(Isolate* isolate) const override { return true; }
DECLARE_HYDROGEN_ACCESSOR(MaybeGrowElements)
DECLARE_CONCRETE_INSTRUCTION(MaybeGrowElements, "maybe-grow-elements")
};
......
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