| Index: src/a64/code-stubs-a64.cc
|
| diff --git a/src/a64/code-stubs-a64.cc b/src/a64/code-stubs-a64.cc
|
| index 6a74e7ad0e12ae3de8c0afa4740edec426cba982..2dcfd991bad042fc5b37ef2d8d03882a8d790d3c 100644
|
| --- a/src/a64/code-stubs-a64.cc
|
| +++ b/src/a64/code-stubs-a64.cc
|
| @@ -1824,10 +1824,7 @@ void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) {
|
| __ Mov(x11, Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate)));
|
| __ Ldr(x10, MemOperand(x11));
|
|
|
| - // TODO(all): Pushing the marker twice seems unnecessary.
|
| - // In this case perhaps we could push xzr in the slot for the context
|
| - // (see MAsm::EnterFrame).
|
| - __ Push(x13, x12, x12, x10);
|
| + __ Push(x13, xzr, x12, x10);
|
| // Set up fp.
|
| __ Sub(fp, jssp, EntryFrameConstants::kCallerFPOffset);
|
|
|
| @@ -1873,7 +1870,6 @@ void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) {
|
| // field in the JSEnv and return a failure sentinel. Coming in here the
|
| // fp will be invalid because the PushTryHandler below sets it to 0 to
|
| // signal the existence of the JSEntry frame.
|
| - // TODO(jbramley): Do this in the Assembler.
|
| __ Mov(x10, Operand(ExternalReference(Isolate::kPendingExceptionAddress,
|
| isolate)));
|
| }
|
| @@ -4141,12 +4137,13 @@ void SubStringStub::Generate(MacroAssembler* masm) {
|
| __ Bind(&update_instance_type);
|
| __ Ldr(temp, FieldMemOperand(unpacked_string, HeapObject::kMapOffset));
|
| __ Ldrb(input_type, FieldMemOperand(temp, Map::kInstanceTypeOffset));
|
| - // TODO(all): This generates "b #+0x4". Can these be optimised out?
|
| - __ B(&underlying_unpacked);
|
| + // Now control must go to &underlying_unpacked. Since the no code is generated
|
| + // before then we fall through instead of generating a useless branch.
|
|
|
| __ Bind(&seq_or_external_string);
|
| // Sequential or external string. Registers unpacked_string and input_string
|
| // alias, so there's nothing to do here.
|
| + // Note that if code is added here, the above code must be updated.
|
|
|
| // x0 result_string pointer to result string object (uninit)
|
| // x1 result_length length of substring result
|
| @@ -4273,7 +4270,6 @@ void SubStringStub::Generate(MacroAssembler* masm) {
|
| input_string, from, result_length, x0,
|
| &runtime, &runtime, &runtime, STRING_INDEX_IS_NUMBER);
|
| generator.GenerateFast(masm);
|
| - // TODO(jbramley): Why doesn't this jump to return_x0?
|
| __ Drop(3);
|
| __ Ret();
|
| generator.SkipSlow(masm, &runtime);
|
| @@ -4510,7 +4506,6 @@ void ArrayPushStub::Generate(MacroAssembler* masm) {
|
| Operand::UntagSmiAndScale(length, kPointerSizeLog2));
|
| __ Str(value, MemOperand(end_elements, kEndElementsOffset, PreIndex));
|
| } else {
|
| - // TODO(all): ARM has a redundant cmp here.
|
| __ B(gt, &call_builtin);
|
|
|
| __ Peek(value, (argc - 1) * kPointerSize);
|
| @@ -5707,7 +5702,6 @@ void CallApiFunctionStub::Generate(MacroAssembler* masm) {
|
| FrameScope frame_scope(masm, StackFrame::MANUAL);
|
| __ EnterExitFrame(false, x10, kApiStackSpace + kCallApiFunctionSpillSpace);
|
|
|
| - // TODO(all): Optimize this with stp and suchlike.
|
| ASSERT(!AreAliased(x0, api_function_address));
|
| // x0 = FunctionCallbackInfo&
|
| // Arguments is after the return address.
|
|
|