http://bugs.winehq.org/show_bug.cgi?id=30134
--- Comment #8 from André H. nerv@dawncrow.de 2012-03-29 15:00:01 CDT --- the point is: as long as we don't know how much native applications WOA(Windows on ARM) will have that we could run, ARM is a good winelib target for all ARMs. And there are also >=armv5 that don't support thumb, so i don't like b.w, blx and so on.
i played a bit with: case CPU_ARM: output( "\tldr r0,[pc,#0]\n" ); output( "\tmov pc, r0\n" ); output( "\t.long 1f\n" ); and forcing "as" to -mthumb (that code can be compiled to arm and thumb) without good results... maybe you can debug that further...
further we can't just do a "#ifdef __thumb2__" in winebuild's spec32.c, because winebuild is also for crosscompiling and that would break it. And the toolchain doesn't tell by it's name that it's targets thumb(2) so we can't introduce CPU_THUMB... Sadly we can't cleanly detect what crti.o is compiled for...
the blx in libwine maybe can be activated per "#ifdef __thumb2__", but first we need to fix the winebuild problem in a clean way. I'm running out of ideas. thoughts?