SGDK
A free and open development kit for the Sega Mega Drive
Loading...
Searching...
No Matches
asm.h File Reference

Assembly helper. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VAR2REG_B(var, reg)
 
#define VAR2REG_W(var, reg)
 
#define VAR2REG_L(var, reg)
 
#define REG2VAR_B(reg, var)
 
#define REG2VAR_W(reg, var)
 
#define REG2VAR_L(reg, var)
 
#define ENUM_BEGIN   typedef enum {
 
#define ENUM_BEGIN_EX(tmpName)
 
#define ENUM_BEGIN_SHORT   typedef enum __attribute__ ((__packed__)) {
 
#define ENUM_BEGIN_SHORT_EX(tmpName)
 
#define ENUM_VAL(name)
 
#define ENUM_VALASSIGN(name, value)
 
#define ENUM_END(enum_name)
 

Detailed Description

Assembly helper.

Author
Stephane Dallongeville
Date
08/2011

This unit provides methods to help dealing with inline assembly or header inclusion GAS.

Macro Definition Documentation

◆ ENUM_BEGIN_EX

#define ENUM_BEGIN_EX ( tmpName)
Value:
typedef enum tmpName {

◆ ENUM_BEGIN_SHORT_EX

#define ENUM_BEGIN_SHORT_EX ( tmpName)
Value:
typedef enum __attribute__ ((__packed__)) tmpName {

◆ ENUM_END

#define ENUM_END ( enum_name)
Value:
} enum_name;

◆ ENUM_VAL

#define ENUM_VAL ( name)
Value:
name,

◆ ENUM_VALASSIGN

#define ENUM_VALASSIGN ( name,
value )
Value:
name = value,

◆ REG2VAR_B

#define REG2VAR_B ( reg,
var )
Value:
asm volatile ("move.b %/"reg", %0" : "=r" (var));

◆ REG2VAR_L

#define REG2VAR_L ( reg,
var )
Value:
asm volatile ("move.l %/"reg", %0" : "=r" (var));

◆ REG2VAR_W

#define REG2VAR_W ( reg,
var )
Value:
asm volatile ("move.w %/"reg", %0" : "=r" (var));

◆ VAR2REG_B

#define VAR2REG_B ( var,
reg )
Value:
asm volatile ("move.b %0, %/"reg"" :: "r" (var) : ""reg"");

◆ VAR2REG_L

#define VAR2REG_L ( var,
reg )
Value:
asm volatile ("move.l %0, %/"reg"" :: "r" (var) : ""reg"");

◆ VAR2REG_W

#define VAR2REG_W ( var,
reg )
Value:
asm volatile ("move.w %0, %/"reg"" :: "r" (var) : ""reg"");