base/asm-common.h, */*.S: New macros for making stack-unwinding tables.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 29 Dec 2016 15:21:08 +0000 (15:21 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 3 Apr 2017 09:10:09 +0000 (10:10 +0100)
commit0923a413958b0e778a3f059c76355ab58e5be414
treea90a2ce536c833fcbbca39c54346f0f8a72fedb1
parent1a517bb3785891ff6940c73af7c5a136d0250ebf
base/asm-common.h, */*.S: New macros for making stack-unwinding tables.

Previously, I only supported Microsoft SEH tables, because they're
basically essential to having a working 64-bit binary (because Microsoft
are crazy and throw asynchronous exceptions).  But there are three
variants of stack-unwinding tables which are useful to make:

  * Microsoft's SEH tables for AMD64, constructed using `.seh_...'
    directives;

  * ARM's `.ARM.exidx' and `.ARM.extab' tables; and

  * Dwarf `.eh_frame' and `.debug_frame' tables.

These are all quite similar in flavour, but different in detail.  Rather
than write lots of hairy conditional stuff around subroutine prologues
and epilogues, wrap the whole lot up in some target-specific macros.
base/asm-common.h
math/mpx-mul4-x86-sse2.S
symm/chacha-x86ish-sse2.S
symm/rijndael-arm-crypto.S
symm/rijndael-x86ish-aesni.S
symm/salsa20-x86ish-sse2.S