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

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

Issue 1156593002: Cache current thread in a reserved register and use it in LoadIsolate (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Address review comments. Created 5 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
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 #ifndef VM_ASSEMBLER_IA32_H_ 5 #ifndef VM_ASSEMBLER_IA32_H_
6 #define VM_ASSEMBLER_IA32_H_ 6 #define VM_ASSEMBLER_IA32_H_
7 7
8 #ifndef VM_ASSEMBLER_H_ 8 #ifndef VM_ASSEMBLER_H_
9 #error Do not include assembler_ia32.h directly; use assembler.h instead. 9 #error Do not include assembler_ia32.h directly; use assembler.h instead.
10 #endif 10 #endif
(...skipping 830 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 // ret PC 841 // ret PC
842 // saved EBP 842 // saved EBP
843 // 0 (used to indicate frame is a stub frame) 843 // 0 (used to indicate frame is a stub frame)
844 // ..... 844 // .....
845 // This code sets this up with the sequence: 845 // This code sets this up with the sequence:
846 // pushl ebp 846 // pushl ebp
847 // movl ebp, esp 847 // movl ebp, esp
848 // pushl immediate(0) 848 // pushl immediate(0)
849 // ..... 849 // .....
850 void EnterStubFrame(); 850 void EnterStubFrame();
851 static const intptr_t kEnterStubFramePushedWords = 2;
851 852
852 // Instruction pattern from entrypoint is used in dart frame prologs 853 // Instruction pattern from entrypoint is used in dart frame prologs
853 // to set up the frame and save a PC which can be used to figure out the 854 // to set up the frame and save a PC which can be used to figure out the
854 // RawInstruction object corresponding to the code running in the frame. 855 // RawInstruction object corresponding to the code running in the frame.
855 // entrypoint: 856 // entrypoint:
856 // pushl ebp (size is 1 byte) 857 // pushl ebp (size is 1 byte)
857 // movl ebp, esp (size is 2 bytes) 858 // movl ebp, esp (size is 2 bytes)
858 // call L (size is 5 bytes) 859 // call L (size is 5 bytes)
859 // L: 860 // L:
860 static const intptr_t kEntryPointToPcMarkerOffset = 8; 861 static const intptr_t kEntryPointToPcMarkerOffset = 8;
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 } 1023 }
1023 1024
1024 1025
1025 inline void Assembler::EmitOperandSizeOverride() { 1026 inline void Assembler::EmitOperandSizeOverride() {
1026 EmitUint8(0x66); 1027 EmitUint8(0x66);
1027 } 1028 }
1028 1029
1029 } // namespace dart 1030 } // namespace dart
1030 1031
1031 #endif // VM_ASSEMBLER_IA32_H_ 1032 #endif // VM_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698