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

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

Issue 25696004: Add support to load/store byte fields. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Also adjust HLoadNamedField::InferRange. Created 7 years, 2 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 763 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 774
775 // Checks if the given register or operand is a unique name 775 // Checks if the given register or operand is a unique name
776 void JumpIfNotUniqueName(Register reg, Label* not_unique_name, 776 void JumpIfNotUniqueName(Register reg, Label* not_unique_name,
777 Label::Distance distance = Label::kFar); 777 Label::Distance distance = Label::kFar);
778 void JumpIfNotUniqueName(Operand operand, Label* not_unique_name, 778 void JumpIfNotUniqueName(Operand operand, Label* not_unique_name,
779 Label::Distance distance = Label::kFar); 779 Label::Distance distance = Label::kFar);
780 780
781 // --------------------------------------------------------------------------- 781 // ---------------------------------------------------------------------------
782 // Macro instructions. 782 // Macro instructions.
783 783
784 // Load/store with specific representation.
785 void Load(Register dst, const Operand& src, Representation r);
786 void Store(const Operand& dst, Register src, Representation r);
787
784 // Load a register with a long value as efficiently as possible. 788 // Load a register with a long value as efficiently as possible.
785 void Set(Register dst, int64_t x); 789 void Set(Register dst, int64_t x);
786 void Set(const Operand& dst, int64_t x); 790 void Set(const Operand& dst, int64_t x);
787 791
788 // cvtsi2sd instruction only writes to the low 64-bit of dst register, which 792 // cvtsi2sd instruction only writes to the low 64-bit of dst register, which
789 // hinders register renaming and makes dependence chains longer. So we use 793 // hinders register renaming and makes dependence chains longer. So we use
790 // xorps to clear the dst register before cvtsi2sd to solve this issue. 794 // xorps to clear the dst register before cvtsi2sd to solve this issue.
791 void Cvtlsi2sd(XMMRegister dst, Register src); 795 void Cvtlsi2sd(XMMRegister dst, Register src);
792 void Cvtlsi2sd(XMMRegister dst, const Operand& src); 796 void Cvtlsi2sd(XMMRegister dst, const Operand& src);
793 797
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 masm->popfq(); \ 1583 masm->popfq(); \
1580 } \ 1584 } \
1581 masm-> 1585 masm->
1582 #else 1586 #else
1583 #define ACCESS_MASM(masm) masm-> 1587 #define ACCESS_MASM(masm) masm->
1584 #endif 1588 #endif
1585 1589
1586 } } // namespace v8::internal 1590 } } // namespace v8::internal
1587 1591
1588 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 1592 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698