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

Side by Side Diff: src/ia32/ic-ia32.cc

Issue 19749004: With >= 64 non-string instance types, I removed an optimization (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Review comments Created 7 years, 5 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
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 STATIC_ASSERT(LAST_UNIQUE_NAME_TYPE == FIRST_NONSTRING_TYPE); 312 STATIC_ASSERT(LAST_UNIQUE_NAME_TYPE == FIRST_NONSTRING_TYPE);
313 __ j(equal, &unique); 313 __ j(equal, &unique);
314 314
315 // Is the string an array index, with cached numeric value? 315 // Is the string an array index, with cached numeric value?
316 __ mov(hash, FieldOperand(key, Name::kHashFieldOffset)); 316 __ mov(hash, FieldOperand(key, Name::kHashFieldOffset));
317 __ test(hash, Immediate(Name::kContainsCachedArrayIndexMask)); 317 __ test(hash, Immediate(Name::kContainsCachedArrayIndexMask));
318 __ j(zero, index_string); 318 __ j(zero, index_string);
319 319
320 // Is the string internalized? We already know it's a string so a single 320 // Is the string internalized? We already know it's a string so a single
321 // bit test is enough. 321 // bit test is enough.
322 STATIC_ASSERT(kInternalizedTag != 0); 322 STATIC_ASSERT(kNotInternalizedTag != 0);
323 __ test_b(FieldOperand(map, Map::kInstanceTypeOffset), kIsInternalizedMask); 323 __ test_b(FieldOperand(map, Map::kInstanceTypeOffset),
324 __ j(zero, not_unique); 324 kIsNotInternalizedMask);
325 __ j(not_zero, not_unique);
325 326
326 __ bind(&unique); 327 __ bind(&unique);
327 } 328 }
328 329
329 330
330 static Operand GenerateMappedArgumentsLookup(MacroAssembler* masm, 331 static Operand GenerateMappedArgumentsLookup(MacroAssembler* masm,
331 Register object, 332 Register object,
332 Register key, 333 Register key,
333 Register scratch1, 334 Register scratch1,
334 Register scratch2, 335 Register scratch2,
(...skipping 1377 matching lines...) Expand 10 before | Expand all | Expand 10 after
1712 Condition cc = (check == ENABLE_INLINED_SMI_CHECK) 1713 Condition cc = (check == ENABLE_INLINED_SMI_CHECK)
1713 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero) 1714 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero)
1714 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry); 1715 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry);
1715 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); 1716 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc);
1716 } 1717 }
1717 1718
1718 1719
1719 } } // namespace v8::internal 1720 } } // namespace v8::internal
1720 1721
1721 #endif // V8_TARGET_ARCH_IA32 1722 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/code-stubs-ia32.cc ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698