diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-10 15:41:37 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-09-10 15:41:37 +0000 |
commit | 7a28ac8880b580689a225ed3776b70a15f96bcec (patch) | |
tree | 3697b9062e3c68ab9261f1629c614b6bfb73e483 /cpukit/score/cpu/c4x/rtems/asm.h | |
parent | 2008-09-10 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-7a28ac8880b580689a225ed3776b70a15f96bcec.tar.bz2 |
2008-09-10 Joel Sherrill <joel.sherrill@OARcorp.com>
* configure.ac, aclocal/canonical-target-name.m4: Readd NIOS2 and TI
C4x. Accidentally not done on 4.9 branch. :(
* score/cpu/c4x/.cvsignore, score/cpu/c4x/ChangeLog,
score/cpu/c4x/Makefile.am, score/cpu/c4x/cpu.c,
score/cpu/c4x/cpu_asm.S, score/cpu/c4x/irq.c,
score/cpu/c4x/preinstall.am, score/cpu/c4x/rtems/asm.h,
score/cpu/c4x/rtems/score/c4x.h, score/cpu/c4x/rtems/score/cpu.h,
score/cpu/c4x/rtems/score/cpu_asm.h,
score/cpu/c4x/rtems/score/types.h, score/cpu/c4x/rtems/tic4x/c4xio.h,
score/cpu/nios2/.cvsignore, score/cpu/nios2/ChangeLog,
score/cpu/nios2/Makefile.am, score/cpu/nios2/cpu.c,
score/cpu/nios2/cpu_asm.S, score/cpu/nios2/irq.c,
score/cpu/nios2/preinstall.am, score/cpu/nios2/rtems/asm.h,
score/cpu/nios2/rtems/score/cpu.h,
score/cpu/nios2/rtems/score/cpu_asm.h,
score/cpu/nios2/rtems/score/nios2.h,
score/cpu/nios2/rtems/score/types.h: New files.
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/cpu/c4x/rtems/asm.h | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/cpukit/score/cpu/c4x/rtems/asm.h b/cpukit/score/cpu/c4x/rtems/asm.h new file mode 100644 index 0000000000..d99484e96c --- /dev/null +++ b/cpukit/score/cpu/c4x/rtems/asm.h @@ -0,0 +1,97 @@ +/** + * @file rtems/asm.h + * + * This include file attempts to address the problems + * caused by incompatible flavors of assemblers and + * toolsets. It primarily addresses variations in the + * use of leading underscores on symbols and the requirement + * that register names be preceded by a %. + */ + +/* + * NOTE: The spacing in the use of these macros + * is critical to them working as advertised. + * + * COPYRIGHT: + * + * This file is based on similar code found in newlib available + * from ftp.cygnus.com. The file which was used had no copyright + * notice. This file is freely distributable as long as the source + * of the file is noted. This file is: + * + * COPYRIGHT (c) 1994-1997. + * On-Line Applications Research Corporation (OAR). + * + * $Id$ + */ + +#ifndef _RTEMS_ASM_H +#define _RTEMS_ASM_H + +/* + * Indicate we are in an assembly file and get the basic CPU definitions. + */ + +#ifndef ASM +#define ASM +#endif +#include <rtems/score/cpuopts.h> +#include <rtems/score/c4x.h> + +/* + * Recent versions of GNU cpp define variables which indicate the + * need for underscores and percents. If not using GNU cpp or + * the version does not support this, then you will obviously + * have to define these as appropriate. + */ + +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +#ifndef __REGISTER_PREFIX__ +#define __REGISTER_PREFIX__ +#endif + +#include <rtems/concat.h> + +/* Use the right prefix for global labels. */ + +#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) + +/* Use the right prefix for registers. */ + +#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) + +/* + * define macros for all of the registers on this CPU + * + * EXAMPLE: #define d0 REG (d0) + */ + +/* + * Define macros to handle section beginning and ends. + */ + + +#define BEGIN_CODE_DCL .text +#define END_CODE_DCL +#define BEGIN_DATA_DCL .data +#define END_DATA_DCL +#define BEGIN_CODE .text +#define END_CODE +#define BEGIN_DATA +#define END_DATA +#define BEGIN_BSS +#define END_BSS +#define END + +/* + * Following must be tailor for a particular flavor of the C compiler. + * They may need to put underscores in front of the symbols. + */ + +#define PUBLIC(sym) .globl SYM (sym) +#define EXTERN(sym) .globl SYM (sym) + +#endif |