⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regwin_slow.s

📁 最新版的BCC, bcc-src-1.0.29c.rar,基于sparc平台处理器leon2,leon3,v7,v8等系列的linux环境下交叉编译工具
💻 S
字号:
/*    LEON2/3 LIBIO low-level routines     Written by Jiri Gaisler.    Copyright (C) 2004  Gaisler Research AB    This program 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.    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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//* * regwin.s for LEON */#include <asm-leon/leon.h>#include <asm-leon/leonstack.h>#include <asm-leon/asmmacro.h>          .seg    "text"	/* Number of register windows */	.global _nwindows_min1, _nwindows	        ! Window overflow trap handler on save.        ! Touches %g1	/* ------- */	.weak	_window_overflow	.set	_window_overflow,__window_overflow	.weak	_window_overflow_svt	.set	_window_overflow_svt,__window_overflow_svt	/* ------- */  	!.global _window_overflow,_window_overflow_svt__window_overflow_svt:		__window_overflow:#ifndef _FLAT  	mov  %wim, %l3       		! Calculate next WIM  	mov  %g1, %l7             	srl  %l3, 1, %g1        		sethi %hi(_nwindows_min1), %l4	! NWINDOWS-1	ld [%l4+%lo(_nwindows_min1)], %l4		sll  %l3, %l4 , %l4  	or   %l4, %g1, %g1  	save                              ! Get into window to be saved.  	mov  %g1, %wim  	nop; nop; nop        std   %l0, [%sp + 0];        std   %l2, [%sp + 8];        std   %l4, [%sp + 16];         std   %l6, [%sp + 24];         std   %i0, [%sp + 32];         std   %i2, [%sp + 40];         std   %i4, [%sp + 48];         std   %i6, [%sp + 56];   	restore				! Go back to trap window.  	mov  %l7, %g1  	jmp  %l1			! Re-execute save.  	rett %l2#else		ta	0			! halt #endif	  /* Window underflow trap handler on restore.  */        ! Touches %g1	/* ------- */  	.weak	_window_underflow	.set	_window_underflow,__window_underflow	.weak	_window_underflow_svt	.set	_window_underflow_svt,__window_underflow_svt	/* ------- */  	!.global  _window_underflow,_window_underflow_svt__window_underflow_svt:__window_underflow:#ifndef _FLAT	mov  %wim, %l3			! Calculate next WIM	sll  %l3, 1, %l4	sethi %hi(_nwindows_min1), %l5	! NWINDOWS-1	ld [%l5+%lo(_nwindows_min1)], %l5		srl  %l3, %l5, %l5  	or   %l5, %l4, %l5  	mov  %l5, %wim  	nop; nop; nop  	restore				! Two restores to get into the  	restore				! window to restore        ldd   [%sp + 0], %l0; 		! Restore window from the stack        ldd   [%sp + 8], %l2;         ldd   [%sp + 16], %l4;         ldd   [%sp + 24], %l6;         ldd   [%sp + 32], %i0;         ldd   [%sp + 40], %i2;         ldd   [%sp + 48], %i4;         ldd   [%sp + 56], %i6;   	save				! Get back to the trap window.  	save  	jmp  %l1			! Re-execute restore.  	rett  %l2#else		ta	0			! halt #endif	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -