1 diff -Naurp include/setjmp.h include/setjmp.h
2 --- include/setjmp.h 2011-12-29 14:21:50.000000000 +0530
3 +++ include/setjmp.h 2012-06-15 11:53:57.000000000 +0530
4 @@ -40,17 +40,20 @@ extern "C" {
7 offset size description
8 - 0 16 call-saved registers (r2-r17)
9 - 16 2 frame pointer (r29:r28)
10 - 18 2 stack pointer (SPH:SPL)
11 - 20 1 status register (SREG)
12 - 21 2/3 return address (PC) (2 bytes used for <=128Kw flash)
14 + 0 16/4 call-saved registers (r2-r17)
15 + (AVR tiny10 family has only 4 call saved registers (r18-r21))
16 + 16/4 2 frame pointer (r29:r28)
17 + 18/6 2 stack pointer (SPH:SPL)
18 + 20/8 1 status register (SREG)
19 + 21/9 2/3 return address (PC) (2 bytes used for <=128Kw flash)
20 + 23/24/11 = total size (AVR Tiny10 family always has 2 bytes PC)
23 #if !defined(__DOXYGEN__)
25 -#if defined(__AVR_3_BYTE_PC__) && __AVR_3_BYTE_PC__
26 +#if defined(__AVR_TINY__)
28 +#elif defined(__AVR_3_BYTE_PC__) && __AVR_3_BYTE_PC__
32 diff -Naurp libc/stdlib/setjmp.S libc/stdlib/setjmp.S
33 --- libc/stdlib/setjmp.S 2011-12-29 14:21:54.000000000 +0530
34 +++ libc/stdlib/setjmp.S 2012-06-15 11:51:32.000000000 +0530
36 /* $Id: setjmp.S 2191 2010-11-05 13:45:57Z arcanum $ */
39 -#if !defined(__AVR_TINY__)
47 offset size description
48 - 0 16 call-saved registers (r2-r17)
49 - 16 2 frame pointer (r29:r28)
50 - 18 2 stack pointer (SPH:SPL)
51 - 20 1 status register (SREG)
52 - 21 2/3 return address (PC) (2 bytes used for <=128Kw flash)
54 + 0 16/4 call-saved registers (r2-r17)
55 + (AVR tiny10 family has only 4 call saved registers (r18-r21))
56 + 16/4 2 frame pointer (r29:r28)
57 + 18/6 2 stack pointer (SPH:SPL)
58 + 20/8 1 status register (SREG)
59 + 21/9 2/3 return address (PC) (2 bytes used for <=128Kw flash)
60 + 23/24/11 = total size (AVR tiny10 family always has 2 bytes PC)
61 All multibytes are stored as little-endian.
63 int setjmp(jmp_buf __jmpb);
67 ; save call-saved registers and frame pointer
68 +#if !defined(__AVR_TINY__)
69 .irp .L_regno, 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,28,29
71 + .irp .L_regno, 18,19,20,21,28,29
76 @@ -129,7 +132,11 @@ _U(longjmp):
77 cpc ret_hi, __zero_reg__
78 adc ret_lo, __zero_reg__
79 ; restore call-saved registers and frame pointer
80 +#if !defined(__AVR_TINY__)
81 .irp .L_regno, 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,28,29
83 + .irp .L_regno, 18,19,20,21,28,29
87 ; restore stack pointer (SP value before the setjmp() call) and SREG
88 @@ -169,5 +176,3 @@ _U(longjmp):
89 .size _U(longjmp), . - _U(longjmp)
91 #endif /* !__DOXYGEN__ */
93 -#endif /* !defined(__AVR_TINY__) */