Hey, I don't know what method you used for shad and shld, but I came up with a nice method to emulate these in ARM once upon a time.
For example, in the case of SHAD Rm,Rn:
ANDS temp, Rm, #0x8000001F
RSBMI temp, temp, #0x80000020
MOVPL Rn, Rn, LSL temp
MOVMI Rn, Rn, ASR temp
For SHLD, of...