[Lldb-commits] [PATCH] D19604: Allow ObjectFilePECOFF to initialize with ARM binaries.

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Tue May 3 20:01:45 PDT 2016

jasonmolenda added a subscriber: jasonmolenda.
jasonmolenda added a comment.

fwiw, there are ARM cores that only support thumb - the Cortex M series.  I doubt a windows phone is running one of those low-power chips though.  The importance of the triple used will come in to play when you try to evaluate an expression on the device -- lldb will call into llvm to parse/jit the expression into machine code for the device.  For instance, if "arm-windows" translates to a minimum arm target, llvm may not think it has any fp/NEON instructions.  As for lldb disassembling as arm/thumb (or instruction emulation for unwinding), today it doesn't use the CPSR/XPSR T bit to tell if the current instruction is thumb or not, it depends on annotations in the symbol file to do this correctly.  I don't think it uses the 0th bit of saved pc values up the stack to tell this either -- it is a pretty fixed model of depending on the symbols to indicate whether they're arm or thumb.

If you look in the disassembler, lldb creates both an armv7 MCDisassembler and a thumbv7 MCDisassembler and picks one or the other depending on the symbol's "alternate ISA" flag or something along those lines.


More information about the lldb-commits mailing list