_longjmp.S 604 B

12345678910111213141516171819202122232425
  1. ! Copyright (C) 2013 Imagination Technologies Ltd.
  2. ! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  3. .text
  4. .global ___longjmp
  5. .type ___longjmp,function
  6. ___longjmp:
  7. !! If val is 0, set it to 1
  8. CMP D0Ar2,#0
  9. ADDZ D0Ar2,D0Ar2,#1
  10. !! Restore A0/A1 regs
  11. MGETL A0.0,A0.1,[D1Ar1++]
  12. !! Restore D0/D1 regs
  13. MOV A0.3,D1Ar1
  14. MGETL D0FrT,D0.5,D0.6,D0.7,[A0.3++]
  15. !! Move 2nd argument to return value
  16. MOV D0Re0,D0Ar2
  17. MOV PC,D1RtP
  18. .size ___longjmp,.-___longjmp
  19. libc_hidden_def(__longjmp)