RTEMS CPU Kit with SuperCore
Macros
sh/rtems/asm.h File Reference

Address the Problems Caused by Incompatible Flavor of Assemblers and Toolsets. More...

#include <rtems/score/cpuopts.h>
#include <rtems/score/sh.h>
#include <rtems/concat.h>
Include dependency graph for sh/rtems/asm.h:

Go to the source code of this file.

Macros

#define ASM
 
#define __USER_LABEL_PREFIX__   _
 
#define __REGISTER_PREFIX__
 
#define SYM(x)   CONCAT1 (__USER_LABEL_PREFIX__, x)
 
#define REG(x)   CONCAT1 (__REGISTER_PREFIX__, x)
 
#define r0   REG (r0)
 
#define r1   REG (r1)
 
#define r2   REG (r2)
 
#define r3   REG (r3)
 
#define r4   REG (r4)
 
#define r5   REG (r5)
 
#define r6   REG (r6)
 
#define r7   REG (r7)
 
#define r8   REG (r8)
 
#define r9   REG (r9)
 
#define r10   REG (r10)
 
#define r11   REG (r11)
 
#define r12   REG (r12)
 
#define r13   REG (r13)
 
#define r14   REG (r14)
 
#define r15   REG (r15)
 
#define vbr   REG (vbr)
 
#define gbr   REG (gbr)
 
#define pr   REG (pr)
 
#define mach   REG (mach)
 
#define macl   REG (macl)
 
#define sr   REG (sr)
 
#define pc   REG (pc)
 
#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
 
#define PUBLIC(sym)   .global SYM (sym)
 
#define EXTERN(sym)   .global SYM (sym)
 

Detailed Description

Address the Problems Caused by Incompatible Flavor of Assemblers and Toolsets.

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.