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

Side by Side Diff: src/ia32/macro-assembler-ia32.h

Issue 10778029: Allow uint32 value on optimized frames if they are consumed by safe operations. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: arm and x64 ports Created 8 years, 4 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 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 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 } 460 }
461 461
462 // Modifies the register even if it does not contain a Smi! 462 // Modifies the register even if it does not contain a Smi!
463 void SmiUntag(Register reg, Label* is_smi) { 463 void SmiUntag(Register reg, Label* is_smi) {
464 STATIC_ASSERT(kSmiTagSize == 1); 464 STATIC_ASSERT(kSmiTagSize == 1);
465 sar(reg, kSmiTagSize); 465 sar(reg, kSmiTagSize);
466 STATIC_ASSERT(kSmiTag == 0); 466 STATIC_ASSERT(kSmiTag == 0);
467 j(not_carry, is_smi); 467 j(not_carry, is_smi);
468 } 468 }
469 469
470 void LoadUint32(XMMRegister dst, Register src, XMMRegister scratch);
471
470 // Jump the register contains a smi. 472 // Jump the register contains a smi.
471 inline void JumpIfSmi(Register value, 473 inline void JumpIfSmi(Register value,
472 Label* smi_label, 474 Label* smi_label,
473 Label::Distance distance = Label::kFar) { 475 Label::Distance distance = Label::kFar) {
474 test(value, Immediate(kSmiTagMask)); 476 test(value, Immediate(kSmiTagMask));
475 j(zero, smi_label, distance); 477 j(zero, smi_label, distance);
476 } 478 }
477 // Jump if the operand is a smi. 479 // Jump if the operand is a smi.
478 inline void JumpIfSmi(Operand value, 480 inline void JumpIfSmi(Operand value,
479 Label* smi_label, 481 Label* smi_label,
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 } \ 989 } \
988 masm-> 990 masm->
989 #else 991 #else
990 #define ACCESS_MASM(masm) masm-> 992 #define ACCESS_MASM(masm) masm->
991 #endif 993 #endif
992 994
993 995
994 } } // namespace v8::internal 996 } } // namespace v8::internal
995 997
996 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 998 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698