Skip to content
  • Simon Marlow's avatar
    x86-64: fix a problem exposed by negative offsets in vector tables · 1bda00ba
    Simon Marlow authored
    static relative offsets (eg .long l1-l2) are restricted to 32 bits on
    x86-64 due to lack of support in the linker.  The codegen, NCG and
    runtime work around this, using 32-bit offsets instead of 64.
    However, we were missing a workaround for vector tables, and it
    happened to work by accident because the offsets were always positive
    and resolved by the assembler.  The bug was exposed by using the NCG
    to compile the RTS, where the offsets became negative, again by
    accident.
    1bda00ba