Chromium Code Reviews| Index: src/ia32/assembler-ia32.cc |
| =================================================================== |
| --- src/ia32/assembler-ia32.cc (revision 3310) |
| +++ src/ia32/assembler-ia32.cc (working copy) |
| @@ -1091,7 +1091,7 @@ |
| } |
| -void Assembler::sar(Register dst) { |
| +void Assembler::sar_cl(Register dst) { |
| EnsureSpace ensure_space(this); |
| last_pc_ = pc_; |
| EMIT(0xD3); |
| @@ -1131,7 +1131,7 @@ |
| } |
| -void Assembler::shl(Register dst) { |
| +void Assembler::shl_cl(Register dst) { |
| EnsureSpace ensure_space(this); |
| last_pc_ = pc_; |
| EMIT(0xD3); |
| @@ -1152,13 +1152,18 @@ |
| EnsureSpace ensure_space(this); |
| last_pc_ = pc_; |
| ASSERT(is_uint5(imm8)); // illegal shift count |
| - EMIT(0xC1); |
| - EMIT(0xE8 | dst.code()); |
| - EMIT(imm8); |
| + if (imm8 == 1) { |
| + EMIT(0xD1); |
| + EMIT(0xE8 | dst.code()); |
| + } else { |
| + EMIT(0xC1); |
| + EMIT(0xE8 | dst.code()); |
| + EMIT(imm8); |
| + } |
| } |
| -void Assembler::shr(Register dst) { |
| +void Assembler::shr_cl(Register dst) { |
| EnsureSpace ensure_space(this); |
| last_pc_ = pc_; |
| EMIT(0xD3); |
| @@ -1166,14 +1171,6 @@ |
| } |
| -void Assembler::shr_cl(Register dst) { |
| - EnsureSpace ensure_space(this); |
| - last_pc_ = pc_; |
| - EMIT(0xD1); |
|
Lasse Reichstein
2009/11/17 08:30:36
So this one was actually wrong before. Was it used
Søren Thygesen Gjesse
2009/11/17 08:35:10
It was wrong but not used.
|
| - EMIT(0xE8 | dst.code()); |
| -} |
| - |
| - |
| void Assembler::subb(const Operand& op, int8_t imm8) { |
| EnsureSpace ensure_space(this); |
| last_pc_ = pc_; |