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

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

Issue 2891713002: Cleanup: Make CheckClassId instruction more general so it (Closed)
Patch Set: Feedback from Martin Created 3 years, 7 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/flow_graph_compiler_arm.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 (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 RUNTIME_VM_CONSTANTS_DBC_H_ 5 #ifndef RUNTIME_VM_CONSTANTS_DBC_H_
6 #define RUNTIME_VM_CONSTANTS_DBC_H_ 6 #define RUNTIME_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 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 // 583 //
584 // - CheckEitherNonSmi rA, rD 584 // - CheckEitherNonSmi rA, rD
585 // 585 //
586 // If either FP[rA] or FP[rD] is not a Smi, then skip the next instruction. 586 // If either FP[rA] or FP[rD] is not a Smi, then skip the next instruction.
587 // 587 //
588 // - CheckClassId rA, D 588 // - CheckClassId rA, D
589 // 589 //
590 // If the class id in FP[rA] matches the class id D, then skip the 590 // If the class id in FP[rA] matches the class id D, then skip the
591 // following instruction. 591 // following instruction.
592 // 592 //
593 // - CheckClassIdRange rA, D
594 //
595 // Next instruction is a Nop with S, the size of the class-id range.
596 // If the class id in FP[rA] is between the D D + S, then skip the
597 // following instruction.
598 //
593 // - CheckBitTest rA, D 599 // - CheckBitTest rA, D
594 // 600 //
595 // Skips the next 3 instructions if the object at FP[rA] is a valid class for 601 // Skips the next 3 instructions if the object at FP[rA] is a valid class for
596 // a dense switch with low cid encoded in the following Nop instruction, and 602 // a dense switch with low cid encoded in the following Nop instruction, and
597 // the cid mask encoded in the Nop instruction after that, or if D == 1 and 603 // the cid mask encoded in the Nop instruction after that, or if D == 1 and
598 // FP[rA] is a Smi. Skips 2 instructions otherwise. 604 // FP[rA] is a Smi. Skips 2 instructions otherwise.
599 // 605 //
600 // - CheckCids rA, rB, rC 606 // - CheckCids rA, rB, rC
601 // 607 //
602 // Skips rC + 1 instructions if the object at FP[rA] is a Smi and 608 // Skips rC + 1 instructions if the object at FP[rA] is a Smi and
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 V(InstantiateTypeArgumentsTOS, A_D, num, lit, ___) \ 840 V(InstantiateTypeArgumentsTOS, A_D, num, lit, ___) \
835 V(InstanceOf, 0, ___, ___, ___) \ 841 V(InstanceOf, 0, ___, ___, ___) \
836 V(BadTypeError, 0, ___, ___, ___) \ 842 V(BadTypeError, 0, ___, ___, ___) \
837 V(AssertAssignable, A_D, num, lit, ___) \ 843 V(AssertAssignable, A_D, num, lit, ___) \
838 V(AssertBoolean, A, num, ___, ___) \ 844 V(AssertBoolean, A, num, ___, ___) \
839 V(TestSmi, A_D, reg, reg, ___) \ 845 V(TestSmi, A_D, reg, reg, ___) \
840 V(TestCids, A_D, reg, num, ___) \ 846 V(TestCids, A_D, reg, num, ___) \
841 V(CheckSmi, A, reg, ___, ___) \ 847 V(CheckSmi, A, reg, ___, ___) \
842 V(CheckEitherNonSmi, A_D, reg, reg, ___) \ 848 V(CheckEitherNonSmi, A_D, reg, reg, ___) \
843 V(CheckClassId, A_D, reg, num, ___) \ 849 V(CheckClassId, A_D, reg, num, ___) \
850 V(CheckClassIdRange, A_D, reg, num, ___) \
844 V(CheckBitTest, A_D, reg, num, ___) \ 851 V(CheckBitTest, A_D, reg, num, ___) \
845 V(CheckCids, A_B_C, reg, num, num) \ 852 V(CheckCids, A_B_C, reg, num, num) \
846 V(CheckCidsByRange, A_B_C, reg, num, num) \ 853 V(CheckCidsByRange, A_B_C, reg, num, num) \
847 V(CheckStack, 0, ___, ___, ___) \ 854 V(CheckStack, 0, ___, ___, ___) \
848 V(CheckStackAlwaysExit, 0, ___, ___, ___) \ 855 V(CheckStackAlwaysExit, 0, ___, ___, ___) \
849 V(DebugStep, 0, ___, ___, ___) \ 856 V(DebugStep, 0, ___, ___, ___) \
850 V(DebugBreak, A, num, ___, ___) \ 857 V(DebugBreak, A, num, ___, ___) \
851 V(Deopt, A_D, num, num, ___) \ 858 V(Deopt, A_D, num, num, ___) \
852 V(DeoptRewind, 0, ___, ___, ___) 859 V(DeoptRewind, 0, ___, ___, ___)
853 860
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 994
988 // After a comparison, the condition NEXT_IS_TRUE means the following 995 // After a comparison, the condition NEXT_IS_TRUE means the following
989 // instruction is executed if the comparison is true and skipped over overwise. 996 // instruction is executed if the comparison is true and skipped over overwise.
990 // Condition NEXT_IS_FALSE means the following instruction is executed if the 997 // Condition NEXT_IS_FALSE means the following instruction is executed if the
991 // comparison is false and skipped over otherwise. 998 // comparison is false and skipped over otherwise.
992 enum Condition { NEXT_IS_TRUE, NEXT_IS_FALSE }; 999 enum Condition { NEXT_IS_TRUE, NEXT_IS_FALSE };
993 1000
994 } // namespace dart 1001 } // namespace dart
995 1002
996 #endif // RUNTIME_VM_CONSTANTS_DBC_H_ 1003 #endif // RUNTIME_VM_CONSTANTS_DBC_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/flow_graph_compiler_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698