| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 2489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2500 // TODO(danno): we could be more clever here, perhaps having a special | 2500 // TODO(danno): we could be more clever here, perhaps having a special |
| 2501 // version of the stub that detects if the overflow case actually | 2501 // version of the stub that detects if the overflow case actually |
| 2502 // happens, and generate code that returns a double rather than int. | 2502 // happens, and generate code that returns a double rather than int. |
| 2503 DeoptimizeIf(negative, instr->environment()); | 2503 DeoptimizeIf(negative, instr->environment()); |
| 2504 break; | 2504 break; |
| 2505 case JSObject::EXTERNAL_FLOAT_ELEMENTS: | 2505 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 2506 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: | 2506 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 2507 case JSObject::FAST_ELEMENTS: | 2507 case JSObject::FAST_ELEMENTS: |
| 2508 case JSObject::FAST_DOUBLE_ELEMENTS: | 2508 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 2509 case JSObject::DICTIONARY_ELEMENTS: | 2509 case JSObject::DICTIONARY_ELEMENTS: |
| 2510 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 2510 UNREACHABLE(); | 2511 UNREACHABLE(); |
| 2511 break; | 2512 break; |
| 2512 } | 2513 } |
| 2513 } | 2514 } |
| 2514 } | 2515 } |
| 2515 | 2516 |
| 2516 | 2517 |
| 2517 void LCodeGen::DoLoadKeyedGeneric(LLoadKeyedGeneric* instr) { | 2518 void LCodeGen::DoLoadKeyedGeneric(LLoadKeyedGeneric* instr) { |
| 2518 ASSERT(ToRegister(instr->object()).is(rdx)); | 2519 ASSERT(ToRegister(instr->object()).is(rdx)); |
| 2519 ASSERT(ToRegister(instr->key()).is(rax)); | 2520 ASSERT(ToRegister(instr->key()).is(rax)); |
| (...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3215 break; | 3216 break; |
| 3216 case JSObject::EXTERNAL_INT_ELEMENTS: | 3217 case JSObject::EXTERNAL_INT_ELEMENTS: |
| 3217 case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS: | 3218 case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS: |
| 3218 __ movl(operand, value); | 3219 __ movl(operand, value); |
| 3219 break; | 3220 break; |
| 3220 case JSObject::EXTERNAL_FLOAT_ELEMENTS: | 3221 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 3221 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: | 3222 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 3222 case JSObject::FAST_ELEMENTS: | 3223 case JSObject::FAST_ELEMENTS: |
| 3223 case JSObject::FAST_DOUBLE_ELEMENTS: | 3224 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 3224 case JSObject::DICTIONARY_ELEMENTS: | 3225 case JSObject::DICTIONARY_ELEMENTS: |
| 3226 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 3225 UNREACHABLE(); | 3227 UNREACHABLE(); |
| 3226 break; | 3228 break; |
| 3227 } | 3229 } |
| 3228 } | 3230 } |
| 3229 } | 3231 } |
| 3230 | 3232 |
| 3231 | 3233 |
| 3232 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) { | 3234 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) { |
| 3233 if (instr->length()->IsRegister()) { | 3235 if (instr->length()->IsRegister()) { |
| 3234 __ cmpq(ToRegister(instr->index()), ToRegister(instr->length())); | 3236 __ cmpq(ToRegister(instr->index()), ToRegister(instr->length())); |
| (...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4267 RegisterEnvironmentForDeoptimization(environment); | 4269 RegisterEnvironmentForDeoptimization(environment); |
| 4268 ASSERT(osr_pc_offset_ == -1); | 4270 ASSERT(osr_pc_offset_ == -1); |
| 4269 osr_pc_offset_ = masm()->pc_offset(); | 4271 osr_pc_offset_ = masm()->pc_offset(); |
| 4270 } | 4272 } |
| 4271 | 4273 |
| 4272 #undef __ | 4274 #undef __ |
| 4273 | 4275 |
| 4274 } } // namespace v8::internal | 4276 } } // namespace v8::internal |
| 4275 | 4277 |
| 4276 #endif // V8_TARGET_ARCH_X64 | 4278 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |