aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit/qv4assembler_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2017-01-17 16:09:24 +0100
committerSimon Hausmann <simon.hausmann@qt.io>2017-01-31 13:40:07 +0000
commitce1551a05c494c54127ab5371f5e8de1823f477e (patch)
treea659572861904379c33935d9569d7d2709e6ad9b /src/qml/jit/qv4assembler_p.h
parent5e2db52aac1e3c511e1af815ef24775295668d73 (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.h22
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);