| Index: src/mips/stub-cache-mips.cc
|
| diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc
|
| index 12d9053d22183d960c9104a0ec8294ea18bedadb..c819ce2259158dbce7d626e9fda7986296281abb 100644
|
| --- a/src/mips/stub-cache-mips.cc
|
| +++ b/src/mips/stub-cache-mips.cc
|
| @@ -1872,135 +1872,6 @@ Handle<Code> CallStubCompiler::CompileArrayPopCall(
|
| }
|
|
|
|
|
| -Handle<Code> CallStubCompiler::CompileStringCharCodeAtCall(
|
| - Handle<Object> object,
|
| - Handle<JSObject> holder,
|
| - Handle<Cell> cell,
|
| - Handle<JSFunction> function,
|
| - Handle<String> name,
|
| - Code::StubType type) {
|
| - // If object is not a string, bail out to regular call.
|
| - if (!object->IsString() || !cell.is_null()) return Handle<Code>::null();
|
| -
|
| - Label miss;
|
| - Label name_miss;
|
| - Label index_out_of_range;
|
| -
|
| - Label* index_out_of_range_label = &index_out_of_range;
|
| -
|
| - if (kind_ == Code::CALL_IC &&
|
| - (CallICBase::StringStubState::decode(extra_state()) ==
|
| - DEFAULT_STRING_STUB)) {
|
| - index_out_of_range_label = &miss;
|
| - }
|
| -
|
| - HandlerFrontendHeader(object, holder, name, STRING_CHECK, &name_miss);
|
| -
|
| - Register receiver = a0;
|
| - Register index = t1;
|
| - Register result = a1;
|
| - const int argc = arguments().immediate();
|
| - __ lw(receiver, MemOperand(sp, argc * kPointerSize));
|
| - if (argc > 0) {
|
| - __ lw(index, MemOperand(sp, (argc - 1) * kPointerSize));
|
| - } else {
|
| - __ LoadRoot(index, Heap::kUndefinedValueRootIndex);
|
| - }
|
| -
|
| - StringCharCodeAtGenerator generator(receiver,
|
| - index,
|
| - result,
|
| - &miss, // When not a string.
|
| - &miss, // When not a number.
|
| - index_out_of_range_label,
|
| - STRING_INDEX_IS_NUMBER);
|
| - generator.GenerateFast(masm());
|
| - __ mov(v0, result);
|
| - __ DropAndRet(argc + 1);
|
| -
|
| - StubRuntimeCallHelper call_helper;
|
| - generator.GenerateSlow(masm(), call_helper);
|
| -
|
| - if (index_out_of_range.is_linked()) {
|
| - __ bind(&index_out_of_range);
|
| - __ LoadRoot(v0, Heap::kNanValueRootIndex);
|
| - __ DropAndRet(argc + 1);
|
| - }
|
| -
|
| - __ bind(&miss);
|
| - // Restore function name in a2.
|
| - __ li(a2, name);
|
| - HandlerFrontendFooter(&name_miss);
|
| -
|
| - // Return the generated code.
|
| - return GetCode(type, name);
|
| -}
|
| -
|
| -
|
| -Handle<Code> CallStubCompiler::CompileStringCharAtCall(
|
| - Handle<Object> object,
|
| - Handle<JSObject> holder,
|
| - Handle<Cell> cell,
|
| - Handle<JSFunction> function,
|
| - Handle<String> name,
|
| - Code::StubType type) {
|
| - // If object is not a string, bail out to regular call.
|
| - if (!object->IsString() || !cell.is_null()) return Handle<Code>::null();
|
| -
|
| - const int argc = arguments().immediate();
|
| - Label miss;
|
| - Label name_miss;
|
| - Label index_out_of_range;
|
| - Label* index_out_of_range_label = &index_out_of_range;
|
| - if (kind_ == Code::CALL_IC &&
|
| - (CallICBase::StringStubState::decode(extra_state()) ==
|
| - DEFAULT_STRING_STUB)) {
|
| - index_out_of_range_label = &miss;
|
| - }
|
| -
|
| - HandlerFrontendHeader(object, holder, name, STRING_CHECK, &name_miss);
|
| -
|
| - Register receiver = a0;
|
| - Register index = t1;
|
| - Register scratch = a3;
|
| - Register result = a1;
|
| - if (argc > 0) {
|
| - __ lw(index, MemOperand(sp, (argc - 1) * kPointerSize));
|
| - } else {
|
| - __ LoadRoot(index, Heap::kUndefinedValueRootIndex);
|
| - }
|
| -
|
| - StringCharAtGenerator generator(receiver,
|
| - index,
|
| - scratch,
|
| - result,
|
| - &miss, // When not a string.
|
| - &miss, // When not a number.
|
| - index_out_of_range_label,
|
| - STRING_INDEX_IS_NUMBER);
|
| - generator.GenerateFast(masm());
|
| - __ mov(v0, result);
|
| - __ DropAndRet(argc + 1);
|
| -
|
| - StubRuntimeCallHelper call_helper;
|
| - generator.GenerateSlow(masm(), call_helper);
|
| -
|
| - if (index_out_of_range.is_linked()) {
|
| - __ bind(&index_out_of_range);
|
| - __ LoadRoot(v0, Heap::kempty_stringRootIndex);
|
| - __ DropAndRet(argc + 1);
|
| - }
|
| -
|
| - __ bind(&miss);
|
| - // Restore function name in a2.
|
| - __ li(a2, name);
|
| - HandlerFrontendFooter(&name_miss);
|
| -
|
| - // Return the generated code.
|
| - return GetCode(type, name);
|
| -}
|
| -
|
| -
|
| Handle<Code> CallStubCompiler::CompileStringFromCharCodeCall(
|
| Handle<Object> object,
|
| Handle<JSObject> holder,
|
|
|