[PATCH] D12089: Implement __aeabi_c{d,f}{cmpeq,cmple,rcmple}.

Josh Gao via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 18 13:52:33 PDT 2015


jmgao added a comment.

In http://reviews.llvm.org/D12089#226545, @rengolin wrote:

> Also, avoid using push lr / pop pc, since this behaviour doesn't work across all ARM cores. There's a macro for returning that should be used.


Ugh, I didn't know that ARMv4's `pop {pc}` doesn't work with switching Thumb mode. Are there any other problems with that?

There are several other functions that use `push {lr}`, `pop {pc}`. What do you think about something along the lines of the following?

  #if __ARM_ARCH > 4 || !defined(__ARM_ARCH_ISA_THUMB)
  #define POP_FRAME(registers) \
      pop {registers, pc}
  #else
  #define POP_FRAME(registers) \
      pop {registers}          \
      pop {lr}                 \
      JMP(lr)
  #endif


Repository:
  rL LLVM

http://reviews.llvm.org/D12089





More information about the llvm-commits mailing list