Index: src/a64/assembler-a64.cc |
diff --git a/src/a64/assembler-a64.cc b/src/a64/assembler-a64.cc |
index 85171d5a2258ed3242edb4d6a91d5cd6ab2fcced..8d78c3d7b76615c446dbe7f813c0dff02a40e00e 100644 |
--- a/src/a64/assembler-a64.cc |
+++ b/src/a64/assembler-a64.cc |
@@ -1413,16 +1413,24 @@ void Assembler::ldrsw(const Register& rt, const MemOperand& src) { |
void Assembler::ldr(const Register& rt, uint64_t imm) { |
// TODO(all): Constant pool may be garbage collected. Hence we cannot store |
- // TODO(all): arbitrary values in them. Manually move it for now. |
- // TODO(all): Fix MacroAssembler::Fmov when this is implemented. |
+ // arbitrary values in them. Manually move it for now. Fix |
+ // MacroAssembler::Fmov when this is implemented. |
UNIMPLEMENTED(); |
} |
void Assembler::ldr(const FPRegister& ft, double imm) { |
// TODO(all): Constant pool may be garbage collected. Hence we cannot store |
- // TODO(all): arbitrary values in them. Manually move it for now. |
- // TODO(all): Fix MacroAssembler::Fmov when this is implemented. |
+ // arbitrary values in them. Manually move it for now. Fix |
+ // MacroAssembler::Fmov when this is implemented. |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void Assembler::ldr(const FPRegister& ft, float imm) { |
+ // TODO(all): Constant pool may be garbage collected. Hence we cannot store |
+ // arbitrary values in them. Manually move it for now. Fix |
+ // MacroAssembler::Fmov when this is implemented. |
UNIMPLEMENTED(); |
} |
@@ -1477,16 +1485,16 @@ void Assembler::isb() { |
void Assembler::fmov(FPRegister fd, double imm) { |
- if (fd.Is64Bits() && IsImmFP64(imm)) { |
- Emit(FMOV_d_imm | Rd(fd) | ImmFP64(imm)); |
- } else if (fd.Is32Bits() && IsImmFP32(imm)) { |
- Emit(FMOV_s_imm | Rd(fd) | ImmFP32(static_cast<float>(imm))); |
- } else if ((imm == 0.0) && (copysign(1.0, imm) == 1.0)) { |
- Register zr = AppropriateZeroRegFor(fd); |
- fmov(fd, zr); |
- } else { |
- ldr(fd, imm); |
- } |
+ ASSERT(fd.Is64Bits()); |
+ ASSERT(IsImmFP64(imm)); |
+ Emit(FMOV_d_imm | Rd(fd) | ImmFP64(imm)); |
+} |
+ |
+ |
+void Assembler::fmov(FPRegister fd, float imm) { |
+ ASSERT(fd.Is32Bits()); |
+ ASSERT(IsImmFP32(imm)); |
+ Emit(FMOV_s_imm | Rd(fd) | ImmFP32(imm)); |
} |