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 8023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8034 return ast_context()->ReturnControl(result, expr->id()); | 8034 return ast_context()->ReturnControl(result, expr->id()); |
8035 } else { | 8035 } else { |
8036 if (combined_rep.IsTagged() || combined_rep.IsNone()) { | 8036 if (combined_rep.IsTagged() || combined_rep.IsNone()) { |
8037 HCompareGeneric* result = | 8037 HCompareGeneric* result = |
8038 new(zone()) HCompareGeneric(context, left, right, op); | 8038 new(zone()) HCompareGeneric(context, left, right, op); |
8039 result->set_observed_input_representation(1, left_rep); | 8039 result->set_observed_input_representation(1, left_rep); |
8040 result->set_observed_input_representation(2, right_rep); | 8040 result->set_observed_input_representation(2, right_rep); |
8041 result->set_position(expr->position()); | 8041 result->set_position(expr->position()); |
8042 return ast_context()->ReturnInstruction(result, expr->id()); | 8042 return ast_context()->ReturnInstruction(result, expr->id()); |
8043 } else { | 8043 } else { |
8044 // TODO(verwaest): Remove once Representation::FromType properly | |
8045 // returns Smi when the IC measures Smi. | |
8046 if (left_type->Is(Type::Smi())) left_rep = Representation::Smi(); | |
8047 if (right_type->Is(Type::Smi())) right_rep = Representation::Smi(); | |
8048 HCompareNumericAndBranch* result = | 8044 HCompareNumericAndBranch* result = |
8049 new(zone()) HCompareNumericAndBranch(left, right, op); | 8045 new(zone()) HCompareNumericAndBranch(left, right, op); |
8050 result->set_observed_input_representation(left_rep, right_rep); | 8046 result->set_observed_input_representation(left_rep, right_rep); |
8051 result->set_position(expr->position()); | 8047 result->set_position(expr->position()); |
8052 return ast_context()->ReturnControl(result, expr->id()); | 8048 return ast_context()->ReturnControl(result, expr->id()); |
8053 } | 8049 } |
8054 } | 8050 } |
8055 } | 8051 } |
8056 | 8052 |
8057 | 8053 |
(...skipping 1649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9707 if (ShouldProduceTraceOutput()) { | 9703 if (ShouldProduceTraceOutput()) { |
9708 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 9704 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
9709 } | 9705 } |
9710 | 9706 |
9711 #ifdef DEBUG | 9707 #ifdef DEBUG |
9712 graph_->Verify(false); // No full verify. | 9708 graph_->Verify(false); // No full verify. |
9713 #endif | 9709 #endif |
9714 } | 9710 } |
9715 | 9711 |
9716 } } // namespace v8::internal | 9712 } } // namespace v8::internal |
OLD | NEW |