| OLD | NEW |
| 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 2726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2737 } | 2737 } |
| 2738 if (HChange::cast(value())->value()->type().IsSmi()) { | 2738 if (HChange::cast(value())->value()->type().IsSmi()) { |
| 2739 return false; | 2739 return false; |
| 2740 } | 2740 } |
| 2741 } | 2741 } |
| 2742 return true; | 2742 return true; |
| 2743 } | 2743 } |
| 2744 | 2744 |
| 2745 | 2745 |
| 2746 #define H_CONSTANT_INT32(val) \ | 2746 #define H_CONSTANT_INT32(val) \ |
| 2747 new(zone) HConstant(FACTORY->NewNumberFromInt(val, TENURED), \ | 2747 new(zone) HConstant(val, Representation::Integer32()) |
| 2748 Representation::Integer32()) | |
| 2749 #define H_CONSTANT_DOUBLE(val) \ | 2748 #define H_CONSTANT_DOUBLE(val) \ |
| 2750 new(zone) HConstant(FACTORY->NewNumber(val, TENURED), \ | 2749 new(zone) HConstant(val, Representation::Double()) |
| 2751 Representation::Double()) | |
| 2752 | 2750 |
| 2753 #define DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HInstr, op) \ | 2751 #define DEFINE_NEW_H_SIMPLE_ARITHMETIC_INSTR(HInstr, op) \ |
| 2754 HInstruction* HInstr::New##HInstr(Zone* zone, \ | 2752 HInstruction* HInstr::New##HInstr(Zone* zone, \ |
| 2755 HValue* context, \ | 2753 HValue* context, \ |
| 2756 HValue* left, \ | 2754 HValue* left, \ |
| 2757 HValue* right) { \ | 2755 HValue* right) { \ |
| 2758 if (left->IsConstant() && right->IsConstant()) { \ | 2756 if (left->IsConstant() && right->IsConstant()) { \ |
| 2759 HConstant* c_left = HConstant::cast(left); \ | 2757 HConstant* c_left = HConstant::cast(left); \ |
| 2760 HConstant* c_right = HConstant::cast(right); \ | 2758 HConstant* c_right = HConstant::cast(right); \ |
| 2761 if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { \ | 2759 if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { \ |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2886 if (left->IsConstant() && right->IsConstant()) { | 2884 if (left->IsConstant() && right->IsConstant()) { |
| 2887 HConstant* c_left = HConstant::cast(left); | 2885 HConstant* c_left = HConstant::cast(left); |
| 2888 HConstant* c_right = HConstant::cast(right); | 2886 HConstant* c_right = HConstant::cast(right); |
| 2889 if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { | 2887 if ((c_left->HasNumberValue() && c_right->HasNumberValue())) { |
| 2890 int32_t left_val = c_left->NumberValueAsInteger32(); | 2888 int32_t left_val = c_left->NumberValueAsInteger32(); |
| 2891 int32_t right_val = c_right->NumberValueAsInteger32() & 0x1f; | 2889 int32_t right_val = c_right->NumberValueAsInteger32() & 0x1f; |
| 2892 if ((right_val == 0) && (left_val < 0)) { | 2890 if ((right_val == 0) && (left_val < 0)) { |
| 2893 return H_CONSTANT_DOUBLE( | 2891 return H_CONSTANT_DOUBLE( |
| 2894 static_cast<double>(static_cast<uint32_t>(left_val))); | 2892 static_cast<double>(static_cast<uint32_t>(left_val))); |
| 2895 } | 2893 } |
| 2896 return H_CONSTANT_INT32(static_cast<uint32_t>(left_val) >> right_val); | 2894 return H_CONSTANT_INT32(static_cast<int32_t>( |
| 2895 static_cast<uint32_t>(left_val) >> right_val)); |
| 2897 } | 2896 } |
| 2898 } | 2897 } |
| 2899 return new(zone) HShr(context, left, right); | 2898 return new(zone) HShr(context, left, right); |
| 2900 } | 2899 } |
| 2901 | 2900 |
| 2902 | 2901 |
| 2903 #undef H_CONSTANT_INT32 | 2902 #undef H_CONSTANT_INT32 |
| 2904 #undef H_CONSTANT_DOUBLE | 2903 #undef H_CONSTANT_DOUBLE |
| 2905 | 2904 |
| 2906 | 2905 |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3060 | 3059 |
| 3061 | 3060 |
| 3062 void HCheckFunction::Verify() { | 3061 void HCheckFunction::Verify() { |
| 3063 HInstruction::Verify(); | 3062 HInstruction::Verify(); |
| 3064 ASSERT(HasNoUses()); | 3063 ASSERT(HasNoUses()); |
| 3065 } | 3064 } |
| 3066 | 3065 |
| 3067 #endif | 3066 #endif |
| 3068 | 3067 |
| 3069 } } // namespace v8::internal | 3068 } } // namespace v8::internal |
| OLD | NEW |