Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: src/x64/lithium-codegen-x64.cc

Issue 7901016: Basic support for tracking smi-only arrays on ia32. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: ready to land Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW
« src/bootstrapper.cc ('K') | « src/stub-cache.h ('k') | src/x64/macro-assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698