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 |