Ignore:
Timestamp:
Nov 3, 2013, 1:52:56 PM (12 years ago)
Author:
[email protected]
Message:

Assertion failure in non-JIT'ed LLInt on ARM Thumb.
https://bugs.webkit.org/show_bug.cgi?id=97569.

Reviewed by Geoffrey Garen.

  • assembler/MacroAssemblerCodeRef.h:
  • Thumb2 alignment assertions do not apply to the C Loop LLINT because the arguments passed to those assertions are actually OpcodeIDs masquerading as addresses.
  • llint/LLIntOfflineAsmConfig.h:
  • Some of the #defines belong in the !ENABLE(LLINT_C_LOOP) section. Moving them there.
  • llint/LowLevelInterpreter.cpp:
  • Keep the compiler happy from some unreferenced C Loop labels.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp

    r157937 r158541  
    9191#define OFFLINE_ASM_END
    9292
    93 
    94 #define OFFLINE_ASM_OPCODE_LABEL(opcode) DEFINE_OPCODE(opcode)
     93// To keep compilers happy in case of unused labels, force usage of the label:
     94#define USE_LABEL(label) \
     95    do { \
     96        if (false) \
     97            goto label; \
     98    } while (false)
     99
     100#define OFFLINE_ASM_OPCODE_LABEL(opcode) DEFINE_OPCODE(opcode) USE_LABEL(opcode);
     101
    95102#if ENABLE(COMPUTED_GOTO_OPCODES)
    96     #define OFFLINE_ASM_GLUE_LABEL(label)  label:
     103#define OFFLINE_ASM_GLUE_LABEL(label)  label: USE_LABEL(label);
    97104#else
    98     #define OFFLINE_ASM_GLUE_LABEL(label)  case label: label:
    99 #endif
    100 
    101 #define OFFLINE_ASM_LOCAL_LABEL(label) \
    102     label: \
    103         if (false) \
    104             goto label;
     105#define OFFLINE_ASM_GLUE_LABEL(label)  case label: label: USE_LABEL(label);
     106#endif
     107
     108#define OFFLINE_ASM_LOCAL_LABEL(label) label: USE_LABEL(label);
    105109
    106110
Note: See TracChangeset for help on using the changeset viewer.