Index: src/arm64/macro-assembler-arm64-inl.h |
diff --git a/src/arm64/macro-assembler-arm64-inl.h b/src/arm64/macro-assembler-arm64-inl.h |
index 0f8a18d9cf124a662b7750cc7249287bab6d7021..0c6aadf6b9e59e6d48fe458bac5d4071ad47ca82 100644 |
--- a/src/arm64/macro-assembler-arm64-inl.h |
+++ b/src/arm64/macro-assembler-arm64-inl.h |
@@ -126,8 +126,8 @@ void MacroAssembler::Ccmp(const Register& rn, |
StatusFlags nzcv, |
Condition cond) { |
ASSERT(allow_macro_instructions_); |
- if (operand.IsImmediate() && (operand.immediate() < 0)) { |
- ConditionalCompareMacro(rn, -operand.immediate(), nzcv, cond, CCMN); |
+ if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) { |
+ ConditionalCompareMacro(rn, -operand.ImmediateValue(), nzcv, cond, CCMN); |
} else { |
ConditionalCompareMacro(rn, operand, nzcv, cond, CCMP); |
} |
@@ -139,8 +139,8 @@ void MacroAssembler::Ccmn(const Register& rn, |
StatusFlags nzcv, |
Condition cond) { |
ASSERT(allow_macro_instructions_); |
- if (operand.IsImmediate() && (operand.immediate() < 0)) { |
- ConditionalCompareMacro(rn, -operand.immediate(), nzcv, cond, CCMP); |
+ if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) { |
+ ConditionalCompareMacro(rn, -operand.ImmediateValue(), nzcv, cond, CCMP); |
} else { |
ConditionalCompareMacro(rn, operand, nzcv, cond, CCMN); |
} |
@@ -151,8 +151,8 @@ void MacroAssembler::Add(const Register& rd, |
const Register& rn, |
const Operand& operand) { |
ASSERT(allow_macro_instructions_); |
- if (operand.IsImmediate() && (operand.immediate() < 0)) { |
- AddSubMacro(rd, rn, -operand.immediate(), LeaveFlags, SUB); |
+ if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) { |
+ AddSubMacro(rd, rn, -operand.ImmediateValue(), LeaveFlags, SUB); |
} else { |
AddSubMacro(rd, rn, operand, LeaveFlags, ADD); |
} |
@@ -162,8 +162,8 @@ void MacroAssembler::Adds(const Register& rd, |
const Register& rn, |
const Operand& operand) { |
ASSERT(allow_macro_instructions_); |
- if (operand.IsImmediate() && (operand.immediate() < 0)) { |
- AddSubMacro(rd, rn, -operand.immediate(), SetFlags, SUB); |
+ if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) { |
+ AddSubMacro(rd, rn, -operand.ImmediateValue(), SetFlags, SUB); |
} else { |
AddSubMacro(rd, rn, operand, SetFlags, ADD); |
} |
@@ -174,8 +174,8 @@ void MacroAssembler::Sub(const Register& rd, |
const Register& rn, |
const Operand& operand) { |
ASSERT(allow_macro_instructions_); |
- if (operand.IsImmediate() && (operand.immediate() < 0)) { |
- AddSubMacro(rd, rn, -operand.immediate(), LeaveFlags, ADD); |
+ if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) { |
+ AddSubMacro(rd, rn, -operand.ImmediateValue(), LeaveFlags, ADD); |
} else { |
AddSubMacro(rd, rn, operand, LeaveFlags, SUB); |
} |
@@ -186,8 +186,8 @@ void MacroAssembler::Subs(const Register& rd, |
const Register& rn, |
const Operand& operand) { |
ASSERT(allow_macro_instructions_); |
- if (operand.IsImmediate() && (operand.immediate() < 0)) { |
- AddSubMacro(rd, rn, -operand.immediate(), SetFlags, ADD); |
+ if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) { |
+ AddSubMacro(rd, rn, -operand.ImmediateValue(), SetFlags, ADD); |
} else { |
AddSubMacro(rd, rn, operand, SetFlags, SUB); |
} |
@@ -211,7 +211,7 @@ void MacroAssembler::Neg(const Register& rd, |
ASSERT(allow_macro_instructions_); |
ASSERT(!rd.IsZero()); |
if (operand.IsImmediate()) { |
- Mov(rd, -operand.immediate()); |
+ Mov(rd, -operand.ImmediateValue()); |
} else { |
Sub(rd, AppropriateZeroRegFor(rd), operand); |
} |
@@ -717,11 +717,7 @@ void MacroAssembler::Fmov(FPRegister fd, double imm) { |
} else if ((imm == 0.0) && (copysign(1.0, imm) == 1.0)) { |
fmov(fd, xzr); |
} else { |
- UseScratchRegisterScope temps(this); |
- Register tmp = temps.AcquireX(); |
- // TODO(all): Use Assembler::ldr(const FPRegister& ft, double imm). |
- Mov(tmp, double_to_rawbits(imm)); |
- Fmov(fd, tmp); |
+ Ldr(fd, imm); |
} |
} |
@@ -880,16 +876,16 @@ void MacroAssembler::Ldpsw(const Register& rt, |
} |
-void MacroAssembler::Ldr(const FPRegister& ft, double imm) { |
+void MacroAssembler::Ldr(const CPURegister& rt, const Immediate& imm) { |
ASSERT(allow_macro_instructions_); |
- ldr(ft, imm); |
+ ldr(rt, imm); |
} |
-void MacroAssembler::Ldr(const Register& rt, uint64_t imm) { |
+void MacroAssembler::Ldr(const CPURegister& rt, double imm) { |
ASSERT(allow_macro_instructions_); |
- ASSERT(!rt.IsZero()); |
- ldr(rt, imm); |
+ ASSERT(rt.Is64Bits()); |
+ ldr(rt, Immediate(double_to_rawbits(imm))); |
} |
@@ -1264,7 +1260,7 @@ void MacroAssembler::BumpSystemStackPointer(const Operand& space) { |
InstructionAccurateScope scope(this); |
ASSERT(space.IsImmediate()); |
// Align to 16 bytes. |
- uint64_t imm = RoundUp(space.immediate(), 0x10); |
+ uint64_t imm = RoundUp(space.ImmediateValue(), 0x10); |
ASSERT(is_uint24(imm)); |
Register source = StackPointer(); |
@@ -1633,7 +1629,7 @@ void MacroAssembler::CompareAndBranch(const Register& lhs, |
const Operand& rhs, |
Condition cond, |
Label* label) { |
- if (rhs.IsImmediate() && (rhs.immediate() == 0) && |
+ if (rhs.IsImmediate() && (rhs.ImmediateValue() == 0) && |
((cond == eq) || (cond == ne))) { |
if (cond == eq) { |
Cbz(lhs, label); |