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

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

Issue 11033005: Add rotate-right instruction to hydrogen and use it instead of bitwise operations (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 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 (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after
1009 } 1009 }
1010 1010
1011 void rcr(Register dst, Immediate imm8) { 1011 void rcr(Register dst, Immediate imm8) {
1012 shift(dst, imm8, 0x3); 1012 shift(dst, imm8, 0x3);
1013 } 1013 }
1014 1014
1015 void ror(Register dst, Immediate imm8) { 1015 void ror(Register dst, Immediate imm8) {
1016 shift(dst, imm8, 0x1); 1016 shift(dst, imm8, 0x1);
1017 } 1017 }
1018 1018
1019 void rorl(Register dst, Immediate imm8) {
1020 shift_32(dst, imm8, 0x1);
1021 }
1022
1023 void rorl_cl(Register dst) {
1024 shift_32(dst, 0x1);
1025 }
1026
1019 // Shifts dst:src left by cl bits, affecting only dst. 1027 // Shifts dst:src left by cl bits, affecting only dst.
1020 void shld(Register dst, Register src); 1028 void shld(Register dst, Register src);
1021 1029
1022 // Shifts src:dst right by cl bits, affecting only dst. 1030 // Shifts src:dst right by cl bits, affecting only dst.
1023 void shrd(Register dst, Register src); 1031 void shrd(Register dst, Register src);
1024 1032
1025 // Shifts dst right, duplicating sign bit, by shift_amount bits. 1033 // Shifts dst right, duplicating sign bit, by shift_amount bits.
1026 // Shifting by 1 is handled efficiently. 1034 // Shifting by 1 is handled efficiently.
1027 void sar(Register dst, Immediate shift_amount) { 1035 void sar(Register dst, Immediate shift_amount) {
1028 shift(dst, shift_amount, 0x7); 1036 shift(dst, shift_amount, 0x7);
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
1672 private: 1680 private:
1673 Assembler* assembler_; 1681 Assembler* assembler_;
1674 #ifdef DEBUG 1682 #ifdef DEBUG
1675 int space_before_; 1683 int space_before_;
1676 #endif 1684 #endif
1677 }; 1685 };
1678 1686
1679 } } // namespace v8::internal 1687 } } // namespace v8::internal
1680 1688
1681 #endif // V8_X64_ASSEMBLER_X64_H_ 1689 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW
« src/hydrogen-instructions.h ('K') | « src/token.h ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698