fxdoc/asm/fx@3.10-%aca.txt

41 lines
1.4 KiB
Plaintext

Syscall %aca setjmp() from Graph 35+E II OS 3.10
An implementation of setjmp() using an 80-byte CPU context buffer. The
corresponding longjump() function is %ac9.
Shape of the CPU context structure:
(+0) r15 r14 pr r13 r12 r11 r10 r9 r8 r7 r6 r5
(+48) r4 r3 r2 r1 r0 mach macl gbr
Total size: 80 bytes
<%aca>
801e3ec8: 24f2 mov.l r15, @r4
801e3eca: 14e1 mov.l r14, @(4,r4)
801e3ecc: 0e2a sts pr, r14
801e3ece: 14e2 mov.l r14, @(8,r4)
801e3ed0: 5e41 mov.l @(4,r4), r14
801e3ed2: 14d3 mov.l r13, @(12,r4)
801e3ed4: 14c4 mov.l r12, @(16,r4)
801e3ed6: 14b5 mov.l r11, @(20,r4)
801e3ed8: 14a6 mov.l r10, @(24,r4)
801e3eda: 1497 mov.l r9, @(28,r4)
801e3edc: 1488 mov.l r8, @(32,r4)
801e3ede: 1479 mov.l r7, @(36,r4)
801e3ee0: 146a mov.l r6, @(40,r4)
801e3ee2: 145b mov.l r5, @(44,r4)
801e3ee4: 144c mov.l r4, @(48,r4)
801e3ee6: 7430 add #48, r4
801e3ee8: 1431 mov.l r3, @(4,r4)
801e3eea: 1422 mov.l r2, @(8,r4)
801e3eec: 1413 mov.l r1, @(12,r4)
801e3eee: 1404 mov.l r0, @(16,r4)
801e3ef0: 000a sts mach, r0
801e3ef2: 1405 mov.l r0, @(20,r4)
801e3ef4: 001a sts macl, r0
801e3ef6: 1406 mov.l r0, @(24,r4)
801e3ef8: 0012 stc gbr, r0
801e3efa: 1407 mov.l r0, @(28,r4)
801e3efc: 6442 mov.l @r4, r4
801e3efe: 000b rts
801e3f00: e000 mov #0, r0