Chromium Code Reviews| 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 2063 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2074 elements = UseRegisterAndClobber(instr->elements()); | 2074 elements = UseRegisterAndClobber(instr->elements()); |
| 2075 val = UseRegisterAndClobber(instr->value()); | 2075 val = UseRegisterAndClobber(instr->value()); |
| 2076 key = UseRegisterAndClobber(instr->key()); | 2076 key = UseRegisterAndClobber(instr->key()); |
| 2077 } else { | 2077 } else { |
| 2078 elements = UseRegister(instr->elements()); | 2078 elements = UseRegister(instr->elements()); |
| 2079 val = UseRegister(instr->value()); | 2079 val = UseRegister(instr->value()); |
| 2080 key = UseRegisterOrConstantAtStart(instr->key()); | 2080 key = UseRegisterOrConstantAtStart(instr->key()); |
| 2081 } | 2081 } |
| 2082 | 2082 |
| 2083 if (instr->is_typed_elements()) { | 2083 if (instr->is_typed_elements()) { |
| 2084 ASSERT(instr->elements()->representation().IsExternal()); | |
| 2085 ASSERT((instr->value()->representation().IsInteger32() && | 2084 ASSERT((instr->value()->representation().IsInteger32() && |
| 2086 !IsDoubleOrFloatElementsKind(instr->elements_kind())) || | 2085 !IsDoubleOrFloatElementsKind(instr->elements_kind())) || |
| 2087 (instr->value()->representation().IsDouble() && | 2086 (instr->value()->representation().IsDouble() && |
| 2088 IsDoubleOrFloatElementsKind(instr->elements_kind()))); | 2087 IsDoubleOrFloatElementsKind(instr->elements_kind()))); |
| 2089 ASSERT((instr->is_fixed_typed_array() && | 2088 ASSERT((instr->is_fixed_typed_array() && |
|
jochen (gone - plz use gerrit)
2014/02/10 20:56:06
this is the correct ASSERT
| |
| 2090 instr->elements()->representation().IsTagged()) || | 2089 instr->elements()->representation().IsTagged()) || |
| 2091 (instr->is_external() && | 2090 (instr->is_external() && |
| 2092 instr->elements()->representation().IsExternal())); | 2091 instr->elements()->representation().IsExternal())); |
| 2093 temp = instr->key()->IsConstant() ? NULL : TempRegister(); | 2092 temp = instr->key()->IsConstant() ? NULL : TempRegister(); |
| 2094 return new(zone()) LStoreKeyedExternal(elements, key, val, temp); | 2093 return new(zone()) LStoreKeyedExternal(elements, key, val, temp); |
| 2095 | 2094 |
| 2096 } else if (instr->value()->representation().IsDouble()) { | 2095 } else if (instr->value()->representation().IsDouble()) { |
| 2097 ASSERT(instr->elements()->representation().IsTagged()); | 2096 ASSERT(instr->elements()->representation().IsTagged()); |
| 2098 | 2097 |
| 2099 // The constraint used here is UseRegister, even though the StoreKeyed | 2098 // The constraint used here is UseRegister, even though the StoreKeyed |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2444 | 2443 |
| 2445 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { | 2444 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { |
| 2446 LOperand* receiver = UseRegister(instr->receiver()); | 2445 LOperand* receiver = UseRegister(instr->receiver()); |
| 2447 LOperand* function = UseRegister(instr->function()); | 2446 LOperand* function = UseRegister(instr->function()); |
| 2448 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); | 2447 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); |
| 2449 return AssignEnvironment(DefineAsRegister(result)); | 2448 return AssignEnvironment(DefineAsRegister(result)); |
| 2450 } | 2449 } |
| 2451 | 2450 |
| 2452 | 2451 |
| 2453 } } // namespace v8::internal | 2452 } } // namespace v8::internal |
| OLD | NEW |