|
|
|
di
|
割り込み制御
|
void __DI(void);
|
ei
|
void __EI(void);
|
-
|
割り込みレベルの制御
|
long NUM;
void* ADDR注1;
void __set_il_rh(NUM, ADDR);
movhi highw1(ADDR), r0, rX
ld.b loww(ADDR)[rX], rY
andi 0x00F0, rY, rY
ori (優先順位 - 1), rY, rY
st.b loww(ADDR)[rX]
movhi highw1(ADDR), r0, rX
clr1 7, loww(ADDR)[rX]
movhi highw1(ADDR), r0, rX
set1 7, loww(ADDR)[rX]
movhi highw1(ADDR), r0, rX
clr1 6, loww(ADDR)[rX]
movhi highw1(ADDR), r0, rX
set1 6, loww(ADDR)[rX]
範囲外エラー
|
nop
|
ノー・オペレーション
|
void __nop(void);
|
halt
|
プロセッサの停止
|
void __halt(void);
|
satadd
|
飽和加算
|
long a, b;
long __satadd(a, b);
|
satsub
|
飽和減算
|
long a, b;
long __satsub(a, b);
|
bsh
|
ハーフワード・データのバイト・スワップ
|
long a;
long __bsh(a);
|
bsw
|
ワード・データのバイト・スワップ
|
long a;
long __bsw(a);
|
hsw
|
ワード・データのハーフワード・スワップ
|
long a;
long __hsw(a);
|
mul
|
符号つき乗算結果の上位32ビットを変数に代入する命令
|
long a, b;
long __mul32(a, b);
|
mulu
|
符号なし乗算結果の上位32ビットを変数に代入する命令
|
unsigned long a, b;
unsigned long __mul32u(a, b);
|
sch0l
|
MSB側からのビット(0)検索
|
long a;
long __sch0l(a);
|
sch0r
|
LSB側からのビット(0)検索
|
long a;
long __sch0r(a);
|
sch1l
|
MSB側からのビット(1)検索
|
long a;
long __sch1l(a);
|
sch1r
|
LSB側からのビット(1)検索
|
long a;
long __sch1r(a);
|
ldsr
|
システム・レジスタへのロード
|
long regID;
unsigned long a;
void __ldsr(regID注2, a);
|
ldsr
|
システム・レジスタへのロード
|
long regID;
long selID;
unsigned long a;
void __ldsr_rh(regID注2, selID注2, a);
|
stsr
|
システム・レジスタの内容のストア
|
long regID;
unsigned long __stsr(regID注2);
|
stsr
|
システム・レジスタの内容のストア
|
long regID;
long selID;
unsigned long __stsr_rh(regID注2, selID注2);
|
caxi
|
比較と交換
|
long *a;
long b, c;
long __caxi(a, b, c);
|
clr1
|
ビット・クリア
|
unsigned char *a;
long bit;
void __clr1(a, bit);
|
set1
|
ビット・セット
|
unsigned char *a;
long bit;
void __set1(a, bit);
|
not1
|
ビット・ノット
|
unsigned char *a;
long bit;
void __not1(a, bit);
|
ldl.w注3
|
アトミック・ロード
|
long *a;
long __ldlw(a);
|
stc.w注3
|
ストア
|
long *a;
long b;
void __stcw(a, b);
|
synce
|
例外同期化
|
void __synce(void);
|
synci
|
命令パイプライン同期化
|
void __synci(void);
|
syncm
|
メモリ同期化
|
void __syncm(void);
|
syncp
|
パイプライン同期化
|
void __syncp(void);
|