Add ARM optimized versions of safe_address()

The function safe_address() uses inline assembler to detect
overflow in size/offset calculations, as detecting this in
plain C is a lot more work.