diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-01-17 16:09:24 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-01-31 13:40:07 +0000 |
commit | ce1551a05c494c54127ab5371f5e8de1823f477e (patch) | |
tree | a659572861904379c33935d9569d7d2709e6ad9b /src/qml/jit/qv4assembler_p.h | |
parent | 5e2db52aac1e3c511e1af815ef24775295668d73 (diff) |
Remove ifdefs in JIT::Assembler:storeValue
Change-Id: I4660bbf0dde4aef15be07ea61c1e0c181ec696be
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/jit/qv4assembler_p.h')
-rw-r--r-- | src/qml/jit/qv4assembler_p.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 6dc176b82e..e43639449a 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -127,6 +127,7 @@ struct RegisterSizeDependentAssembler<JITAssembler, MacroAssembler, TargetPlatfo using RelationalCondition = typename JITAssembler::RelationalCondition; using Address = typename JITAssembler::Address; using Pointer = typename JITAssembler::Pointer; + using TrustedImm32 = typename JITAssembler::TrustedImm32; using TrustedImm64 = typename JITAssembler::TrustedImm64; static void loadDouble(JITAssembler *as, Address addr, FPRegisterID dest) @@ -145,6 +146,13 @@ struct RegisterSizeDependentAssembler<JITAssembler, MacroAssembler, TargetPlatfo as->storeDouble(source, ptr); } + static void storeValue(JITAssembler *as, QV4::Primitive value, Address destination) + { + as->store32(TrustedImm32(value.int_32()), destination); + destination.offset += 4; + as->store32(TrustedImm32(value.tag()), destination); + } + static void storeReturnValue(JITAssembler *as, FPRegisterID dest) { as->moveIntsToDouble(TargetPlatform::LowReturnValueRegister, TargetPlatform::HighReturnValueRegister, dest, TargetPlatform::FPGpr0); @@ -221,6 +229,11 @@ struct RegisterSizeDependentAssembler<JITAssembler, MacroAssembler, TargetPlatfo as->store64(TargetPlatform::ReturnValueRegister, dest); } + static void storeValue(JITAssembler *as, QV4::Primitive value, Address destination) + { + as->store64(TrustedImm64(value.rawValue()), destination); + } + static void generateCJumpOnCompare(JITAssembler *as, RelationalCondition cond, RegisterID left, @@ -266,7 +279,6 @@ public: using MacroAssembler::jump; #ifdef QV4_USE_64_BIT_VALUE_ENCODING using MacroAssembler::move64ToDouble; - using MacroAssembler::store64; using MacroAssembler::load64; #endif using MacroAssembler::add32; @@ -853,13 +865,7 @@ public: void storeValue(QV4::Primitive value, Address destination) { -#ifdef VALUE_FITS_IN_REGISTER - store64(TrustedImm64(value.rawValue()), destination); -#else - store32(TrustedImm32(value.int_32()), destination); - destination.offset += 4; - store32(TrustedImm32(value.tag()), destination); -#endif + RegisterSizeDependentOps::storeValue(this, value, destination); } void storeValue(QV4::Primitive value, IR::Expr* temp); |