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

Side by Side Diff: src/arm/lithium-arm.h

Issue 8426005: Merge IR classes for different bitwise operations AND, OR and XOR into one class. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 1 month 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 | src/arm/lithium-arm.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 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 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 789
790 LOperand* index() { return inputs_[0]; } 790 LOperand* index() { return inputs_[0]; }
791 LOperand* length() { return inputs_[1]; } 791 LOperand* length() { return inputs_[1]; }
792 792
793 DECLARE_CONCRETE_INSTRUCTION(BoundsCheck, "bounds-check") 793 DECLARE_CONCRETE_INSTRUCTION(BoundsCheck, "bounds-check")
794 }; 794 };
795 795
796 796
797 class LBitI: public LTemplateInstruction<1, 2, 0> { 797 class LBitI: public LTemplateInstruction<1, 2, 0> {
798 public: 798 public:
799 LBitI(Token::Value op, LOperand* left, LOperand* right) 799 LBitI(LOperand* left, LOperand* right) {
800 : op_(op) {
801 inputs_[0] = left; 800 inputs_[0] = left;
802 inputs_[1] = right; 801 inputs_[1] = right;
803 } 802 }
804 803
805 Token::Value op() const { return op_; } 804 Token::Value op() const { return hydrogen()->op(); }
806 805
807 DECLARE_CONCRETE_INSTRUCTION(BitI, "bit-i") 806 DECLARE_CONCRETE_INSTRUCTION(BitI, "bit-i")
808 807 DECLARE_HYDROGEN_ACCESSOR(Bitwise)
809 private:
810 Token::Value op_;
811 }; 808 };
812 809
813 810
814 class LShiftI: public LTemplateInstruction<1, 2, 0> { 811 class LShiftI: public LTemplateInstruction<1, 2, 0> {
815 public: 812 public:
816 LShiftI(Token::Value op, LOperand* left, LOperand* right, bool can_deopt) 813 LShiftI(Token::Value op, LOperand* left, LOperand* right, bool can_deopt)
817 : op_(op), can_deopt_(can_deopt) { 814 : op_(op), can_deopt_(can_deopt) {
818 inputs_[0] = left; 815 inputs_[0] = left;
819 inputs_[1] = right; 816 inputs_[1] = right;
820 } 817 }
(...skipping 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after
2185 LInstruction* SetInstructionPendingDeoptimizationEnvironment( 2182 LInstruction* SetInstructionPendingDeoptimizationEnvironment(
2186 LInstruction* instr, int ast_id); 2183 LInstruction* instr, int ast_id);
2187 void ClearInstructionPendingDeoptimizationEnvironment(); 2184 void ClearInstructionPendingDeoptimizationEnvironment();
2188 2185
2189 LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env, 2186 LEnvironment* CreateEnvironment(HEnvironment* hydrogen_env,
2190 int* argument_index_accumulator); 2187 int* argument_index_accumulator);
2191 2188
2192 void VisitInstruction(HInstruction* current); 2189 void VisitInstruction(HInstruction* current);
2193 2190
2194 void DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block); 2191 void DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block);
2195 LInstruction* DoBit(Token::Value op, HBitwiseBinaryOperation* instr);
2196 LInstruction* DoShift(Token::Value op, HBitwiseBinaryOperation* instr); 2192 LInstruction* DoShift(Token::Value op, HBitwiseBinaryOperation* instr);
2197 LInstruction* DoArithmeticD(Token::Value op, 2193 LInstruction* DoArithmeticD(Token::Value op,
2198 HArithmeticBinaryOperation* instr); 2194 HArithmeticBinaryOperation* instr);
2199 LInstruction* DoArithmeticT(Token::Value op, 2195 LInstruction* DoArithmeticT(Token::Value op,
2200 HArithmeticBinaryOperation* instr); 2196 HArithmeticBinaryOperation* instr);
2201 2197
2202 LChunk* chunk_; 2198 LChunk* chunk_;
2203 CompilationInfo* info_; 2199 CompilationInfo* info_;
2204 HGraph* const graph_; 2200 HGraph* const graph_;
2205 Status status_; 2201 Status status_;
2206 HInstruction* current_instruction_; 2202 HInstruction* current_instruction_;
2207 HBasicBlock* current_block_; 2203 HBasicBlock* current_block_;
2208 HBasicBlock* next_block_; 2204 HBasicBlock* next_block_;
2209 int argument_count_; 2205 int argument_count_;
2210 LAllocator* allocator_; 2206 LAllocator* allocator_;
2211 int position_; 2207 int position_;
2212 LInstruction* instruction_pending_deoptimization_environment_; 2208 LInstruction* instruction_pending_deoptimization_environment_;
2213 int pending_deoptimization_ast_id_; 2209 int pending_deoptimization_ast_id_;
2214 2210
2215 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2211 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2216 }; 2212 };
2217 2213
2218 #undef DECLARE_HYDROGEN_ACCESSOR 2214 #undef DECLARE_HYDROGEN_ACCESSOR
2219 #undef DECLARE_CONCRETE_INSTRUCTION 2215 #undef DECLARE_CONCRETE_INSTRUCTION
2220 2216
2221 } } // namespace v8::internal 2217 } } // namespace v8::internal
2222 2218
2223 #endif // V8_ARM_LITHIUM_ARM_H_ 2219 #endif // V8_ARM_LITHIUM_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/lithium-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698