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

Side by Side Diff: src/ia32/assembler-ia32.cc

Issue 2735363002: [ia32] Fix invalid DCHECK on cmpw with immediate. (Closed)
Patch Set: Created 3 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 | « no previous file | test/mjsunit/regress/regress-6063.js » ('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 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are 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 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 834
835 void Assembler::cmpb(Register reg, const Operand& op) { 835 void Assembler::cmpb(Register reg, const Operand& op) {
836 CHECK(reg.is_byte_register()); 836 CHECK(reg.is_byte_register());
837 EnsureSpace ensure_space(this); 837 EnsureSpace ensure_space(this);
838 EMIT(0x3A); 838 EMIT(0x3A);
839 emit_operand(reg, op); 839 emit_operand(reg, op);
840 } 840 }
841 841
842 842
843 void Assembler::cmpw(const Operand& op, Immediate imm16) { 843 void Assembler::cmpw(const Operand& op, Immediate imm16) {
844 DCHECK(imm16.is_int16()); 844 DCHECK(imm16.is_int16() || imm16.is_uint16());
845 EnsureSpace ensure_space(this); 845 EnsureSpace ensure_space(this);
846 EMIT(0x66); 846 EMIT(0x66);
847 EMIT(0x81); 847 EMIT(0x81);
848 emit_operand(edi, op); 848 emit_operand(edi, op);
849 emit_w(imm16); 849 emit_w(imm16);
850 } 850 }
851 851
852 void Assembler::cmpw(Register reg, const Operand& op) { 852 void Assembler::cmpw(Register reg, const Operand& op) {
853 EnsureSpace ensure_space(this); 853 EnsureSpace ensure_space(this);
854 EMIT(0x66); 854 EMIT(0x66);
(...skipping 2215 matching lines...) Expand 10 before | Expand all | Expand 10 after
3070 } 3070 }
3071 RelocInfo rinfo(isolate(), pc_, rmode, data, NULL); 3071 RelocInfo rinfo(isolate(), pc_, rmode, data, NULL);
3072 reloc_info_writer.Write(&rinfo); 3072 reloc_info_writer.Write(&rinfo);
3073 } 3073 }
3074 3074
3075 3075
3076 } // namespace internal 3076 } // namespace internal
3077 } // namespace v8 3077 } // namespace v8
3078 3078
3079 #endif // V8_TARGET_ARCH_IA32 3079 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/regress/regress-6063.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698