Difference between revisions of "Instruction Set/calln"

From Mill Computing Wiki
Jump to: navigation, search
 
Line 32:Line 32:
 
| [[Cores/Tin/Encoding#calln|Tin]] || F0 || 1
 
| [[Cores/Tin/Encoding#calln|Tin]] || F0 || 1
 
|-
 
|-
| [[Cores/Copper/Encoding#calln|Copper]] || F0 F1 || 1
+
| [[Cores/Copper/Encoding#calln|Copper]] || F0 || 1
 
|-
 
|-
 
| [[Cores/Silver/Encoding#calln|Silver]] || F0 F1 F2 || 1
 
| [[Cores/Silver/Encoding#calln|Silver]] || F0 F1 F2 || 1
 
|-
 
|-
| [[Cores/Gold/Encoding#calln|Gold]] || F0 F1 F2 F3 || 1
+
| [[Cores/Gold/Encoding#calln|Gold]] || F0 || 1
|-
+
| [[Cores/Decimal8/Encoding#calln|Decimal8]] || F0 F1 F2 || 1
+
|-
+
| [[Cores/Decimal16/Encoding#calln|Decimal16]] || F0 F1 F2 || 1
+
 
|}
 
|}
  
Line 66:Line 62:
 
| [[Cores/Tin/Encoding#calln|Tin]] || F0 || 1
 
| [[Cores/Tin/Encoding#calln|Tin]] || F0 || 1
 
|-
 
|-
| [[Cores/Copper/Encoding#calln|Copper]] || F0 F1 || 1
+
| [[Cores/Copper/Encoding#calln|Copper]] || F0 || 1
 
|-
 
|-
 
| [[Cores/Silver/Encoding#calln|Silver]] || F0 F1 F2 || 1
 
| [[Cores/Silver/Encoding#calln|Silver]] || F0 F1 F2 || 1
 
|-
 
|-
| [[Cores/Gold/Encoding#calln|Gold]] || F0 F1 F2 F3 || 1
+
| [[Cores/Gold/Encoding#calln|Gold]] || F0 || 1
|-
+
| [[Cores/Decimal8/Encoding#calln|Decimal8]] || F0 F1 F2 || 1
+
|-
+
| [[Cores/Decimal16/Encoding#calln|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]
 
[[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 13:25, 23 February 2021

realizing  flow stream  flow block  call phase   operation  

native on: all

Call function with defined number of return values.

This is a gang encoding for function calls that have more arguments than one slot call operations can accommodate.

There are optimizations for this for ganged function calls with zero or one return value.

As with all ganged call operations, the target address is always in the last gang slot.

related operations: calltrn, callfln, retn


calln(lit n, p target, args args) → ops r0 ...rn

operands: like Inv :


encoding: calln(lit n, p target, off argv, count argc) , calln(lit n, p target, off argv, count argc, lit argv)

Core In Slots Latencies
Tin F0 1
Copper F0 1
Silver F0 F1 F2 1
Gold F0 1

calln(lit n, lbl target, args args) → ops r0 ...rn

operands: like Inv :


encoding: calln(lit n, off target, count argc) , calln(lit n, off target, count argc, lit argv) , calln(lit n, off target, count argc, lit argv, lit argv)

Core In Slots Latencies
Tin F0 1
Copper F0 1
Silver F0 F1 F2 1
Gold F0 1


Instruction Set, alphabetical, Instruction Set by Category, Instruction Set, sortable, filterable