Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: src/mips/code-stubs-mips.cc

Issue 12328162: Merged r13654, r13655, r13657, r13695 into 3.16 branch. (Closed) Base URL: https://v8.googlecode.com/svn/branches/3.16
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/mips/assembler-mips-inl.h ('k') | src/mips/codegen-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 Isolate* isolate, 43 Isolate* isolate,
44 CodeStubInterfaceDescriptor* descriptor) { 44 CodeStubInterfaceDescriptor* descriptor) {
45 static Register registers[] = { a1, a0 }; 45 static Register registers[] = { a1, a0 };
46 descriptor->register_param_count_ = 2; 46 descriptor->register_param_count_ = 2;
47 descriptor->register_params_ = registers; 47 descriptor->register_params_ = registers;
48 descriptor->deoptimization_handler_ = 48 descriptor->deoptimization_handler_ =
49 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure); 49 FUNCTION_ADDR(KeyedLoadIC_MissFromStubFailure);
50 } 50 }
51 51
52 52
53 void TransitionElementsKindStub::InitializeInterfaceDescriptor(
54 Isolate* isolate,
55 CodeStubInterfaceDescriptor* descriptor) {
56 static Register registers[] = { a0, a1 };
57 descriptor->register_param_count_ = 2;
58 descriptor->register_params_ = registers;
59 Address entry =
60 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry;
61 descriptor->deoptimization_handler_ = FUNCTION_ADDR(entry);
62 }
63
64
53 #define __ ACCESS_MASM(masm) 65 #define __ ACCESS_MASM(masm)
54 66
55 static void EmitIdenticalObjectComparison(MacroAssembler* masm, 67 static void EmitIdenticalObjectComparison(MacroAssembler* masm,
56 Label* slow, 68 Label* slow,
57 Condition cc); 69 Condition cc);
58 static void EmitSmiNonsmiComparison(MacroAssembler* masm, 70 static void EmitSmiNonsmiComparison(MacroAssembler* masm,
59 Register lhs, 71 Register lhs,
60 Register rhs, 72 Register rhs,
61 Label* rhs_not_nan, 73 Label* rhs_not_nan,
62 Label* slow, 74 Label* slow,
(...skipping 7912 matching lines...) Expand 10 before | Expand all | Expand 10 after
7975 __ Ret(USE_DELAY_SLOT); 7987 __ Ret(USE_DELAY_SLOT);
7976 __ mov(v0, a0); 7988 __ mov(v0, a0);
7977 } 7989 }
7978 7990
7979 7991
7980 void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { 7992 void StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
7981 ASSERT(!Serializer::enabled()); 7993 ASSERT(!Serializer::enabled());
7982 bool save_fp_regs = CpuFeatures::IsSupported(FPU); 7994 bool save_fp_regs = CpuFeatures::IsSupported(FPU);
7983 CEntryStub ces(1, save_fp_regs ? kSaveFPRegs : kDontSaveFPRegs); 7995 CEntryStub ces(1, save_fp_regs ? kSaveFPRegs : kDontSaveFPRegs);
7984 __ Call(ces.GetCode(), RelocInfo::CODE_TARGET); 7996 __ Call(ces.GetCode(), RelocInfo::CODE_TARGET);
7997 int parameter_count_offset =
7998 StubFailureTrampolineFrame::kCallerStackParameterCountFrameOffset;
7999 __ lw(a1, MemOperand(fp, parameter_count_offset));
7985 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); 8000 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
8001 __ sll(a1, a1, kPointerSizeLog2);
8002 __ Addu(sp, sp, a1);
7986 __ Ret(); 8003 __ Ret();
7987 } 8004 }
7988 8005
7989 8006
7990 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { 8007 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) {
7991 if (entry_hook_ != NULL) { 8008 if (entry_hook_ != NULL) {
7992 ProfileEntryHookStub stub; 8009 ProfileEntryHookStub stub;
7993 __ push(ra); 8010 __ push(ra);
7994 __ CallStub(&stub); 8011 __ CallStub(&stub);
7995 __ pop(ra); 8012 __ pop(ra);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
8045 __ Pop(ra, t1, a1); 8062 __ Pop(ra, t1, a1);
8046 __ Ret(); 8063 __ Ret();
8047 } 8064 }
8048 8065
8049 8066
8050 #undef __ 8067 #undef __
8051 8068
8052 } } // namespace v8::internal 8069 } } // namespace v8::internal
8053 8070
8054 #endif // V8_TARGET_ARCH_MIPS 8071 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/mips/assembler-mips-inl.h ('k') | src/mips/codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698