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

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

Issue 10466006: Implemented in ia32: branch, strict compare, instance setter, instanceof and assertassigneable with… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/flow_graph_compiler_ia32.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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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_FLOW_GRAPH_COMPILER_IA32_H_ 5 #ifndef VM_FLOW_GRAPH_COMPILER_IA32_H_
6 #define VM_FLOW_GRAPH_COMPILER_IA32_H_ 6 #define VM_FLOW_GRAPH_COMPILER_IA32_H_
7 7
8 #ifndef VM_FLOW_GRAPH_COMPILER_H_ 8 #ifndef VM_FLOW_GRAPH_COMPILER_H_
9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_ia32.h. 9 #error Include flow_graph_compiler.h instead of flow_graph_compiler_ia32.h.
10 #endif 10 #endif
11 11
12 #include "vm/assembler.h" 12 #include "vm/assembler.h"
13 #include "vm/assembler_macros.h" 13 #include "vm/assembler_macros.h"
14 #include "vm/code_descriptors.h" 14 #include "vm/code_descriptors.h"
15 #include "vm/code_generator.h" 15 #include "vm/code_generator.h"
16 #include "vm/flow_graph_compiler_shared.h" 16 #include "vm/flow_graph_compiler_shared.h"
17 #include "vm/intermediate_language.h" 17 #include "vm/intermediate_language.h"
18 18
19 namespace dart { 19 namespace dart {
20 20
21 class AbstractType;
21 class Assembler; 22 class Assembler;
22 class Code; 23 class Code;
23 class DeoptimizationStub; 24 class DeoptimizationStub;
24 template <typename T> class GrowableArray; 25 template <typename T> class GrowableArray;
25 class ParsedFunction; 26 class ParsedFunction;
26 class StackMapBuilder; 27 class StackMapBuilder;
27 28
28 // Stubbed out implementation of graph compiler, bails out immediately if 29 // Stubbed out implementation of graph compiler, bails out immediately if
29 // CompileGraph is called. The rest of the public API is UNIMPLEMENTED. 30 // CompileGraph is called. The rest of the public API is UNIMPLEMENTED.
30 class FlowGraphCompiler : public FlowGraphCompilerShared { 31 class FlowGraphCompiler : public FlowGraphCompilerShared {
(...skipping 20 matching lines...) Expand all
51 // Returns pc-offset (in bytes) of the pc after the call, can be used to emit 52 // Returns pc-offset (in bytes) of the pc after the call, can be used to emit
52 // pc-descriptor information. 53 // pc-descriptor information.
53 virtual intptr_t EmitStaticCall(const Function& function, 54 virtual intptr_t EmitStaticCall(const Function& function,
54 const Array& arguments_descriptor, 55 const Array& arguments_descriptor,
55 intptr_t argument_count); 56 intptr_t argument_count);
56 57
57 void GenerateCall(intptr_t token_index, 58 void GenerateCall(intptr_t token_index,
58 intptr_t try_index, 59 intptr_t try_index,
59 const ExternalLabel* label, 60 const ExternalLabel* label,
60 PcDescriptors::Kind kind); 61 PcDescriptors::Kind kind);
62 void GenerateInstanceOf(intptr_t cid,
63 intptr_t token_index,
64 intptr_t try_index,
65 const AbstractType& type,
66 bool negate_result);
67 void GenerateAssertAssignable(intptr_t cid,
68 intptr_t token_index,
69 intptr_t try_index,
70 const AbstractType& dst_type,
71 const String& dst_name);
61 72
62 private: 73 private:
63 friend class DeoptimizationStub; 74 friend class DeoptimizationStub;
64 75
65 virtual void VisitBlocks(); 76 virtual void VisitBlocks();
66 77
67 void CopyParameters(); 78 void CopyParameters();
68 void EmitInstructionPrologue(Instruction* instr); 79 void EmitInstructionPrologue(Instruction* instr);
69 80
70 virtual void GenerateInlinedGetter(intptr_t offset); 81 virtual void GenerateInlinedGetter(intptr_t offset);
71 virtual void GenerateInlinedSetter(intptr_t offset); 82 virtual void GenerateInlinedSetter(intptr_t offset);
72 83
73 void EmitComment(Instruction* instr); 84 void EmitComment(Instruction* instr);
74 void BailoutOnInstruction(Instruction* instr); 85 void BailoutOnInstruction(Instruction* instr);
75 86
76 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); 87 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
77 }; 88 };
78 89
79 } // namespace dart 90 } // namespace dart
80 91
81 #endif // VM_FLOW_GRAPH_COMPILER_IA32_H_ 92 #endif // VM_FLOW_GRAPH_COMPILER_IA32_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/flow_graph_compiler_ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698