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

Side by Side Diff: runtime/vm/stub_code_mips.cc

Issue 2403613002: Reduce size of monomorphic checked entry. (Closed)
Patch Set: . Created 4 years, 2 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" 5 #include "vm/globals.h"
6 #if defined(TARGET_ARCH_MIPS) 6 #if defined(TARGET_ARCH_MIPS)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/code_generator.h" 9 #include "vm/code_generator.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 2353 matching lines...) Expand 10 before | Expand all | Expand 10 after
2364 2364
2365 __ lw(CODE_REG, Address(THR, Thread::ic_lookup_through_code_stub_offset())); 2365 __ lw(CODE_REG, Address(THR, Thread::ic_lookup_through_code_stub_offset()));
2366 __ lw(T1, FieldAddress(CODE_REG, Code::checked_entry_point_offset())); 2366 __ lw(T1, FieldAddress(CODE_REG, Code::checked_entry_point_offset()));
2367 __ jr(T1); 2367 __ jr(T1);
2368 } 2368 }
2369 2369
2370 2370
2371 // Called from the monomorphic checked entry. 2371 // Called from the monomorphic checked entry.
2372 // T0: receiver 2372 // T0: receiver
2373 void StubCode::GenerateMonomorphicMissStub(Assembler* assembler) { 2373 void StubCode::GenerateMonomorphicMissStub(Assembler* assembler) {
2374 __ lw(CODE_REG, Address(THR, Thread::monomorphic_miss_stub_offset()));
2374 __ EnterStubFrame(); 2375 __ EnterStubFrame();
2375 __ Push(T0); // Preserve receiver. 2376 __ Push(T0); // Preserve receiver.
2376 2377
2377 __ Push(ZR); // Result slot. 2378 __ Push(ZR); // Result slot.
2378 __ Push(T0); // Arg0: Receiver 2379 __ Push(T0); // Arg0: Receiver
2379 __ CallRuntime(kMonomorphicMissRuntimeEntry, 1); 2380 __ CallRuntime(kMonomorphicMissRuntimeEntry, 1);
2380 __ Drop(1); 2381 __ Drop(1);
2381 __ Pop(S5); // result = IC 2382 __ Pop(S5); // result = IC
2382 2383
2383 __ Pop(T0); // Restore receiver. 2384 __ Pop(T0); // Restore receiver.
2384 __ LeaveStubFrame(); 2385 __ LeaveStubFrame();
2385 2386
2386 __ lw(CODE_REG, Address(THR, Thread::ic_lookup_through_code_stub_offset())); 2387 __ lw(CODE_REG, Address(THR, Thread::ic_lookup_through_code_stub_offset()));
2387 __ lw(T1, FieldAddress(CODE_REG, Code::checked_entry_point_offset())); 2388 __ lw(T1, FieldAddress(CODE_REG, Code::checked_entry_point_offset()));
2388 __ jr(T1); 2389 __ jr(T1);
2389 } 2390 }
2390 2391
2391 2392
2392 void StubCode::GenerateFrameAwaitingMaterializationStub(Assembler* assembler) { 2393 void StubCode::GenerateFrameAwaitingMaterializationStub(Assembler* assembler) {
2393 __ break_(0); 2394 __ break_(0);
2394 } 2395 }
2395 2396
2396 } // namespace dart 2397 } // namespace dart
2397 2398
2398 #endif // defined TARGET_ARCH_MIPS 2399 #endif // defined TARGET_ARCH_MIPS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698