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

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

Issue 2258613002: DBC: Instructions for bailouts from http tests. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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/intermediate_language_dbc.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 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 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 // - StoreIndexedTOS 306 // - StoreIndexedTOS
307 // 307 //
308 // Store SP[0] into array SP[-2] at index SP[-1]. No typechecking is done. 308 // Store SP[0] into array SP[-2] at index SP[-1]. No typechecking is done.
309 // SP[-2] is assumed to be a RawArray, SP[-1] to be a smi. 309 // SP[-2] is assumed to be a RawArray, SP[-1] to be a smi.
310 // 310 //
311 // - StoreIndexed rA, rB, rC 311 // - StoreIndexed rA, rB, rC
312 // 312 //
313 // Store FP[rC] into array FP[rA] at index FP[rB]. No typechecking is done. 313 // Store FP[rC] into array FP[rA] at index FP[rB]. No typechecking is done.
314 // FP[rA] is assumed to be a RawArray, FP[rB] to be a smi. 314 // FP[rA] is assumed to be a RawArray, FP[rB] to be a smi.
315 // 315 //
316 // - StoreFloat64Indexed rA, rB, rC 316 // - StoreIndexed{Float64, Uint8} rA, rB, rC
317 // 317 //
318 // Store the unboxed double in FP[rC] into the typed data array at FP[rA] 318 // Store the unboxed double or tagged Smi in FP[rC] into the typed data array
319 // at index FP[rB]. 319 // at FP[rA] at index FP[rB].
320 //
321 // - StoreIndexedExternalUint8 rA, rB, rC
322 //
323 // Similar to StoreIndexedUint8 but FP[rA] is an external typed data aray.
320 // 324 //
321 // - LoadIndexed rA, rB, rC 325 // - LoadIndexed rA, rB, rC
322 // 326 //
323 // Loads from array FP[rB] at index FP[rC] into FP[rA]. No typechecking is 327 // Loads from array FP[rB] at index FP[rC] into FP[rA]. No typechecking is
324 // done. FP[rB] is assumed to be a RawArray, and to contain a Smi at FP[rC]. 328 // done. FP[rB] is assumed to be a RawArray, and to contain a Smi at FP[rC].
325 // 329 //
326 // - Load{Float64, OneByteString, TwoByteString}Indexed rA, rB, rC 330 // - LoadIndexed{Float64, OneByteString, TwoByteString, Uint8, Int8} rA, rB, rC
327 // 331 //
328 // Loads from typed data array FP[rB] at index FP[rC] into an unboxed double, 332 // Loads from typed data array FP[rB] at index FP[rC] into an unboxed double,
329 // or tagged Smi in FP[rA] as indicated by the type in the name. 333 // or tagged Smi in FP[rA] as indicated by the type in the name.
330 // 334 //
335 // - LoadIndexedExternal{Int8, Uint8} rA, rB, rC
336 //
337 // Loads from the external typed data array FP[rB] at index FP[rC] into
338 // FP[rA]. No typechecking is done.
339 //
331 // - StoreField rA, B, rC 340 // - StoreField rA, B, rC
332 // 341 //
333 // Store value FP[rC] into object FP[rA] at offset (in words) B. 342 // Store value FP[rC] into object FP[rA] at offset (in words) B.
334 // 343 //
335 // - StoreFieldTOS D 344 // - StoreFieldTOS D
336 // 345 //
337 // Store value SP[0] into object SP[-1] at offset (in words) D. 346 // Store value SP[0] into object SP[-1] at offset (in words) D.
338 // 347 //
339 // - LoadField rA, rB, C 348 // - LoadField rA, rB, C
340 // 349 //
341 // Load value at offset (in words) C from object FP[rB] into FP[rA]. 350 // Load value at offset (in words) C from object FP[rB] into FP[rA].
342 // 351 //
352 // - LoadUntagged rA, rB, C
353 //
354 // Like LoadField, but assumes that FP[rB] is untagged.
355 //
343 // - LoadFieldTOS D 356 // - LoadFieldTOS D
344 // 357 //
345 // Push value at offset (in words) D from object SP[0]. 358 // Push value at offset (in words) D from object SP[0].
346 // 359 //
347 // - BooleanNegateTOS 360 // - BooleanNegateTOS
348 // 361 //
349 // SP[0] = !SP[0] 362 // SP[0] = !SP[0]
350 // 363 //
351 // - BooleanNegate rA, rD 364 // - BooleanNegate rA, rD
352 // 365 //
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 V(IfDGt, A_D, reg, reg, ___) \ 657 V(IfDGt, A_D, reg, reg, ___) \
645 V(IfNeStrictNum, A_D, reg, reg, ___) \ 658 V(IfNeStrictNum, A_D, reg, reg, ___) \
646 V(IfEqStrictNum, A_D, reg, reg, ___) \ 659 V(IfEqStrictNum, A_D, reg, reg, ___) \
647 V(IfEqNull, A, reg, ___, ___) \ 660 V(IfEqNull, A, reg, ___, ___) \
648 V(IfNeNull, A, reg, ___, ___) \ 661 V(IfNeNull, A, reg, ___, ___) \
649 V(CreateArrayTOS, 0, ___, ___, ___) \ 662 V(CreateArrayTOS, 0, ___, ___, ___) \
650 V(Allocate, D, lit, ___, ___) \ 663 V(Allocate, D, lit, ___, ___) \
651 V(AllocateT, 0, ___, ___, ___) \ 664 V(AllocateT, 0, ___, ___, ___) \
652 V(StoreIndexedTOS, 0, ___, ___, ___) \ 665 V(StoreIndexedTOS, 0, ___, ___, ___) \
653 V(StoreIndexed, A_B_C, reg, reg, reg) \ 666 V(StoreIndexed, A_B_C, reg, reg, reg) \
654 V(StoreFloat64Indexed, A_B_C, reg, reg, reg) \ 667 V(StoreIndexedUint8, A_B_C, reg, reg, reg) \
668 V(StoreIndexedExternalUint8, A_B_C, reg, reg, reg) \
669 V(StoreIndexedFloat64, A_B_C, reg, reg, reg) \
655 V(LoadIndexed, A_B_C, reg, reg, reg) \ 670 V(LoadIndexed, A_B_C, reg, reg, reg) \
656 V(LoadFloat64Indexed, A_B_C, reg, reg, reg) \ 671 V(LoadIndexedUint8, A_B_C, reg, reg, reg) \
657 V(LoadOneByteStringIndexed, A_B_C, reg, reg, reg) \ 672 V(LoadIndexedInt8, A_B_C, reg, reg, reg) \
658 V(LoadTwoByteStringIndexed, A_B_C, reg, reg, reg) \ 673 V(LoadIndexedExternalUint8, A_B_C, reg, reg, reg) \
674 V(LoadIndexedExternalInt8, A_B_C, reg, reg, reg) \
675 V(LoadIndexedFloat64, A_B_C, reg, reg, reg) \
676 V(LoadIndexedOneByteString, A_B_C, reg, reg, reg) \
677 V(LoadIndexedTwoByteString, A_B_C, reg, reg, reg) \
659 V(StoreField, A_B_C, reg, num, reg) \ 678 V(StoreField, A_B_C, reg, num, reg) \
660 V(StoreFieldTOS, D, num, ___, ___) \ 679 V(StoreFieldTOS, D, num, ___, ___) \
661 V(LoadField, A_B_C, reg, reg, num) \ 680 V(LoadField, A_B_C, reg, reg, num) \
681 V(LoadUntagged, A_B_C, reg, reg, num) \
662 V(LoadFieldTOS, D, num, ___, ___) \ 682 V(LoadFieldTOS, D, num, ___, ___) \
663 V(BooleanNegateTOS, 0, ___, ___, ___) \ 683 V(BooleanNegateTOS, 0, ___, ___, ___) \
664 V(BooleanNegate, A_D, reg, reg, ___) \ 684 V(BooleanNegate, A_D, reg, reg, ___) \
665 V(Throw, A, num, ___, ___) \ 685 V(Throw, A, num, ___, ___) \
666 V(Entry, A_B_C, num, num, num) \ 686 V(Entry, A_B_C, num, num, num) \
667 V(EntryOptional, A_B_C, num, num, num) \ 687 V(EntryOptional, A_B_C, num, num, num) \
668 V(EntryOptimized, A_D, num, num, ___) \ 688 V(EntryOptimized, A_D, num, num, ___) \
669 V(Frame, D, num, ___, ___) \ 689 V(Frame, D, num, ___, ___) \
670 V(SetFrame, A, num, ___, num) \ 690 V(SetFrame, A, num, ___, num) \
671 V(AllocateContext, D, num, ___, ___) \ 691 V(AllocateContext, D, num, ___, ___) \
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 844
825 // After a comparison, the condition NEXT_IS_TRUE means the following 845 // After a comparison, the condition NEXT_IS_TRUE means the following
826 // instruction is executed if the comparision is true and skipped over overwise. 846 // instruction is executed if the comparision is true and skipped over overwise.
827 // Conidition NEXT_IS_FALSE means the following instruction is executed if the 847 // Conidition NEXT_IS_FALSE means the following instruction is executed if the
828 // comparison is false and skipped over otherwise. 848 // comparison is false and skipped over otherwise.
829 enum Condition { NEXT_IS_TRUE, NEXT_IS_FALSE }; 849 enum Condition { NEXT_IS_TRUE, NEXT_IS_FALSE };
830 850
831 } // namespace dart 851 } // namespace dart
832 852
833 #endif // VM_CONSTANTS_DBC_H_ 853 #endif // VM_CONSTANTS_DBC_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/intermediate_language_dbc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698