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

Side by Side Diff: src/mips/codegen-mips.h

Issue 134643026: Cleanup: Unify CodeGenerator class across platforms (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 10 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 18 matching lines...) Expand all
29 #ifndef V8_MIPS_CODEGEN_MIPS_H_ 29 #ifndef V8_MIPS_CODEGEN_MIPS_H_
30 #define V8_MIPS_CODEGEN_MIPS_H_ 30 #define V8_MIPS_CODEGEN_MIPS_H_
31 31
32 32
33 #include "ast.h" 33 #include "ast.h"
34 #include "ic-inl.h" 34 #include "ic-inl.h"
35 35
36 namespace v8 { 36 namespace v8 {
37 namespace internal { 37 namespace internal {
38 38
39 // Forward declarations
40 class CompilationInfo;
41 39
42 enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF }; 40 enum TypeofState { INSIDE_TYPEOF, NOT_INSIDE_TYPEOF };
43 41
44 // -------------------------------------------------------------------------
45 // CodeGenerator
46
47 class CodeGenerator: public AstVisitor {
48 public:
49 explicit CodeGenerator(Zone* zone) {
50 InitializeAstVisitor(zone);
51 }
52
53 static bool MakeCode(CompilationInfo* info);
54
55 // Printing of AST, etc. as requested by flags.
56 static void MakeCodePrologue(CompilationInfo* info, const char* kind);
57
58 // Allocate and install the code.
59 static Handle<Code> MakeCodeEpilogue(MacroAssembler* masm,
60 Code::Flags flags,
61 CompilationInfo* info);
62
63 // Print the code after compiling it.
64 static void PrintCode(Handle<Code> code, CompilationInfo* info);
65
66 static bool ShouldGenerateLog(Isolate* isolate, Expression* type);
67
68 static void SetFunctionInfo(Handle<JSFunction> fun,
69 FunctionLiteral* lit,
70 bool is_toplevel,
71 Handle<Script> script);
72
73 static bool RecordPositions(MacroAssembler* masm,
74 int pos,
75 bool right_here = false);
76
77 DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
78
79 private:
80 DISALLOW_COPY_AND_ASSIGN(CodeGenerator);
81 };
82
83 42
84 class StringCharLoadGenerator : public AllStatic { 43 class StringCharLoadGenerator : public AllStatic {
85 public: 44 public:
86 // Generates the code for handling different string types and loading the 45 // Generates the code for handling different string types and loading the
87 // indexed character into |result|. We expect |index| as untagged input and 46 // indexed character into |result|. We expect |index| as untagged input and
88 // |result| as untagged output. 47 // |result| as untagged output.
89 static void Generate(MacroAssembler* masm, 48 static void Generate(MacroAssembler* masm,
90 Register string, 49 Register string,
91 Register index, 50 Register index,
92 Register result, 51 Register result,
(...skipping 16 matching lines...) Expand all
109 Register temp2, 68 Register temp2,
110 Register temp3); 69 Register temp3);
111 70
112 private: 71 private:
113 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator); 72 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
114 }; 73 };
115 74
116 } } // namespace v8::internal 75 } } // namespace v8::internal
117 76
118 #endif // V8_MIPS_CODEGEN_MIPS_H_ 77 #endif // V8_MIPS_CODEGEN_MIPS_H_
OLDNEW
« src/codegen.h ('K') | « src/ia32/macro-assembler-ia32.h ('k') | src/x64/codegen-x64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698