RTEMS 6.1-rc5
Loading...
Searching...
No Matches
Macros | Variables
x86-64 Assembler Support

x86-64 Assembler Support More...

Macros

#define __USER_LABEL_PREFIX__   _
 
#define __REGISTER_PREFIX__   %
 
#define SYM(x)   CONCAT1 (__USER_LABEL_PREFIX__, x)
 
#define REG(x)   CONCAT1 (__REGISTER_PREFIX__, x)
 
#define rax   REG (rax)
 
#define rbx   REG (rbx)
 
#define rcx   REG (rcx)
 
#define rdx   REG (rdx)
 
#define rdi   REG (rdi)
 
#define rsi   REG (rsi)
 
#define rbp   REG (rbp)
 
#define rsp   REG (rsp)
 
#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 REG_ARG0   rdi
 
#define REG_ARG1   rsi
 
#define REG_ARG2   rdx
 
#define REG_ARG3   rcx
 
#define REG_ARG4   r8
 
#define REG_ARG5   r9
 
#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)   .globl SYM (sym)
 
#define EXTERN(sym)   .globl SYM (sym)
 

Variables

macro GET_CPU_INDEX REG REG32 movq $0
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq _Per_CPU_Information
 Set of Per CPU Core Information.
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL rax
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL rbx
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL rcx
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL rdx
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL rdi
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL rsi
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8d endm macro GET_SELF_CPU_CONTROL_R9 GET_SELF_CPU_CONTROL r9
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8d endm macro GET_SELF_CPU_CONTROL_R9 GET_SELF_CPU_CONTROL r9d endm macro GET_SELF_CPU_CONTROL_R10 GET_SELF_CPU_CONTROL r10
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8d endm macro GET_SELF_CPU_CONTROL_R9 GET_SELF_CPU_CONTROL r9d endm macro GET_SELF_CPU_CONTROL_R10 GET_SELF_CPU_CONTROL r10d endm macro GET_SELF_CPU_CONTROL_R11 GET_SELF_CPU_CONTROL r11
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8d endm macro GET_SELF_CPU_CONTROL_R9 GET_SELF_CPU_CONTROL r9d endm macro GET_SELF_CPU_CONTROL_R10 GET_SELF_CPU_CONTROL r10d endm macro GET_SELF_CPU_CONTROL_R11 GET_SELF_CPU_CONTROL r11d endm macro GET_SELF_CPU_CONTROL_R12 GET_SELF_CPU_CONTROL r12
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8d endm macro GET_SELF_CPU_CONTROL_R9 GET_SELF_CPU_CONTROL r9d endm macro GET_SELF_CPU_CONTROL_R10 GET_SELF_CPU_CONTROL r10d endm macro GET_SELF_CPU_CONTROL_R11 GET_SELF_CPU_CONTROL r11d endm macro GET_SELF_CPU_CONTROL_R12 GET_SELF_CPU_CONTROL r12d endm macro GET_SELF_CPU_CONTROL_R13 GET_SELF_CPU_CONTROL r13
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8d endm macro GET_SELF_CPU_CONTROL_R9 GET_SELF_CPU_CONTROL r9d endm macro GET_SELF_CPU_CONTROL_R10 GET_SELF_CPU_CONTROL r10d endm macro GET_SELF_CPU_CONTROL_R11 GET_SELF_CPU_CONTROL r11d endm macro GET_SELF_CPU_CONTROL_R12 GET_SELF_CPU_CONTROL r12d endm macro GET_SELF_CPU_CONTROL_R13 GET_SELF_CPU_CONTROL r13d endm macro GET_SELF_CPU_CONTROL_R14 GET_SELF_CPU_CONTROL r14
 
macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq REG endm macro GET_SELF_CPU_CONTROL_RAX GET_SELF_CPU_CONTROL eax endm macro GET_SELF_CPU_CONTROL_RBX GET_SELF_CPU_CONTROL ebx endm macro GET_SELF_CPU_CONTROL_RCX GET_SELF_CPU_CONTROL ecx endm macro GET_SELF_CPU_CONTROL_RDX GET_SELF_CPU_CONTROL edx endm macro GET_SELF_CPU_CONTROL_RDI GET_SELF_CPU_CONTROL edi endm macro GET_SELF_CPU_CONTROL_RSI GET_SELF_CPU_CONTROL esi endm macro GET_SELF_CPU_CONTROL_R8 GET_SELF_CPU_CONTROL r8d endm macro GET_SELF_CPU_CONTROL_R9 GET_SELF_CPU_CONTROL r9d endm macro GET_SELF_CPU_CONTROL_R10 GET_SELF_CPU_CONTROL r10d endm macro GET_SELF_CPU_CONTROL_R11 GET_SELF_CPU_CONTROL r11d endm macro GET_SELF_CPU_CONTROL_R12 GET_SELF_CPU_CONTROL r12d endm macro GET_SELF_CPU_CONTROL_R13 GET_SELF_CPU_CONTROL r13d endm macro GET_SELF_CPU_CONTROL_R14 GET_SELF_CPU_CONTROL r14d endm macro GET_SELF_CPU_CONTROL_R15 GET_SELF_CPU_CONTROL r15
 

Detailed Description

x86-64 Assembler Support

Macro Definition Documentation

◆ __USER_LABEL_PREFIX__

#define __USER_LABEL_PREFIX__   _

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.

This symbol is prefixed to all C program symbols.

◆ BEGIN_BSS

#define BEGIN_BSS

This macro is used to denote the beginning of the unitialized data section.

◆ BEGIN_CODE

#define BEGIN_CODE   .text

This macro is used to denote the beginning of a code section.

◆ BEGIN_CODE_DCL

#define BEGIN_CODE_DCL   .text

This macro is used to denote the beginning of a code declaration.

◆ BEGIN_DATA

#define BEGIN_DATA

This macro is used to denote the beginning of a data section.

◆ BEGIN_DATA_DCL

#define BEGIN_DATA_DCL   .data

This macro is used to denote the beginning of a data declaration section.

◆ END

#define END

This macro is used to denote the end of the assembly file.

◆ END_BSS

#define END_BSS

This macro is used to denote the end of the unitialized data section.

◆ END_CODE

#define END_CODE

This macro is used to denote the end of a code section.

◆ END_CODE_DCL

#define END_CODE_DCL

This macro is used to denote the end of a code declaration.

◆ END_DATA

#define END_DATA

This macro is used to denote the end of a data section.

◆ END_DATA_DCL

#define END_DATA_DCL

This macro is used to denote the end of a data declaration section.

◆ EXTERN

#define EXTERN (   sym)    .globl SYM (sym)

This macro is used to prototype a public global symbol.

Note
This must be tailored for a particular flavor of the C compiler. They may need to put underscores in front of the symbols.

◆ PUBLIC

#define PUBLIC (   sym)    .globl SYM (sym)

This macro is used to declare a public global symbol.

Note
This must be tailored for a particular flavor of the C compiler. They may need to put underscores in front of the symbols.

◆ REG

#define REG (   x)    CONCAT1 (__REGISTER_PREFIX__, x)

Use the right prefix for registers.

◆ SYM

#define SYM (   x)    CONCAT1 (__USER_LABEL_PREFIX__, x)

Use the right prefix for global labels.

Variable Documentation

◆ _Per_CPU_Information

macro GET_CPU_INDEX REG REG32 movq REG endm macro GET_SELF_CPU_CONTROL REG REG32 leaq _Per_CPU_Information

Set of Per CPU Core Information.

This is an array of per CPU core information.