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

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

Issue 330018: Generate more compact XOR on 64-bit architecture when using xor to zero out r... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 1 month 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 902 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 void testb(Register reg, Immediate mask); 913 void testb(Register reg, Immediate mask);
914 void testb(const Operand& op, Immediate mask); 914 void testb(const Operand& op, Immediate mask);
915 void testl(Register dst, Register src); 915 void testl(Register dst, Register src);
916 void testl(Register reg, Immediate mask); 916 void testl(Register reg, Immediate mask);
917 void testl(const Operand& op, Immediate mask); 917 void testl(const Operand& op, Immediate mask);
918 void testq(const Operand& op, Register reg); 918 void testq(const Operand& op, Register reg);
919 void testq(Register dst, Register src); 919 void testq(Register dst, Register src);
920 void testq(Register dst, Immediate mask); 920 void testq(Register dst, Immediate mask);
921 921
922 void xor_(Register dst, Register src) { 922 void xor_(Register dst, Register src) {
923 arithmetic_op(0x33, dst, src); 923 if (dst.code() == src.code()) {
924 arithmetic_op_32(0x33, dst, src);
925 } else {
926 arithmetic_op(0x33, dst, src);
927 }
924 } 928 }
925 929
926 void xorl(Register dst, Register src) { 930 void xorl(Register dst, Register src) {
927 arithmetic_op_32(0x33, dst, src); 931 arithmetic_op_32(0x33, dst, src);
928 } 932 }
929 933
930 void xor_(Register dst, const Operand& src) { 934 void xor_(Register dst, const Operand& src) {
931 arithmetic_op(0x33, dst, src); 935 arithmetic_op(0x33, dst, src);
932 } 936 }
933 937
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 private: 1369 private:
1366 Assembler* assembler_; 1370 Assembler* assembler_;
1367 #ifdef DEBUG 1371 #ifdef DEBUG
1368 int space_before_; 1372 int space_before_;
1369 #endif 1373 #endif
1370 }; 1374 };
1371 1375
1372 } } // namespace v8::internal 1376 } } // namespace v8::internal
1373 1377
1374 #endif // V8_X64_ASSEMBLER_X64_H_ 1378 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698