The code its breaking at is attempting to build x86 assembly for an arm chip. This, unsurprisingly, won' work on the device. It works on the simulator because the simulator runs on an x86 chip. The a constraint is an x86 constraint indicating the return of a 64 bit value in eax:edx (IIRC).
You will need to compile it with the appropriate flags to put it through the arm code path.
Have you read this?