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 1780193003: [turbofan] Byte and word memory operands in x64 cmp/test. Fixes arithmetic_op_8 in assembler-x64.cc (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fixes cmpb. Created 4 years, 9 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
« no previous file with comments | « src/compiler/x64/instruction-selector-x64.cc ('k') | src/x64/assembler-x64.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 (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 755 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 } 766 }
767 767
768 void cmpw(Register dst, Register src) { 768 void cmpw(Register dst, Register src) {
769 arithmetic_op_16(0x3B, dst, src); 769 arithmetic_op_16(0x3B, dst, src);
770 } 770 }
771 771
772 void cmpw(const Operand& dst, Register src) { 772 void cmpw(const Operand& dst, Register src) {
773 arithmetic_op_16(0x39, src, dst); 773 arithmetic_op_16(0x39, src, dst);
774 } 774 }
775 775
776 void testb(Register reg, const Operand& op) { testb(op, reg); }
777
778 void testw(Register reg, const Operand& op) { testw(op, reg); }
779
776 void andb(Register dst, Immediate src) { 780 void andb(Register dst, Immediate src) {
777 immediate_arithmetic_op_8(0x4, dst, src); 781 immediate_arithmetic_op_8(0x4, dst, src);
778 } 782 }
779 783
780 void decb(Register dst); 784 void decb(Register dst);
781 void decb(const Operand& dst); 785 void decb(const Operand& dst);
782 786
783 // Sign-extends rax into rdx:rax. 787 // Sign-extends rax into rdx:rax.
784 void cqo(); 788 void cqo();
785 // Sign-extends eax into edx:eax. 789 // Sign-extends eax into edx:eax.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 845
842 void subb(Register dst, Immediate src) { 846 void subb(Register dst, Immediate src) {
843 immediate_arithmetic_op_8(0x5, dst, src); 847 immediate_arithmetic_op_8(0x5, dst, src);
844 } 848 }
845 849
846 void testb(Register dst, Register src); 850 void testb(Register dst, Register src);
847 void testb(Register reg, Immediate mask); 851 void testb(Register reg, Immediate mask);
848 void testb(const Operand& op, Immediate mask); 852 void testb(const Operand& op, Immediate mask);
849 void testb(const Operand& op, Register reg); 853 void testb(const Operand& op, Register reg);
850 854
855 void testw(Register dst, Register src);
856 void testw(Register reg, Immediate mask);
857 void testw(const Operand& op, Immediate mask);
858 void testw(const Operand& op, Register reg);
859
851 // Bit operations. 860 // Bit operations.
852 void bt(const Operand& dst, Register src); 861 void bt(const Operand& dst, Register src);
853 void bts(const Operand& dst, Register src); 862 void bts(const Operand& dst, Register src);
854 void bsrq(Register dst, Register src); 863 void bsrq(Register dst, Register src);
855 void bsrq(Register dst, const Operand& src); 864 void bsrq(Register dst, const Operand& src);
856 void bsrl(Register dst, Register src); 865 void bsrl(Register dst, Register src);
857 void bsrl(Register dst, const Operand& src); 866 void bsrl(Register dst, const Operand& src);
858 void bsfq(Register dst, Register src); 867 void bsfq(Register dst, Register src);
859 void bsfq(Register dst, const Operand& src); 868 void bsfq(Register dst, const Operand& src);
860 void bsfl(Register dst, Register src); 869 void bsfl(Register dst, Register src);
(...skipping 1350 matching lines...) Expand 10 before | Expand all | Expand 10 after
2211 Assembler* assembler_; 2220 Assembler* assembler_;
2212 #ifdef DEBUG 2221 #ifdef DEBUG
2213 int space_before_; 2222 int space_before_;
2214 #endif 2223 #endif
2215 }; 2224 };
2216 2225
2217 } // namespace internal 2226 } // namespace internal
2218 } // namespace v8 2227 } // namespace v8
2219 2228
2220 #endif // V8_X64_ASSEMBLER_X64_H_ 2229 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW
« no previous file with comments | « src/compiler/x64/instruction-selector-x64.cc ('k') | src/x64/assembler-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698