46 lines
1.1 KiB
Markdown
46 lines
1.1 KiB
Markdown
# Nyash MIR Instruction Set (Canonical 26)
|
||
|
||
Status: Canonical (Source of Truth)
|
||
Last Updated: 2025-08-25
|
||
|
||
この文書はNyashのMIR命令セットの唯一の参照(26命令)だよ。実装は常にこの一覧に一致し、総数はテストで26に固定する。
|
||
|
||
注意: Debug/Nop/Safepointはビルドモードでの降格用メタ命令であり、コア26命令には数えない。
|
||
|
||
## Core Instructions(26)
|
||
- Const
|
||
- Copy
|
||
- Load
|
||
- Store
|
||
- UnaryOp
|
||
- BinOp
|
||
- Compare
|
||
- Jump
|
||
- Branch
|
||
- Phi
|
||
- Return
|
||
- Call
|
||
- ExternCall
|
||
- BoxCall
|
||
- NewBox
|
||
- ArrayGet
|
||
- ArraySet
|
||
- RefNew
|
||
- RefGet
|
||
- RefSet
|
||
- Await
|
||
- Print
|
||
- TypeOp(TypeCheck/Cast統合)
|
||
- WeakRef(WeakNew/WeakLoad統合)
|
||
- Barrier(Read/Write統合)
|
||
|
||
## Meta (降格対象; カウント外)
|
||
- Debug
|
||
- Nop
|
||
- Safepoint
|
||
|
||
## 同期ルール
|
||
- 命令の追加/削除/統合は、まずこの文書を更新し、次に実装(列挙/Printer/Verifier/Optimizer/VM)を同期。最後に「総数=26」テストを更新する。
|
||
- 実装が26を外れた場合はCIを赤にする(設計の合意なく増減させないため)。
|
||
|