added intrinsecs.csv
This commit is contained in:
parent
76fd0943d3
commit
9c5c1df394
24
docs/runtime/virtual-machine/INTRINSICS.csv
Normal file
24
docs/runtime/virtual-machine/INTRINSICS.csv
Normal file
@ -0,0 +1,24 @@
|
||||
final_id_hex,final_id_dec,canonical_name,canonical_version,owner,name,arg_slots,ret_slots,arg_layout,ret_layout,deterministic,may_allocate
|
||||
0x1000,4096,vec2.dot,1,vec2,dot,4,1,float|float|float|float,float,true,false
|
||||
0x1001,4097,vec2.length,1,vec2,length,2,1,float|float,float,true,false
|
||||
0x2000,8192,input.pad,1,input,pad,0,1,,builtin:input.pad,true,false
|
||||
0x2001,8193,input.touch,1,input,touch,0,1,,builtin:input.touch,true,false
|
||||
0x2010,8208,input.pad.up,1,input.pad,up,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2011,8209,input.pad.down,1,input.pad,down,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2012,8210,input.pad.left,1,input.pad,left,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2013,8211,input.pad.right,1,input.pad,right,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2014,8212,input.pad.a,1,input.pad,a,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2015,8213,input.pad.b,1,input.pad,b,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2016,8214,input.pad.x,1,input.pad,x,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2017,8215,input.pad.y,1,input.pad,y,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2018,8216,input.pad.l,1,input.pad,l,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2019,8217,input.pad.r,1,input.pad,r,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x201A,8218,input.pad.start,1,input.pad,start,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x201B,8219,input.pad.select,1,input.pad,select,1,1,builtin:input.pad,builtin:input.button,true,false
|
||||
0x2020,8224,input.touch.button,1,input.touch,button,1,1,builtin:input.touch,builtin:input.button,true,false
|
||||
0x2021,8225,input.touch.x,1,input.touch,x,1,1,builtin:input.touch,int,true,false
|
||||
0x2022,8226,input.touch.y,1,input.touch,y,1,1,builtin:input.touch,int,true,false
|
||||
0x2030,8240,input.button.pressed,1,input.button,pressed,1,1,builtin:input.button,bool,true,false
|
||||
0x2031,8241,input.button.released,1,input.button,released,1,1,builtin:input.button,bool,true,false
|
||||
0x2032,8242,input.button.down,1,input.button,down,1,1,builtin:input.button,bool,true,false
|
||||
0x2033,8243,input.button.hold,1,input.button,hold,1,1,builtin:input.button,int,true,false
|
||||
|
@ -78,6 +78,21 @@ Authority rule:
|
||||
- `INTRINSIC u32` — final numeric VM-owned intrinsic call.
|
||||
- `FRAME_SYNC` — yield until the next frame boundary (e.g., vblank); explicit safepoint.
|
||||
|
||||
#### Canonical Intrinsic Registry Artifact
|
||||
|
||||
- Final intrinsic IDs and intrinsic stack metadata are published in [`INTRINSICS.csv`](INTRINSICS.csv).
|
||||
- This CSV is the ISA-scoped artifact intended to be consumed by compiler/tooling consumers such as `../studio`.
|
||||
- Each row defines one canonical intrinsic identity and its final numeric ID.
|
||||
- `canonical_name` is the fully qualified intrinsic identity seen by compiler-side intrinsic pools.
|
||||
- `arg_slots` and `ret_slots` are the real stack effect contract for verifier/lowering consumers.
|
||||
- `arg_layout` and `ret_layout` use `|`-separated ABI atoms:
|
||||
- `int`
|
||||
- `float`
|
||||
- `bool`
|
||||
- `builtin:<builtin_name>`
|
||||
- Rows must remain unique by both `(canonical_name, canonical_version)` and `final_id_hex` / `final_id_dec`.
|
||||
- Rows must remain deterministically ordered by final ID.
|
||||
|
||||
For exact immediates and stack effects, see `CoreOpCode::spec()` which is the single source of truth used by the decoder, disassembler, and verifier.
|
||||
|
||||
#### Canonical Decoder Contract
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user