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

Side by Side Diff: runtime/vm/constants_dbc.h

Issue 2098573004: DBC: CheckClassInstr (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « no previous file | runtime/vm/deferred_objects.h » ('j') | runtime/vm/deferred_objects.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 #ifndef VM_CONSTANTS_DBC_H_ 5 #ifndef VM_CONSTANTS_DBC_H_
6 #define VM_CONSTANTS_DBC_H_ 6 #define VM_CONSTANTS_DBC_H_
7 7
8 #include "platform/globals.h" 8 #include "platform/globals.h"
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "platform/utils.h" 10 #include "platform/utils.h"
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 // 351 //
352 // - CheckSmi rA 352 // - CheckSmi rA
353 // 353 //
354 // If FP[rA] is a Smi, then skip the next instruction. 354 // If FP[rA] is a Smi, then skip the next instruction.
355 // 355 //
356 // - CheckClassId rA, D 356 // - CheckClassId rA, D
357 // 357 //
358 // If the object at FP[rA]'s class id matches hthe class id in PP[D], then 358 // If the object at FP[rA]'s class id matches hthe class id in PP[D], then
359 // skip the following instruction. 359 // skip the following instruction.
360 // 360 //
361 // - CheckNull rA, D
362 //
363 // If D == 1, skip the following instruction when FP[rA] is non-null.
364 // If D == 0, skip the following instruction when FP[rA] is null.
365 //
366 // - CheckDenseSwitchTOS rA, D
367 //
368 // Given ICData at PP[D], skips the next instruction if the object at FP[rA]
369 // is a valid class for a dense switch with cid mask at SP[0], and low cid
370 // value at SP[-1].
371 //
372 // - CheckForCid rA, D
373 //
374 // Skips the following instruction if FP[rA] is a Smi and the receiver
375 // class of the ICData at PP[D] is a Smi, or if the cid of FP[rA] is found
376 // in the cids of PP[D].
377 //
361 // - CheckStack 378 // - CheckStack
362 // 379 //
363 // Compare SP against isolate stack limit and call StackOverflow handler if 380 // Compare SP against isolate stack limit and call StackOverflow handler if
364 // necessary. 381 // necessary.
365 // 382 //
366 // - DebugStep, DebugBreak A 383 // - DebugStep, DebugBreak A
367 // 384 //
368 // Debugger support. DebugBreak is bytecode that can be patched into the 385 // Debugger support. DebugBreak is bytecode that can be patched into the
369 // instruction stream to trigger in place breakpoint. 386 // instruction stream to trigger in place breakpoint.
370 // 387 //
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 V(SetFrame, A, num, ___, num) \ 513 V(SetFrame, A, num, ___, num) \
497 V(AllocateContext, D, num, ___, ___) \ 514 V(AllocateContext, D, num, ___, ___) \
498 V(CloneContext, 0, ___, ___, ___) \ 515 V(CloneContext, 0, ___, ___, ___) \
499 V(MoveSpecial, A_D, reg, num, ___) \ 516 V(MoveSpecial, A_D, reg, num, ___) \
500 V(InstantiateType, D, lit, ___, ___) \ 517 V(InstantiateType, D, lit, ___, ___) \
501 V(InstantiateTypeArgumentsTOS, A_D, num, lit, ___) \ 518 V(InstantiateTypeArgumentsTOS, A_D, num, lit, ___) \
502 V(AssertAssignable, D, num, lit, ___) \ 519 V(AssertAssignable, D, num, lit, ___) \
503 V(AssertBoolean, A, num, ___, ___) \ 520 V(AssertBoolean, A, num, ___, ___) \
504 V(CheckSmi, A, reg, ___, ___) \ 521 V(CheckSmi, A, reg, ___, ___) \
505 V(CheckClassId, A_D, reg, lit, ___) \ 522 V(CheckClassId, A_D, reg, lit, ___) \
523 V(CheckNull, A_D, reg, num, ___) \
524 V(CheckDenseSwitchTOS, A_D, reg, lit, ___) \
525 V(CheckForCid, A_D, reg, lit, ___) \
506 V(CheckStack, 0, ___, ___, ___) \ 526 V(CheckStack, 0, ___, ___, ___) \
507 V(DebugStep, 0, ___, ___, ___) \ 527 V(DebugStep, 0, ___, ___, ___) \
508 V(DebugBreak, A, num, ___, ___) \ 528 V(DebugBreak, A, num, ___, ___) \
509 V(Deopt, A_D, num, num, ___) \ 529 V(Deopt, A_D, num, num, ___) \
510 530
511 typedef uint32_t Instr; 531 typedef uint32_t Instr;
512 532
513 class Bytecode { 533 class Bytecode {
514 public: 534 public:
515 enum Opcode { 535 enum Opcode {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 kNumberOfDummyFpuRegisters, 638 kNumberOfDummyFpuRegisters,
619 }; 639 };
620 const FpuRegister FpuTMP = kFakeFpuRegister; 640 const FpuRegister FpuTMP = kFakeFpuRegister;
621 const intptr_t kNumberOfFpuRegisters = 1; 641 const intptr_t kNumberOfFpuRegisters = 1;
622 642
623 enum Condition { EQ, NE }; 643 enum Condition { EQ, NE };
624 644
625 } // namespace dart 645 } // namespace dart
626 646
627 #endif // VM_CONSTANTS_DBC_H_ 647 #endif // VM_CONSTANTS_DBC_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/deferred_objects.h » ('j') | runtime/vm/deferred_objects.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698