arm.s 513 B

1234567891011121314151617181920212223242526272829303132333435
  1. .text
  2. .align 2
  3. .global qt_abort
  4. .global qt_block
  5. .global qt_blocki
  6. # r0: helper
  7. # r1: arg1
  8. # r2: arg2
  9. # r3: new_sp
  10. qt_abort:
  11. qt_block:
  12. qt_blocki:
  13. stmfd sp!, {r4-r11,lr}
  14. mov ip, r0
  15. mov r0, sp
  16. mov sp, r3
  17. mov lr, pc
  18. mov pc, ip
  19. ldmfd sp!, {r4-r11,pc}
  20. .global qt_start
  21. .global qt_error
  22. .type qt_start,function
  23. qt_start:
  24. ldr r0, [sp]
  25. ldr r1, [sp, #4]
  26. ldr r2, [sp, #8]
  27. ldr lr, qt_error_loc
  28. ldr pc, [sp, #12]
  29. qt_error_loc:
  30. .word qt_error