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