added intrinsecs.csv

This commit is contained in:
bQUARKz 2026-03-11 05:03:01 +00:00
parent 76fd0943d3
commit 9c5c1df394
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
2 changed files with 39 additions and 0 deletions

View 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
1 final_id_hex final_id_dec canonical_name canonical_version owner name arg_slots ret_slots arg_layout ret_layout deterministic may_allocate
2 0x1000 4096 vec2.dot 1 vec2 dot 4 1 float|float|float|float float true false
3 0x1001 4097 vec2.length 1 vec2 length 2 1 float|float float true false
4 0x2000 8192 input.pad 1 input pad 0 1 builtin:input.pad true false
5 0x2001 8193 input.touch 1 input touch 0 1 builtin:input.touch true false
6 0x2010 8208 input.pad.up 1 input.pad up 1 1 builtin:input.pad builtin:input.button true false
7 0x2011 8209 input.pad.down 1 input.pad down 1 1 builtin:input.pad builtin:input.button true false
8 0x2012 8210 input.pad.left 1 input.pad left 1 1 builtin:input.pad builtin:input.button true false
9 0x2013 8211 input.pad.right 1 input.pad right 1 1 builtin:input.pad builtin:input.button true false
10 0x2014 8212 input.pad.a 1 input.pad a 1 1 builtin:input.pad builtin:input.button true false
11 0x2015 8213 input.pad.b 1 input.pad b 1 1 builtin:input.pad builtin:input.button true false
12 0x2016 8214 input.pad.x 1 input.pad x 1 1 builtin:input.pad builtin:input.button true false
13 0x2017 8215 input.pad.y 1 input.pad y 1 1 builtin:input.pad builtin:input.button true false
14 0x2018 8216 input.pad.l 1 input.pad l 1 1 builtin:input.pad builtin:input.button true false
15 0x2019 8217 input.pad.r 1 input.pad r 1 1 builtin:input.pad builtin:input.button true false
16 0x201A 8218 input.pad.start 1 input.pad start 1 1 builtin:input.pad builtin:input.button true false
17 0x201B 8219 input.pad.select 1 input.pad select 1 1 builtin:input.pad builtin:input.button true false
18 0x2020 8224 input.touch.button 1 input.touch button 1 1 builtin:input.touch builtin:input.button true false
19 0x2021 8225 input.touch.x 1 input.touch x 1 1 builtin:input.touch int true false
20 0x2022 8226 input.touch.y 1 input.touch y 1 1 builtin:input.touch int true false
21 0x2030 8240 input.button.pressed 1 input.button pressed 1 1 builtin:input.button bool true false
22 0x2031 8241 input.button.released 1 input.button released 1 1 builtin:input.button bool true false
23 0x2032 8242 input.button.down 1 input.button down 1 1 builtin:input.button bool true false
24 0x2033 8243 input.button.hold 1 input.button hold 1 1 builtin:input.button int true false

View File

@ -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