Index: src/arm/assembler-arm.cc |
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc |
index c3f9ab0b9b2501997a7f83d154b1607c6fad6ca3..84adc04f31c202ab553893a25447b44d0c335099 100644 |
--- a/src/arm/assembler-arm.cc |
+++ b/src/arm/assembler-arm.cc |
@@ -1081,8 +1081,7 @@ void Assembler::move_32_bit_immediate(Register rd, |
// Make sure the movw/movt doesn't get separated. |
BlockConstPoolFor(2); |
} |
- emit(cond | 0x30*B20 | target.code()*B12 | |
- EncodeMovwImmediate(x.imm32_ & 0xffff)); |
+ movw(target, static_cast<uint32_t>(x.imm32_ & 0xffff), cond); |
movt(target, static_cast<uint32_t>(x.imm32_) >> 16, cond); |
if (target.code() != rd.code()) { |
mov(rd, target, LeaveCC, cond); |
@@ -1446,11 +1445,7 @@ void Assembler::mov_label_offset(Register dst, Label* label) { |
void Assembler::movw(Register reg, uint32_t immediate, Condition cond) { |
- ASSERT(immediate < 0x10000); |
- // May use movw if supported, but on unsupported platforms will try to use |
- // equivalent rotated immed_8 value and other tricks before falling back to a |
- // constant pool load. |
- mov(reg, Operand(immediate), LeaveCC, cond); |
+ emit(cond | 0x30*B20 | reg.code()*B12 | EncodeMovwImmediate(immediate)); |
} |