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 2378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2389 __ movl(result, operand); | 2389 __ movl(result, operand); |
2390 __ testl(result, result); | 2390 __ testl(result, result); |
2391 // TODO(danno): we could be more clever here, perhaps having a special | 2391 // TODO(danno): we could be more clever here, perhaps having a special |
2392 // version of the stub that detects if the overflow case actually | 2392 // version of the stub that detects if the overflow case actually |
2393 // happens, and generate code that returns a double rather than int. | 2393 // happens, and generate code that returns a double rather than int. |
2394 DeoptimizeIf(negative, instr->environment()); | 2394 DeoptimizeIf(negative, instr->environment()); |
2395 break; | 2395 break; |
2396 case EXTERNAL_FLOAT_ELEMENTS: | 2396 case EXTERNAL_FLOAT_ELEMENTS: |
2397 case EXTERNAL_DOUBLE_ELEMENTS: | 2397 case EXTERNAL_DOUBLE_ELEMENTS: |
2398 case FAST_ELEMENTS: | 2398 case FAST_ELEMENTS: |
| 2399 case FAST_SMI_ONLY_ELEMENTS: |
2399 case FAST_DOUBLE_ELEMENTS: | 2400 case FAST_DOUBLE_ELEMENTS: |
2400 case DICTIONARY_ELEMENTS: | 2401 case DICTIONARY_ELEMENTS: |
2401 case NON_STRICT_ARGUMENTS_ELEMENTS: | 2402 case NON_STRICT_ARGUMENTS_ELEMENTS: |
2402 UNREACHABLE(); | 2403 UNREACHABLE(); |
2403 break; | 2404 break; |
2404 } | 2405 } |
2405 } | 2406 } |
2406 } | 2407 } |
2407 | 2408 |
2408 | 2409 |
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3114 case EXTERNAL_UNSIGNED_SHORT_ELEMENTS: | 3115 case EXTERNAL_UNSIGNED_SHORT_ELEMENTS: |
3115 __ movw(operand, value); | 3116 __ movw(operand, value); |
3116 break; | 3117 break; |
3117 case EXTERNAL_INT_ELEMENTS: | 3118 case EXTERNAL_INT_ELEMENTS: |
3118 case EXTERNAL_UNSIGNED_INT_ELEMENTS: | 3119 case EXTERNAL_UNSIGNED_INT_ELEMENTS: |
3119 __ movl(operand, value); | 3120 __ movl(operand, value); |
3120 break; | 3121 break; |
3121 case EXTERNAL_FLOAT_ELEMENTS: | 3122 case EXTERNAL_FLOAT_ELEMENTS: |
3122 case EXTERNAL_DOUBLE_ELEMENTS: | 3123 case EXTERNAL_DOUBLE_ELEMENTS: |
3123 case FAST_ELEMENTS: | 3124 case FAST_ELEMENTS: |
| 3125 case FAST_SMI_ONLY_ELEMENTS: |
3124 case FAST_DOUBLE_ELEMENTS: | 3126 case FAST_DOUBLE_ELEMENTS: |
3125 case DICTIONARY_ELEMENTS: | 3127 case DICTIONARY_ELEMENTS: |
3126 case NON_STRICT_ARGUMENTS_ELEMENTS: | 3128 case NON_STRICT_ARGUMENTS_ELEMENTS: |
3127 UNREACHABLE(); | 3129 UNREACHABLE(); |
3128 break; | 3130 break; |
3129 } | 3131 } |
3130 } | 3132 } |
3131 } | 3133 } |
3132 | 3134 |
3133 | 3135 |
(...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4182 RegisterEnvironmentForDeoptimization(environment); | 4184 RegisterEnvironmentForDeoptimization(environment); |
4183 ASSERT(osr_pc_offset_ == -1); | 4185 ASSERT(osr_pc_offset_ == -1); |
4184 osr_pc_offset_ = masm()->pc_offset(); | 4186 osr_pc_offset_ = masm()->pc_offset(); |
4185 } | 4187 } |
4186 | 4188 |
4187 #undef __ | 4189 #undef __ |
4188 | 4190 |
4189 } } // namespace v8::internal | 4191 } } // namespace v8::internal |
4190 | 4192 |
4191 #endif // V8_TARGET_ARCH_X64 | 4193 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |