Ummm, I tried to fix the bitstuff for HALT flag, but I must've been sleeping when I looked at it.
It should probably look something like this:
;@ clear IFF2 & halt, copy IFF1 to IFF2
bic r0,r0,#Z80_IF2|Z80_HALT
mov r0,r0,lsl#1
strb r0,[cpucontext,#z80if]