X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Favr%2Fhw%2Fswitch_avr.S;h=50280292ad7a2e90f73aabc4b8f557a380071bc2;hb=61d659bbbdd1026c4b66a353989de19c2f6922ea;hp=93892919ff483d5bdae0a915042c2fd799c00605;hpb=0cbd71f97f523e15afe03bd400f44d1572e6bbf4;p=bertos.git diff --git a/bertos/cpu/avr/hw/switch_avr.S b/bertos/cpu/avr/hw/switch_avr.S index 93892919..50280292 100644 --- a/bertos/cpu/avr/hw/switch_avr.S +++ b/bertos/cpu/avr/hw/switch_avr.S @@ -1,28 +1,46 @@ /*! * \file * + * This file is part of BeRTOS. * - * \brief AVR context switch + * Bertos is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * - * \version $Id$ + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * As a special exception, you may use this file as part of a free software + * library without restriction. Specifically, if other files instantiate + * templates or use macros or inline functions from this file, or you compile + * this file and link it with other files to produce an executable, this + * file does not by itself cause the resulting executable to be covered by + * the GNU General Public License. This exception does not however + * invalidate any other reasons why the executable file might be covered by + * the GNU General Public License. * - * \author Bernardo Innocenti + * Copyright 2004, 2008 Develer S.r.l. (http://www.develer.com/) + * Copyright 1999, 2000, 2001 Bernie Innocenti + * --> + * + * \version $Id$ + * \author Bernie Innocenti * \author Stefano Fedrigo + * + * \brief AVR context switch + * */ #include -/* - * NOTE: At each change of this function affecting proc.c - * (i.e. arguments, data stored in the stack) bump up version - * number in asm_switch_version(). - */ - -/* void asm_switch_context(void **new_sp, void **save_sp) */ +/* void asm_switch_context(void **new_sp [r24:r25], void **save_sp [r22:r23]) */ .globl asm_switch_context asm_switch_context: @@ -66,8 +84,6 @@ asm_switch_context: ; push r30 ;caller-save ; push r31 ;caller-save -; First parameter (new_sp) is in r24:r25, second (save_sp) in r22:r23 - in r18,SPL-__SFR_OFFSET ; r18:r19 = SP in r19,SPH-__SFR_OFFSET movw r26,r22 ; X = save_sp @@ -124,12 +140,3 @@ asm_switch_context: out SREG-__SFR_OFFSET,r0 ret - - -/* int asm_switch_version(void) */ -.globl asm_switch_version -asm_switch_version: - ldi r24,lo8(1) - ldi r25,hi8(1) - ret -