Difference between revisions of "Instruction Set/innern"
(Created page with "{{DISPLAYTITLE:innern}} <div style="font-size:80%;line-height:90%;margin-bottom:2em">realizing flow stream Decode|flow blo...") | |||
(2 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
</div> | </div> | ||
− | + | Enter loop that produces multiple result values. | |
+ | |||
+ | This is a gang encoding for loop calls that have more arguments than one slot [[Instruction_Set/inner|inner]] operations can accommodate. | ||
+ | |||
+ | There are optimizations for this for ganged function calls with zero or one return value. | ||
+ | As with all ganged inner operations, the target address is always in the last gang slot. | ||
+ | |||
+ | <b>related operations:</b> [[Instruction_Set/innertrn|innertrn]], [[Instruction_Set/innerfln|innerfln]] | ||
+ | |||
---- | ---- | ||
<code style="font-size:130%"><b style="color:#050">innern</b>(<i><span style="color:#009">[[Immediates#lit|lit]]</span> <span title="morsel-sized manifest constant">n</span></i>, <span style="color:#009">[[Domains#p|p]]</span> <span title="call argument from calls window">target</span>, <span style="color:#009">[[Domains#args|args]]</span> <span title="zero or more call | <code style="font-size:130%"><b style="color:#050">innern</b>(<i><span style="color:#009">[[Immediates#lit|lit]]</span> <span title="morsel-sized manifest constant">n</span></i>, <span style="color:#009">[[Domains#p|p]]</span> <span title="call argument from calls window">target</span>, <span style="color:#009">[[Domains#args|args]]</span> <span title="zero or more call | ||
Line 21: | Line 29: | ||
! [[Cores|Core]] || [[Slot|In Slots]]|| [[Latency|Latencies]] | ! [[Cores|Core]] || [[Slot|In Slots]]|| [[Latency|Latencies]] | ||
|- | |- | ||
− | | [[Cores/Tin/Encoding# | + | | [[Cores/Tin/Encoding#innern|Tin]] || F0 || 1 |
|- | |- | ||
− | | [[Cores/Copper/Encoding# | + | | [[Cores/Copper/Encoding#innern|Copper]] || F0 F1 || 1 |
|- | |- | ||
− | | [[Cores/Silver/Encoding# | + | | [[Cores/Silver/Encoding#innern|Silver]] || F0 F1 F2 || 1 |
|- | |- | ||
− | | [[Cores/Gold/Encoding# | + | | [[Cores/Gold/Encoding#innern|Gold]] || F0 F1 F2 F3 || 1 |
|- | |- | ||
− | | [[Cores/Decimal8/Encoding# | + | | [[Cores/Decimal8/Encoding#innern|Decimal8]] || F0 F1 F2 || 1 |
|- | |- | ||
− | | [[Cores/Decimal16/Encoding# | + | | [[Cores/Decimal16/Encoding#innern|Decimal16]] || F0 F1 F2 || 1 |
|} | |} | ||
Line 55: | Line 63: | ||
! [[Cores|Core]] || [[Slot|In Slots]]|| [[Latency|Latencies]] | ! [[Cores|Core]] || [[Slot|In Slots]]|| [[Latency|Latencies]] | ||
|- | |- | ||
− | | [[Cores/Tin/Encoding# | + | | [[Cores/Tin/Encoding#innern|Tin]] || F0 || 1 |
|- | |- | ||
− | | [[Cores/Copper/Encoding# | + | | [[Cores/Copper/Encoding#innern|Copper]] || F0 F1 || 1 |
|- | |- | ||
− | | [[Cores/Silver/Encoding# | + | | [[Cores/Silver/Encoding#innern|Silver]] || F0 F1 F2 || 1 |
|- | |- | ||
− | | [[Cores/Gold/Encoding# | + | | [[Cores/Gold/Encoding#innern|Gold]] || F0 F1 F2 F3 || 1 |
|- | |- | ||
− | | [[Cores/Decimal8/Encoding# | + | | [[Cores/Decimal8/Encoding#innern|Decimal8]] || F0 F1 F2 || 1 |
|- | |- | ||
− | | [[Cores/Decimal16/Encoding# | + | | [[Cores/Decimal16/Encoding#innern|Decimal16]] || F0 F1 F2 || 1 |
|} | |} | ||
+ | |||
+ | |||
+ | [[Instruction_Set|Instruction Set, alphabetical]], [[Instruction Set by Category]], [http://millcomputing.com/instructions.html?collapse=7#ops Instruction Set, sortable, filterable] |
Latest revision as of 17:47, 4 February 2015
Enter loop that produces multiple result values.
This is a gang encoding for loop calls that have more arguments than one slot inner operations can accommodate.
There are optimizations for this for ganged function calls with zero or one return value. As with all ganged inner operations, the target address is always in the last gang slot.
related operations: innertrn, innerfln
innern(lit n, p target, args args) → ops r0 ...rn
encoding:
innern(lit n, p target, off argv, count argc)
,
innern(lit n, p target, off argv, count argc, lit argv)
Core | In Slots | Latencies |
---|---|---|
Tin | F0 | 1 |
Copper | F0 F1 | 1 |
Silver | F0 F1 F2 | 1 |
Gold | F0 F1 F2 F3 | 1 |
Decimal8 | F0 F1 F2 | 1 |
Decimal16 | F0 F1 F2 | 1 |
innern(lit n, lbl target, args args) → ops r0 ...rn
encoding:
innern(lit n, off target, count argc)
,
innern(lit n, off target, count argc, lit argv)
,
innern(lit n, off target, count argc, lit argv, lit argv)
Core | In Slots | Latencies |
---|---|---|
Tin | F0 | 1 |
Copper | F0 F1 | 1 |
Silver | F0 F1 F2 | 1 |
Gold | F0 F1 F2 F3 | 1 |
Decimal8 | F0 F1 F2 | 1 |
Decimal16 | F0 F1 F2 | 1 |
Instruction Set, alphabetical, Instruction Set by Category, Instruction Set, sortable, filterable