| 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 3973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3984 if ((right_val == 0) && (left_val < 0)) { | 3984 if ((right_val == 0) && (left_val < 0)) { |
| 3985 return H_CONSTANT_DOUBLE(static_cast<uint32_t>(left_val)); | 3985 return H_CONSTANT_DOUBLE(static_cast<uint32_t>(left_val)); |
| 3986 } | 3986 } |
| 3987 return H_CONSTANT_INT(static_cast<uint32_t>(left_val) >> right_val); | 3987 return H_CONSTANT_INT(static_cast<uint32_t>(left_val) >> right_val); |
| 3988 } | 3988 } |
| 3989 } | 3989 } |
| 3990 return new(zone) HShr(context, left, right); | 3990 return new(zone) HShr(context, left, right); |
| 3991 } | 3991 } |
| 3992 | 3992 |
| 3993 | 3993 |
| 3994 HInstruction* HSeqStringGetChar::New(Zone* zone, | |
| 3995 HValue* context, | |
| 3996 String::Encoding encoding, | |
| 3997 HValue* string, | |
| 3998 HValue* index) { | |
| 3999 if (FLAG_fold_constants && string->IsConstant() && index->IsConstant()) { | |
| 4000 HConstant* c_string = HConstant::cast(string); | |
| 4001 HConstant* c_index = HConstant::cast(index); | |
| 4002 if (c_string->HasStringValue() && c_index->HasInteger32Value()) { | |
| 4003 Handle<String> s = c_string->StringValue(); | |
| 4004 int32_t i = c_index->Integer32Value(); | |
| 4005 ASSERT_LE(0, i); | |
| 4006 ASSERT_LT(i, s->length()); | |
| 4007 return H_CONSTANT_INT(s->Get(i)); | |
| 4008 } | |
| 4009 } | |
| 4010 return new(zone) HSeqStringGetChar(encoding, string, index); | |
| 4011 } | |
| 4012 | |
| 4013 | |
| 4014 #undef H_CONSTANT_INT | 3994 #undef H_CONSTANT_INT |
| 4015 #undef H_CONSTANT_DOUBLE | 3995 #undef H_CONSTANT_DOUBLE |
| 4016 | 3996 |
| 4017 | 3997 |
| 4018 void HBitwise::PrintDataTo(StringStream* stream) { | 3998 void HBitwise::PrintDataTo(StringStream* stream) { |
| 4019 stream->Add(Token::Name(op_)); | 3999 stream->Add(Token::Name(op_)); |
| 4020 stream->Add(" "); | 4000 stream->Add(" "); |
| 4021 HBitwiseBinaryOperation::PrintDataTo(stream); | 4001 HBitwiseBinaryOperation::PrintDataTo(stream); |
| 4022 } | 4002 } |
| 4023 | 4003 |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4318 break; | 4298 break; |
| 4319 case kExternalMemory: | 4299 case kExternalMemory: |
| 4320 stream->Add("[external-memory]"); | 4300 stream->Add("[external-memory]"); |
| 4321 break; | 4301 break; |
| 4322 } | 4302 } |
| 4323 | 4303 |
| 4324 stream->Add("@%d", offset()); | 4304 stream->Add("@%d", offset()); |
| 4325 } | 4305 } |
| 4326 | 4306 |
| 4327 } } // namespace v8::internal | 4307 } } // namespace v8::internal |
| OLD | NEW |