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: Update. 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
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 753 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 } 764 }
765 765
766 void cmpw(Register dst, Register src) { 766 void cmpw(Register dst, Register src) {
767 arithmetic_op_16(0x3B, dst, src); 767 arithmetic_op_16(0x3B, dst, src);
768 } 768 }
769 769
770 void cmpw(const Operand& dst, Register src) { 770 void cmpw(const Operand& dst, Register src) {
771 arithmetic_op_16(0x39, src, dst); 771 arithmetic_op_16(0x39, src, dst);
772 } 772 }
773 773
774 void testb(Register reg, const Operand& op) { testb(op, reg); }
775
776 void testw(Register reg, const Operand& op) { testw(op, reg); }
777
774 void andb(Register dst, Immediate src) { 778 void andb(Register dst, Immediate src) {
775 immediate_arithmetic_op_8(0x4, dst, src); 779 immediate_arithmetic_op_8(0x4, dst, src);
776 } 780 }
777 781
778 void decb(Register dst); 782 void decb(Register dst);
779 void decb(const Operand& dst); 783 void decb(const Operand& dst);
780 784
781 // Sign-extends rax into rdx:rax. 785 // Sign-extends rax into rdx:rax.
782 void cqo(); 786 void cqo();
783 // Sign-extends eax into edx:eax. 787 // Sign-extends eax into edx:eax.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 843
840 void subb(Register dst, Immediate src) { 844 void subb(Register dst, Immediate src) {
841 immediate_arithmetic_op_8(0x5, dst, src); 845 immediate_arithmetic_op_8(0x5, dst, src);
842 } 846 }
843 847
844 void testb(Register dst, Register src); 848 void testb(Register dst, Register src);
845 void testb(Register reg, Immediate mask); 849 void testb(Register reg, Immediate mask);
846 void testb(const Operand& op, Immediate mask); 850 void testb(const Operand& op, Immediate mask);
847 void testb(const Operand& op, Register reg); 851 void testb(const Operand& op, Register reg);
848 852
853 void testw(Register dst, Register src);
854 void testw(Register reg, Immediate mask);
855 void testw(const Operand& op, Immediate mask);
856 void testw(const Operand& op, Register reg);
857
849 // Bit operations. 858 // Bit operations.
850 void bt(const Operand& dst, Register src); 859 void bt(const Operand& dst, Register src);
851 void bts(const Operand& dst, Register src); 860 void bts(const Operand& dst, Register src);
852 void bsrq(Register dst, Register src); 861 void bsrq(Register dst, Register src);
853 void bsrq(Register dst, const Operand& src); 862 void bsrq(Register dst, const Operand& src);
854 void bsrl(Register dst, Register src); 863 void bsrl(Register dst, Register src);
855 void bsrl(Register dst, const Operand& src); 864 void bsrl(Register dst, const Operand& src);
856 void bsfq(Register dst, Register src); 865 void bsfq(Register dst, Register src);
857 void bsfq(Register dst, const Operand& src); 866 void bsfq(Register dst, const Operand& src);
858 void bsfl(Register dst, Register src); 867 void bsfl(Register dst, Register src);
(...skipping 1350 matching lines...) Expand 10 before | Expand all | Expand 10 after
2209 Assembler* assembler_; 2218 Assembler* assembler_;
2210 #ifdef DEBUG 2219 #ifdef DEBUG
2211 int space_before_; 2220 int space_before_;
2212 #endif 2221 #endif
2213 }; 2222 };
2214 2223
2215 } // namespace internal 2224 } // namespace internal
2216 } // namespace v8 2225 } // namespace v8
2217 2226
2218 #endif // V8_X64_ASSEMBLER_X64_H_ 2227 #endif // V8_X64_ASSEMBLER_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698