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 |