Index: runtime/vm/locations.h |
=================================================================== |
--- runtime/vm/locations.h (revision 17245) |
+++ runtime/vm/locations.h (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
@@ -63,15 +63,22 @@ |
// register code. |
kRegister = 6, |
- // XmmRegister location represents a fixed xmm register. Payload contains |
+ // FpuRegister location represents a fixed fpu register. Payload contains |
// its code. |
- kXmmRegister = 7, |
+ kFpuRegister = 7, |
}; |
Location() : value_(kInvalidLocation) { |
ASSERT(IsInvalid()); |
} |
+ Location(const Location& other) : ValueObject(), value_(other.value_) { } |
+ |
+ Location& operator=(const Location& other) { |
+ value_ = other.value_; |
+ return *this; |
+ } |
+ |
bool IsInvalid() const { |
return value_ == kInvalidLocation; |
} |
@@ -98,7 +105,7 @@ |
kAny, |
kPrefersRegister, |
kRequiresRegister, |
- kRequiresXmmRegister, |
+ kRequiresFpuRegister, |
kWritableRegister, |
kSameAsFirstInput, |
}; |
@@ -128,8 +135,8 @@ |
return UnallocatedLocation(kRequiresRegister); |
} |
- static Location RequiresXmmRegister() { |
- return UnallocatedLocation(kRequiresXmmRegister); |
+ static Location RequiresFpuRegister() { |
+ return UnallocatedLocation(kRequiresFpuRegister); |
} |
static Location WritableRegister() { |
@@ -169,7 +176,7 @@ |
return RegisterField::decode(payload()); |
} |
- // XMM registers and double spill slots can contain either doubles |
+ // FPU registers and double spill slots can contain either doubles |
// or 64-bit integers. |
enum Representation { |
kDouble, |
@@ -177,24 +184,24 @@ |
}; |
Representation representation() const { |
- ASSERT(IsXmmRegister() || IsDoubleStackSlot()); |
+ ASSERT(IsFpuRegister() || IsDoubleStackSlot()); |
return RepresentationField::decode(payload()); |
} |
- // XmmRegister locations. |
- static Location XmmRegisterLocation(XmmRegister reg, Representation rep) { |
+ // FpuRegister locations. |
+ static Location FpuRegisterLocation(FpuRegister reg, Representation rep) { |
uword payload = |
- XmmRegisterField::encode(reg) | RepresentationField::encode(rep); |
- return Location(kXmmRegister, payload); |
+ FpuRegisterField::encode(reg) | RepresentationField::encode(rep); |
+ return Location(kFpuRegister, payload); |
} |
- bool IsXmmRegister() const { |
- return kind() == kXmmRegister; |
+ bool IsFpuRegister() const { |
+ return kind() == kFpuRegister; |
} |
- XmmRegister xmm_reg() const { |
- ASSERT(IsXmmRegister()); |
- return XmmRegisterField::decode(payload()); |
+ FpuRegister fpu_reg() const { |
+ ASSERT(IsFpuRegister()); |
+ return FpuRegisterField::decode(payload()); |
} |
static bool IsMachineRegisterKind(Kind kind) { |
@@ -207,8 +214,8 @@ |
if (kind == kRegister) { |
return RegisterLocation(static_cast<Register>(reg)); |
} else { |
- ASSERT(kind == kXmmRegister); |
- return XmmRegisterLocation(static_cast<XmmRegister>(reg), rep); |
+ ASSERT(kind == kFpuRegister); |
+ return FpuRegisterLocation(static_cast<FpuRegister>(reg), rep); |
} |
} |
@@ -304,7 +311,7 @@ |
typedef BitField<Policy, 0, 3> PolicyField; |
// Layout for register locations payload. The representation bit is only used |
- // for XmmRegister and unused for Register. |
+ // for FpuRegister and unused for Register. |
static const intptr_t kBitsForRepresentation = 1; |
static const intptr_t kBitsForRegister = |
kBitsForPayload - kBitsForRepresentation; |
@@ -314,9 +321,9 @@ |
typedef BitField<Register, |
kBitsForRepresentation, |
kBitsForRegister> RegisterField; |
- typedef BitField<XmmRegister, |
+ typedef BitField<FpuRegister, |
kBitsForRepresentation, |
- kBitsForRegister> XmmRegisterField; |
+ kBitsForRegister> FpuRegisterField; |
// Layout for stack slots. The representation bit is only used for |
// DoubleStackSlot and unused for StackSlot. |
@@ -337,25 +344,25 @@ |
class RegisterSet : public ValueObject { |
public: |
- RegisterSet() : cpu_registers_(0), xmm_registers_(0) { |
+ RegisterSet() : cpu_registers_(0), fpu_registers_(0) { |
ASSERT(kNumberOfCpuRegisters < (kWordSize * kBitsPerByte)); |
- ASSERT(kNumberOfXmmRegisters < (kWordSize * kBitsPerByte)); |
+ ASSERT(kNumberOfFpuRegisters < (kWordSize * kBitsPerByte)); |
} |
void Add(Location loc) { |
if (loc.IsRegister()) { |
cpu_registers_ |= (1 << loc.reg()); |
- } else if (loc.IsXmmRegister()) { |
- xmm_registers_ |= (1 << loc.xmm_reg()); |
+ } else if (loc.IsFpuRegister()) { |
+ fpu_registers_ |= (1 << loc.fpu_reg()); |
} |
} |
void Remove(Location loc) { |
if (loc.IsRegister()) { |
cpu_registers_ &= ~(1 << loc.reg()); |
- } else if (loc.IsXmmRegister()) { |
- xmm_registers_ &= ~(1 << loc.xmm_reg()); |
+ } else if (loc.IsFpuRegister()) { |
+ fpu_registers_ &= ~(1 << loc.fpu_reg()); |
} |
} |
@@ -363,14 +370,14 @@ |
return (cpu_registers_ & (1 << reg)) != 0; |
} |
- bool ContainsXmmRegister(XmmRegister xmm_reg) { |
- return (xmm_registers_ & (1 << xmm_reg)) != 0; |
+ bool ContainsFpuRegister(FpuRegister fpu_reg) { |
+ return (fpu_registers_ & (1 << fpu_reg)) != 0; |
} |
- intptr_t xmm_regs_count() { |
+ intptr_t fpu_regs_count() { |
intptr_t count = 0; |
- for (intptr_t reg_idx = 0; reg_idx < kNumberOfXmmRegisters; reg_idx++) { |
- if (ContainsXmmRegister(static_cast<XmmRegister>(reg_idx))) { |
+ for (intptr_t reg_idx = 0; reg_idx < kNumberOfFpuRegisters; reg_idx++) { |
+ if (ContainsFpuRegister(static_cast<FpuRegister>(reg_idx))) { |
count++; |
} |
} |
@@ -379,7 +386,7 @@ |
private: |
intptr_t cpu_registers_; |
- intptr_t xmm_registers_; |
+ intptr_t fpu_registers_; |
DISALLOW_COPY_AND_ASSIGN(RegisterSet); |
}; |