1 /* stack_measuring.S */
3 This file is part of the AVR-Crypto-Lib.
4 Copyright (C) 2010 Daniel Otte (daniel.otte@rub.de)
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 .global stack_measure_init
29 in r0, _SFR_IO_ADDR(SREG)
31 in r26, _SFR_IO_ADDR(SPL)
32 out _SFR_IO_ADDR(SREG), r0
33 in r27, _SFR_IO_ADDR(SPH)
37 ldi r20, lo8(__bss_end)
38 ldi r21, hi8(__bss_end)
60 .global stack_measure_final
71 ldi r20, lo8(__bss_end)
72 ldi r21, hi8(__bss_end)
96 .global stack_measure_usestack
97 stack_measure_usestack:
102 in r0, _SFR_IO_ADDR(SREG)
104 in r26, _SFR_IO_ADDR(SPL)
105 out _SFR_IO_ADDR(SREG), r0
106 in r27, _SFR_IO_ADDR(SPH)