negate.s 260 B

1234567891011121314151617181920212223
  1. .text
  2. .align 4
  3. .code 32
  4. .global negate
  5. .type negate, %function
  6. negate:
  7. MVN r0,r0
  8. ADD r0,#1
  9. CMP r0,#0x8000
  10. SUBEQ r0,#1
  11. BX lr
  12. # MVN r0,r0
  13. # ADD r0,#1
  14. # CMP r0,#(1 << 16)
  15. # ASREQ r0,r0,#1
  16. # SXTAH r0,r1,r0
  17. # QADD r0,r0,r1
  18. # SSAT r0,#16,r0
  19. # BX lr