75 lines
553 B
C++
75 lines
553 B
C++
/*
|
|
* E_Special.h
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
|
|
namespace ARM
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
EAPI ARMERROR()
|
|
{
|
|
DECL_Id(0xFFFFFFFF);
|
|
EMIT_I;
|
|
}
|
|
|
|
|
|
EAPI NOP()
|
|
{
|
|
DECL_Id(0xE320F000);
|
|
EMIT_I;
|
|
}
|
|
|
|
EAPI SVC(u32 code)
|
|
{
|
|
DECL_Id(0x0F000000);
|
|
I |= code&0xFFFFFF;
|
|
EMIT_I;
|
|
}
|
|
|
|
EAPI BKPT()
|
|
{
|
|
DECL_Id(0x01200070);
|
|
EMIT_I;
|
|
}
|
|
|
|
#define SWI SVC
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
* Synchronization & Barrier Instructions.
|
|
*
|
|
*/
|
|
|
|
|
|
EAPI DSB()
|
|
{
|
|
DECL_Id(0xF57FF04F);
|
|
EMIT_I;
|
|
}
|
|
|
|
EAPI DMB()
|
|
{
|
|
DECL_Id(0xF57FF05F);
|
|
EMIT_I;
|
|
}
|
|
|
|
EAPI ISB()
|
|
{
|
|
DECL_Id(0xF57FF06F);
|
|
EMIT_I;
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|