RTEMS  5.0.0
Macros
asm.h File Reference

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

#include <rtems/score/cpuopts.h>
#include <rtems/score/i386.h>
#include <rtems/concat.h>

Go to the source code of this file.

Macros

#define ASM
 
#define __USER_LABEL_PREFIX__
 
#define __REGISTER_PREFIX__   %
 
#define SYM(x)   CONCAT0 (__USER_LABEL_PREFIX__, x)
 
#define REG(x)   CONCAT0 (__REGISTER_PREFIX__, x)
 
#define eax   REG (eax)
 
#define ebx   REG (ebx)
 
#define ecx   REG (ecx)
 
#define edx   REG (edx)
 
#define esi   REG (esi)
 
#define edi   REG (edi)
 
#define esp   REG (esp)
 
#define ebp   REG (ebp)
 
#define cr0   REG (cr0)
 
#define cr4   REG (cr4)
 
#define ax   REG (ax)
 
#define bx   REG (bx)
 
#define cx   REG (cx)
 
#define dx   REG (dx)
 
#define si   REG (si)
 
#define di   REG (di)
 
#define sp   REG (sp)
 
#define bp   REG (bp)
 
#define ah   REG (ah)
 
#define bh   REG (bh)
 
#define ch   REG (ch)
 
#define dh   REG (dh)
 
#define al   REG (al)
 
#define bl   REG (bl)
 
#define cl   REG (cl)
 
#define dl   REG (dl)
 
#define cs   REG (cs)
 
#define ds   REG (ds)
 
#define es   REG (es)
 
#define fs   REG (fs)
 
#define gs   REG (gs)
 
#define ss   REG (ss)
 
#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   .data
 
#define END_DATA
 
#define BEGIN_BSS   .bss
 
#define END_BSS
 
#define END
 
#define PUBLIC(sym)   .globl SYM (sym)
 
#define EXTERN(sym)   .globl 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.