diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-01-30 12:34:35 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-01-31 20:45:27 +0000 |
commit | 26b5b643b0207b7f631de734db260149db8aca23 (patch) | |
tree | 32aa36b662e79a2b746620b07521771a4175dae3 /src/qml/jit/qv4assembler_p.h | |
parent | 8b7d48d99c256182992104eaca5fd630bf41830b (diff) |
Eliminate platform #ifdef for loading strings
Use templates to abstract the two different ways of making a QV4::Value
hold the address of a managed, in this case to a runtime string.
Change-Id: Ibe9ae10fdcef68dbfc7c61fbb3ec8b3a1d50f1a2
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 | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index ff3f287c8d..f063593ecf 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -287,6 +287,13 @@ struct RegisterSizeDependentAssembler<JITAssembler, MacroAssembler, TargetPlatfo intDone.link(as); } + + static void loadManagedPointer(JITAssembler *as, RegisterID registerWithPtr, Pointer destAddr) + { + as->store32(registerWithPtr, destAddr); + destAddr.offset += 4; + as->store32(TrustedImm32(QV4::Value::Managed_Type_Internal_32), destAddr); + } }; template <typename JITAssembler, typename MacroAssembler, typename TargetPlatform> @@ -486,6 +493,11 @@ struct RegisterSizeDependentAssembler<JITAssembler, MacroAssembler, TargetPlatfo as->storeInt32(TargetPlatform::ReturnValueRegister, target); } } + + static void loadManagedPointer(JITAssembler *as, RegisterID registerWithPtr, Pointer destAddr) + { + as->store64(registerWithPtr, destAddr); + } }; template <typename TargetConfiguration> |