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

Side by Side Diff: src/hydrogen.h

Issue 104663004: Preview of a first step towards unification of hydrogen calls (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed code review comments Created 6 years, 11 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 2114 matching lines...) Expand 10 before | Expand all | Expand 10 after
2125 void VisitArgument(Expression* expr); 2125 void VisitArgument(Expression* expr);
2126 2126
2127 void VisitArgumentList(ZoneList<Expression*>* arguments); 2127 void VisitArgumentList(ZoneList<Expression*>* arguments);
2128 2128
2129 // Visit a list of expressions from left to right, each in a value context. 2129 // Visit a list of expressions from left to right, each in a value context.
2130 void VisitExpressions(ZoneList<Expression*>* exprs); 2130 void VisitExpressions(ZoneList<Expression*>* exprs);
2131 2131
2132 // Remove the arguments from the bailout environment and emit instructions 2132 // Remove the arguments from the bailout environment and emit instructions
2133 // to push them as outgoing parameters. 2133 // to push them as outgoing parameters.
2134 template <class Instruction> HInstruction* PreProcessCall(Instruction* call); 2134 template <class Instruction> HInstruction* PreProcessCall(Instruction* call);
2135 void PushArgumentsFromEnvironment(int count);
2135 2136
2136 void SetUpScope(Scope* scope); 2137 void SetUpScope(Scope* scope);
2137 virtual void VisitStatements(ZoneList<Statement*>* statements) V8_OVERRIDE; 2138 virtual void VisitStatements(ZoneList<Statement*>* statements) V8_OVERRIDE;
2138 2139
2139 #define DECLARE_VISIT(type) virtual void Visit##type(type* node) V8_OVERRIDE; 2140 #define DECLARE_VISIT(type) virtual void Visit##type(type* node) V8_OVERRIDE;
2140 AST_NODE_LIST(DECLARE_VISIT) 2141 AST_NODE_LIST(DECLARE_VISIT)
2141 #undef DECLARE_VISIT 2142 #undef DECLARE_VISIT
2142 2143
2143 private: 2144 private:
2144 // Helpers for flow graph construction. 2145 // Helpers for flow graph construction.
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
2449 HValue* object_elements, 2450 HValue* object_elements,
2450 AllocationSiteUsageContext* site_context); 2451 AllocationSiteUsageContext* site_context);
2451 2452
2452 void AddCheckPrototypeMaps(Handle<JSObject> holder, 2453 void AddCheckPrototypeMaps(Handle<JSObject> holder,
2453 Handle<Map> receiver_map); 2454 Handle<Map> receiver_map);
2454 2455
2455 void AddCheckConstantFunction(Handle<JSObject> holder, 2456 void AddCheckConstantFunction(Handle<JSObject> holder,
2456 HValue* receiver, 2457 HValue* receiver,
2457 Handle<Map> receiver_map); 2458 Handle<Map> receiver_map);
2458 2459
2460 HInstruction* NewPlainFunctionCall(HValue* fun,
2461 HValue* call_kind_value,
2462 int argument_count,
2463 bool pass_argument_count);
2464
2465 HInstruction* NewArgumentAdaptorCall(HValue* fun, HValue* context,
2466 HValue* call_kind_value,
2467 int argument_count,
2468 HValue* expected_param_count);
2469
2470 HInstruction* BuildCallConstantFunction(Handle<JSFunction> target,
2471 int argument_count,
2472 CallKind call_kind);
2473
2474 HInstruction* NewCallKeyed(HValue* key, int argument_count);
2475
2476 HInstruction* NewCallNamed(Handle<String> name, int argument_count);
2477
2459 // The translation state of the currently-being-translated function. 2478 // The translation state of the currently-being-translated function.
2460 FunctionState* function_state_; 2479 FunctionState* function_state_;
2461 2480
2462 // The base of the function state stack. 2481 // The base of the function state stack.
2463 FunctionState initial_function_state_; 2482 FunctionState initial_function_state_;
2464 2483
2465 // Expression context of the currently visited subexpression. NULL when 2484 // Expression context of the currently visited subexpression. NULL when
2466 // visiting statements. 2485 // visiting statements.
2467 AstContext* ast_context_; 2486 AstContext* ast_context_;
2468 2487
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
2640 } 2659 }
2641 2660
2642 private: 2661 private:
2643 HGraphBuilder* builder_; 2662 HGraphBuilder* builder_;
2644 }; 2663 };
2645 2664
2646 2665
2647 } } // namespace v8::internal 2666 } } // namespace v8::internal
2648 2667
2649 #endif // V8_HYDROGEN_H_ 2668 #endif // V8_HYDROGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698