123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- --- a/js/src/jit/RegisterSets.h 2017-02-10 17:33:06.210702431 -0800
- +++ b/js/src/jit/RegisterSets.h 2017-02-10 17:43:52.877514146 -0800
- @@ -7,7 +7,6 @@
- #ifndef jit_RegisterSets_h
- #define jit_RegisterSets_h
-
- -#include "mozilla/Alignment.h"
- #include "mozilla/MathAlgorithms.h"
-
- #include "jit/JitAllocPolicy.h"
- @@ -26,8 +25,8 @@
- Code code_;
-
- public:
- - AnyRegister()
- - { }
- + AnyRegister() = default;
- +
- explicit AnyRegister(Register gpr) {
- code_ = gpr.code();
- }
- @@ -156,7 +155,7 @@
- }
- #endif
-
- - ValueOperand() {}
- + ValueOperand() = default;
- };
-
- // Registers to hold either either a typed or untyped value.
- @@ -165,46 +164,25 @@
- // Type of value being stored.
- MIRType type_;
-
- - // Space to hold either an AnyRegister or a ValueOperand.
- union U {
- - mozilla::AlignedStorage2<AnyRegister> typed;
- - mozilla::AlignedStorage2<ValueOperand> value;
- + AnyRegister typed;
- + ValueOperand value;
- } data;
-
- - AnyRegister& dataTyped() {
- - MOZ_ASSERT(hasTyped());
- - return *data.typed.addr();
- - }
- - ValueOperand& dataValue() {
- - MOZ_ASSERT(hasValue());
- - return *data.value.addr();
- - }
- -
- - AnyRegister dataTyped() const {
- - MOZ_ASSERT(hasTyped());
- - return *data.typed.addr();
- - }
- - const ValueOperand& dataValue() const {
- - MOZ_ASSERT(hasValue());
- - return *data.value.addr();
- - }
- -
- public:
-
- - TypedOrValueRegister()
- - : type_(MIRType_None)
- - {}
- + TypedOrValueRegister() = default;
-
- TypedOrValueRegister(MIRType type, AnyRegister reg)
- : type_(type)
- {
- - dataTyped() = reg;
- + data.typed = reg;
- }
-
- MOZ_IMPLICIT TypedOrValueRegister(ValueOperand value)
- : type_(MIRType_Value)
- {
- - dataValue() = value;
- + data.value = value;
- }
-
- MIRType type() const {
- @@ -220,11 +198,13 @@
- }
-
- AnyRegister typedReg() const {
- - return dataTyped();
- + MOZ_ASSERT(hasTyped());
- + return data.typed;
- }
-
- ValueOperand valueReg() const {
- - return dataValue();
- + MOZ_ASSERT(hasValue());
- + return data.value;
- }
-
- AnyRegister scratchReg() {
- @@ -240,19 +220,18 @@
- // Whether a constant value is being stored.
- bool constant_;
-
- - // Space to hold either a Value or a TypedOrValueRegister.
- union U {
- - mozilla::AlignedStorage2<Value> constant;
- - mozilla::AlignedStorage2<TypedOrValueRegister> reg;
- + Value constant;
- + TypedOrValueRegister reg;
- } data;
-
- Value& dataValue() {
- MOZ_ASSERT(constant());
- - return *data.constant.addr();
- + return data.constant;
- }
- TypedOrValueRegister& dataReg() {
- MOZ_ASSERT(!constant());
- - return *data.reg.addr();
- + return data.reg;
- }
-
- public:
|