diff packages/hal/sh/arch/current/include/arch.inc @ 76:435cced73e2f ecos-v1_3_1-release

eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
author jlarmour
date Tue, 28 Mar 2000 14:10:45 +0000
parents
children 289bf90c6a9b
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/arch/current/include/arch.inc
@@ -0,0 +1,101 @@
+##=============================================================================
+##
+##	arch.inc
+##
+##	SH architecture assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	jskov
+## Contributors:jskov
+## Date:	2000-02-28
+## Purpose:	SH definitions.
+## Description:	This file contains various definitions and macros that are
+##              useful for writing assembly code for the SH
+##              It also includes the variant/platform assembly header file.
+## Usage:
+##		#include <cyg/hal/arch.inc>
+##		...
+##		
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <cyg/hal/platform.inc>
+#include <cyg/hal/sh_regs.h>
+        
+##-----------------------------------------------------------------------------
+## SH FPU state handling
+## Empty for now.
+
+        .macro	hal_fpu_save regs
+        .endm
+
+        .macro	hal_fpu_load regs
+        .endm
+
+##-----------------------------------------------------------------------------
+## CPU specific macros. These provide a common assembler interface to
+## operations that may have CPU specific implementations on different
+## variants of the architecture.		
+
+	# Enable interrupts
+	.macro hal_cpu_int_enable t1,t2
+        stc     sr,\t1
+        mov     #CYGARC_REG_SR_IMASK>>1,\t2
+        shll    \t2
+        not     \t2,\t2
+        and     \t2,\t1
+        ldc     \t1,sr
+	.endm		
+
+	# Disable interrupts
+	.macro hal_cpu_int_disable t1,t2
+        stc     sr,\t1
+        mov     #CYGARC_REG_SR_IMASK>>1,\t2
+        shll    \t2
+        or      \t2,\t1
+        ldc     \t1,sr
+	.endm		
+
+	# Merge the interrupt enable state of the status register in
+	# \sr with the current sr.
+	.macro	hal_cpu_int_merge sr,t1,t2
+        stc     sr,\t1
+        mov     #CYGARC_REG_SR_IMASK>>1,\t2
+        shll    \t2
+        and     \t2,\sr
+        not     \t2,\t2
+        and     \t2,\t1
+        or      \sr,\t1
+        ldc     \t1,sr
+	.endm
+
+#------------------------------------------------------------------------------
+# end of arch.inc