From 3c2115cd5956d3e60e1e053a319b528ff0238eae Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 15 Oct 2014 13:18:49 +0200 Subject: Pop pack pragma on x86 QNX A recent patch fixing QNX on x86 forgot to also pop the pragma it set. Change-Id: I9834c0b57a4409e8e80c29899e6f3989607fe22f Reviewed-by: Jocelyn Turcotte --- Source/JavaScriptCore/jit/JITStubs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'Source/JavaScriptCore') diff --git a/Source/JavaScriptCore/jit/JITStubs.h b/Source/JavaScriptCore/jit/JITStubs.h index 2659d6899..ad7ecc851 100644 --- a/Source/JavaScriptCore/jit/JITStubs.h +++ b/Source/JavaScriptCore/jit/JITStubs.h @@ -143,7 +143,7 @@ struct JITStackFrame { #if COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC)) || OS(QNX) #pragma pack(push) #pragma pack(4) -#endif // COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC)) +#endif // COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC)) || OS(QNX) struct JITStackFrame { void* reserved; // Unused JITStubArg args[6]; @@ -167,9 +167,9 @@ struct JITStackFrame { // When JIT code makes a call, it pushes its return address just below the rest of the stack. ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast(this) - 1; } }; -#if COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC)) +#if COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC)) || OS(QNX) #pragma pack(pop) -#endif // COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC)) +#endif // COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC)) || OS(QNX) #elif CPU(ARM_THUMB2) struct JITStackFrame { JITStubArg reserved; // Unused -- cgit v1.2.1 From 2d9338631117c2dd25c8362ed10cfa89d1be28aa Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 23 Oct 2014 18:08:52 +0200 Subject: Do not use floating point instructions in float-abi=soft Pretend VFP doesn't exist when the ABI forbids floating point instructions. Task-number: QTBUG-38371 Change-Id: Id0552201e6bf98812198c0028e2c85107e967a81 Reviewed-by: Michael Bruning --- Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Source/JavaScriptCore') diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp b/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp index 0264361b5..6fc08bcb3 100644 --- a/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp +++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp @@ -47,6 +47,10 @@ namespace JSC { static bool isVFPPresent() { +#if defined(__SOFTFP__) + return false; +#endif + #if OS(LINUX) int fd = open("/proc/self/auxv", O_RDONLY); if (fd > 0) { -- cgit v1.2.1 From 400872d024cee95d1cfc1253d009c0c6777ea5a3 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 24 Oct 2014 11:10:13 +0200 Subject: Use INLINE_ARM_FUNCTION in OFFLINE_ASM_GLOBAL_LABEL We can get rid of an ifdef in LowLevelInterpreter by reusing logic from InlineAsm.h. This also fixes ARM_TRADITIONAL when forced on when thumb2 is available to the compiler. Change-Id: Iac5ad22a4a41757fa03c3cbc2e8f68e44d085bae Reviewed-by: Julien Brianceau Reviewed-by: Michael Bruning --- Source/JavaScriptCore/llint/LowLevelInterpreter.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'Source/JavaScriptCore') diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp index a616ce9f0..c8f7254a4 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp @@ -530,19 +530,11 @@ JSValue CLoop::execute(CallFrame* callFrame, OpcodeID bootstrapOpcodeId, #define OFFLINE_ASM_OPCODE_LABEL(__opcode) OFFLINE_ASM_GLOBAL_LABEL(llint_##__opcode) #define OFFLINE_ASM_GLUE_LABEL(__opcode) OFFLINE_ASM_GLOBAL_LABEL(__opcode) -#if CPU(ARM_THUMB2) -#define OFFLINE_ASM_GLOBAL_LABEL(label) \ - ".globl " SYMBOL_STRING(label) "\n" \ - HIDE_SYMBOL(label) "\n" \ - ".thumb\n" \ - ".thumb_func " THUMB_FUNC_PARAM(label) "\n" \ - SYMBOL_STRING(label) ":\n" -#else #define OFFLINE_ASM_GLOBAL_LABEL(label) \ ".globl " SYMBOL_STRING(label) "\n" \ HIDE_SYMBOL(label) "\n" \ + INLINE_ARM_FUNCTION(label) \ SYMBOL_STRING(label) ":\n" -#endif #define OFFLINE_ASM_LOCAL_LABEL(label) LOCAL_LABEL_STRING(label) ":\n" -- cgit v1.2.1