HL.BSTART CALL¶
48-bit HL. **Group:** BSTART |
Ch 04
Block ISA — Block-structured Control Flow |
**Length:**
48 | **Decode:** —
Assembly Syntax¶
HL.BSTART.CALL <br_label>, <rt_label>, ->ra
Encoding¶
Description¶
[48-bit HL.] Atomic fused call with independent call-target and return-target fields; transfers to the call block and writes ra. This exact aggregate is distinct from the generic bare-call form, which preserves ra and requires an adjacent SETRET or C.SETRET.
Pseudocode (informative)¶
P = CurrentPC();
call_target = P + (SignExtend(simm25) << 1);
ra = (P + 4) + (ZeroExtend(uimm5) << 1);
AtomicCallTransfer(call_target, ra);
Encoding Notes¶
Atomic fused CALL: call_target = P + (SignExtend(simm25) << 1); ra = (P + 4) + (ZeroExtend(uimm5) << 1). Both labels are explicit and independently relocatable.
Full Catalog Forms¶
| Assembly | Length | Decode |
|---|---|---|
HL.BSTART.CALL <br_label>, <rt_label>, ->ra |
48 | — |
← [BSTART](../groups/bstart.md) [Index](../index.md) [All instructions](index.md) →