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

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: fix remaining failing tests 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 2367 matching lines...) Expand 10 before | Expand all | Expand 10 after
2378 __ movl(result, operand); 2378 __ movl(result, operand);
2379 __ testl(result, result); 2379 __ testl(result, result);
2380 // TODO(danno): we could be more clever here, perhaps having a special 2380 // TODO(danno): we could be more clever here, perhaps having a special
2381 // version of the stub that detects if the overflow case actually 2381 // version of the stub that detects if the overflow case actually
2382 // happens, and generate code that returns a double rather than int. 2382 // happens, and generate code that returns a double rather than int.
2383 DeoptimizeIf(negative, instr->environment()); 2383 DeoptimizeIf(negative, instr->environment());
2384 break; 2384 break;
2385 case EXTERNAL_FLOAT_ELEMENTS: 2385 case EXTERNAL_FLOAT_ELEMENTS:
2386 case EXTERNAL_DOUBLE_ELEMENTS: 2386 case EXTERNAL_DOUBLE_ELEMENTS:
2387 case FAST_ELEMENTS: 2387 case FAST_ELEMENTS:
2388 case FAST_SMI_ONLY_ELEMENTS:
2388 case FAST_DOUBLE_ELEMENTS: 2389 case FAST_DOUBLE_ELEMENTS:
2389 case DICTIONARY_ELEMENTS: 2390 case DICTIONARY_ELEMENTS:
2390 case NON_STRICT_ARGUMENTS_ELEMENTS: 2391 case NON_STRICT_ARGUMENTS_ELEMENTS:
2391 UNREACHABLE(); 2392 UNREACHABLE();
2392 break; 2393 break;
2393 } 2394 }
2394 } 2395 }
2395 } 2396 }
2396 2397
2397 2398
(...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after
3103 case EXTERNAL_UNSIGNED_SHORT_ELEMENTS: 3104 case EXTERNAL_UNSIGNED_SHORT_ELEMENTS:
3104 __ movw(operand, value); 3105 __ movw(operand, value);
3105 break; 3106 break;
3106 case EXTERNAL_INT_ELEMENTS: 3107 case EXTERNAL_INT_ELEMENTS:
3107 case EXTERNAL_UNSIGNED_INT_ELEMENTS: 3108 case EXTERNAL_UNSIGNED_INT_ELEMENTS:
3108 __ movl(operand, value); 3109 __ movl(operand, value);
3109 break; 3110 break;
3110 case EXTERNAL_FLOAT_ELEMENTS: 3111 case EXTERNAL_FLOAT_ELEMENTS:
3111 case EXTERNAL_DOUBLE_ELEMENTS: 3112 case EXTERNAL_DOUBLE_ELEMENTS:
3112 case FAST_ELEMENTS: 3113 case FAST_ELEMENTS:
3114 case FAST_SMI_ONLY_ELEMENTS:
3113 case FAST_DOUBLE_ELEMENTS: 3115 case FAST_DOUBLE_ELEMENTS:
3114 case DICTIONARY_ELEMENTS: 3116 case DICTIONARY_ELEMENTS:
3115 case NON_STRICT_ARGUMENTS_ELEMENTS: 3117 case NON_STRICT_ARGUMENTS_ELEMENTS:
3116 UNREACHABLE(); 3118 UNREACHABLE();
3117 break; 3119 break;
3118 } 3120 }
3119 } 3121 }
3120 } 3122 }
3121 3123
3122 3124
(...skipping 1045 matching lines...) Expand 10 before | Expand all | Expand 10 after
4168 RegisterEnvironmentForDeoptimization(environment); 4170 RegisterEnvironmentForDeoptimization(environment);
4169 ASSERT(osr_pc_offset_ == -1); 4171 ASSERT(osr_pc_offset_ == -1);
4170 osr_pc_offset_ = masm()->pc_offset(); 4172 osr_pc_offset_ = masm()->pc_offset();
4171 } 4173 }
4172 4174
4173 #undef __ 4175 #undef __
4174 4176
4175 } } // namespace v8::internal 4177 } } // namespace v8::internal
4176 4178
4177 #endif // V8_TARGET_ARCH_X64 4179 #endif // V8_TARGET_ARCH_X64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698