I've found another FAKE_* register which pops up in movb instructions while using -O0. I think I've fixed it, but I need more testing. I also found this problem :
Unrecognized expression: "@4(r8),$25"
/tmp/cc5D59MT.s: Assembler messages:
/tmp/cc5D59MT.s:91: Error: bad expression
/tmp/cc5D59MT.s:91: Error: missing comma seperator
movb r1, r1
ci @4(r8), >25 <-- problem line
The problem is that CI only takes a register as argument 1.
I also need to take a look at GAS, the error message is misleading