Difference between revisions of "Instruction Set/call"
(Created page with "{{DISPLAYTITLE:call}} <div style="font-size:80%;line-height:90%;margin-bottom:2em">realizing flow stream Decode|flow block...") | |||
Line 6: | Line 6: | ||
The general purpose unconditional abstract call operations you will be using when writing [[GenAsm (language)|general assembly code]]. | The general purpose unconditional abstract call operations you will be using when writing [[GenAsm (language)|general assembly code]]. | ||
Depending on the number and order of arguments and the number of return values the assembler will pick the most dense from a myriad of different encodings. This can result in [[Ganging|gangs]] or it can be a short single operation. | Depending on the number and order of arguments and the number of return values the assembler will pick the most dense from a myriad of different encodings. This can result in [[Ganging|gangs]] or it can be a short single operation. | ||
+ | |||
---- | ---- | ||
<code style="font-size:130%"><b style="color:#050">call</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">call</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 |
Revision as of 10:18, 12 November 2014
The general purpose unconditional abstract call operations you will be using when writing general assembly code. Depending on the number and order of arguments and the number of return values the assembler will pick the most dense from a myriad of different encodings. This can result in gangs or it can be a short single operation.
call(lit n, p target, args args) → ops r0 ...
An indirect call to a dynamically computed address.
encoding:
call(lit n, p target, off argv, count argc)
encoding:
call(lit n, p target, off argv, count argc, lit argv)
alternate encoding: call0, call1, calln,
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 |
call(lit n, lbl target, args args) → ops r0 ...
Function is known at compile time.
encoding:
call(lit n, off target, count argc)
encoding:
call(lit n, off target, count argc, lit argv)
encoding:
call(lit n, off target, count argc, lit argv, lit argv)
alternate encoding: call0, call1, calln,
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 |