| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 9207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9218 case Token::ADD: | 9218 case Token::ADD: |
| 9219 instr = AddUncasted<HAdd>(left, right); | 9219 instr = AddUncasted<HAdd>(left, right); |
| 9220 break; | 9220 break; |
| 9221 case Token::SUB: | 9221 case Token::SUB: |
| 9222 instr = AddUncasted<HSub>(left, right); | 9222 instr = AddUncasted<HSub>(left, right); |
| 9223 break; | 9223 break; |
| 9224 case Token::MUL: | 9224 case Token::MUL: |
| 9225 instr = AddUncasted<HMul>(left, right); | 9225 instr = AddUncasted<HMul>(left, right); |
| 9226 break; | 9226 break; |
| 9227 case Token::MOD: { | 9227 case Token::MOD: { |
| 9228 if (fixed_right_arg.has_value) { | 9228 if (fixed_right_arg.has_value && |
| 9229 if (right->IsConstant()) { | 9229 !right->EqualsInteger32Constant(fixed_right_arg.value)) { |
| 9230 HConstant* c_right = HConstant::cast(right); | 9230 HConstant* fixed_right = Add<HConstant>( |
| 9231 if (c_right->HasInteger32Value()) { | 9231 static_cast<int>(fixed_right_arg.value)); |
| 9232 ASSERT_EQ(fixed_right_arg.value, c_right->Integer32Value()); | 9232 IfBuilder if_same(this); |
| 9233 } | 9233 if_same.If<HCompareNumericAndBranch>(right, fixed_right, Token::EQ); |
| 9234 } else { | 9234 if_same.Then(); |
| 9235 HConstant* fixed_right = Add<HConstant>( | 9235 if_same.ElseDeopt("Unexpected RHS of binary operation"); |
| 9236 static_cast<int>(fixed_right_arg.value)); | 9236 right = fixed_right; |
| 9237 IfBuilder if_same(this); | |
| 9238 if_same.If<HCompareNumericAndBranch>(right, fixed_right, Token::EQ); | |
| 9239 if_same.Then(); | |
| 9240 if_same.ElseDeopt("Unexpected RHS of binary operation"); | |
| 9241 right = fixed_right; | |
| 9242 } | |
| 9243 } | 9237 } |
| 9244 instr = AddUncasted<HMod>(left, right); | 9238 instr = AddUncasted<HMod>(left, right); |
| 9245 break; | 9239 break; |
| 9246 } | 9240 } |
| 9247 case Token::DIV: | 9241 case Token::DIV: |
| 9248 instr = AddUncasted<HDiv>(left, right); | 9242 instr = AddUncasted<HDiv>(left, right); |
| 9249 break; | 9243 break; |
| 9250 case Token::BIT_XOR: | 9244 case Token::BIT_XOR: |
| 9251 case Token::BIT_AND: | 9245 case Token::BIT_AND: |
| 9252 instr = AddUncasted<HBitwise>(op, left, right); | 9246 instr = AddUncasted<HBitwise>(op, left, right); |
| (...skipping 2045 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11298 if (ShouldProduceTraceOutput()) { | 11292 if (ShouldProduceTraceOutput()) { |
| 11299 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 11293 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 11300 } | 11294 } |
| 11301 | 11295 |
| 11302 #ifdef DEBUG | 11296 #ifdef DEBUG |
| 11303 graph_->Verify(false); // No full verify. | 11297 graph_->Verify(false); // No full verify. |
| 11304 #endif | 11298 #endif |
| 11305 } | 11299 } |
| 11306 | 11300 |
| 11307 } } // namespace v8::internal | 11301 } } // namespace v8::internal |
| OLD | NEW |