Branching Instructions
Basic Branches
JMP #{\}A - Jump
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101100 RAA AAAAAAAAA AAAAAAAAA | none | --- | --- | 4 | 13..20 | No |
---|
JMP D {WC/WZ/WCZ} - Jump (indirect)
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 CZ0 DDDDDDDDD 000101100 | none | D[31] | D[30] | 4 | 13..20 | No |
---|
TODO
If the WC or WCZ effect is specified (JMP D
only), the C flag is updated to be Destination[31].
If the WZ or WCZ effect is specified (JMP D
only), the Z flag is updated to be Destination[30].
JMPREL {#}D - Jump relative
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 00L DDDDDDDDD 000110000 | none | --- | --- | 4 | 13..20 | No |
---|
Instruction Skipping
SKIP {#}D - Slow-Skip instruction pattern
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 00L DDDDDDDDD 000110001 | none | --- | --- | 2 | 2 | No |
---|
SKIP allows any of the next 32 instructions to be skipped if the corresponding bit is set (=1) in Destination. Bit 0 controls skipping for the first instruction after SKIP and bit 31 the 32nd. Destination is loaded into an internal shift register, changing it while SKIP is active has no effect.
The skipped instructions are treated similarly to ones whose if_*
condition check isn't met, i.e. they take 2 cycles to execute and do consume any ALTx-type instruction preceding them.
A call (or interrupt) suspends skipping until after the corresponding return. Nested calls are allowed up to a depth of eight (matching the size of the internal stack). Skipping continues after a jump and any remaining skip bits apply whether or not a conditional jump is made.
Skipping cannot be nested; SKIP ends any active or suspended skip sequence and starts a new one. SKIP #0
can be used to end skipping earlier than normal. SKIP does not work inside interrupt service routines (TODO CONFIRM).
Note that AUGS and AUGD are separate instructions, e.g. WRLONG ##1234, ##4568
consumes three skip bits. A subroutine call consumes only one skip bit for the entire routine.
For example:
skip #%1_001101
add x,y ' Skipped !
add x,y ' Not skipped !
add x,y ' Skipped !
add x,y ' Skipped !
call #subroutine
jmp #somewhere ' Not skipped !
...
somewhere
add x,y ' Skipped !
add x,y ' Not skipped !
...
subroutine
' Anything here is not skipped!
ret
SKIPF {#}D - Fast-Skip instruction pattern
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 00L DDDDDDDDD 000110010 | none | --- | --- | 2 | ILLEGAL | No |
---|
SKIPF allows any of the next 32 instructions to be skipped if the corresponding bit is set (=1) in Destination. Bit 0 controls skipping for the first instruction after SKIPF and bit 31 the 32nd. Destination is loaded into an internal shift register, changing it while SKIPF is active has no effect.
SKIPF works similarly to SKIP, but differs in that it can completely eliminate instructions from the pipeline. The skipped instructions take zero cycles to execute and don't consume any ALTx-type instruction preceding them. This works by incrementing PC by more than one instruction at a time.
However, this instruction has some severe limitations/oddities:
- It can only be used when executing from Cog or LUT memory. If it is used when executing from Hub memory, it acts as a normal SKIP.
- Only 7 instructions can be fast-skipped at once. The 8th instruction will be skipped normally (i.e. takes 2 cycles and consumes ALTx).
- The first instruction after SKIPF cannot be fast-skipped. If its bit is set, it is skipped normally (see above)
- Relative addressing should not be used for subroutine calls if the instruction after the call should be skipped (explicitly specify absolute addressing by writing
#\label
instead of#label
). (TODO: What happens if this is violated?) - Absolute addressing (both direct immediates and indirect jumps through a register) should not be used for (non-call) branches where the first instruction after the branch should be skipped. (TODO: What happens if this is violated?)
- Executing a SKIPF while a SKIPF is already active causes odd effects. (TODO research more)
Example:
skipf ##%0111111110_011111110_101
add x,y ' Slow-Skipped (first after skipf) !
add x,y ' Not skipped !
add x,y ' Fast-Skipped !
altr z ' This ALT...
nop ' 1
nop ' 2
nop ' 3
nop ' 4
nop ' 5
nop ' 6
nop ' 7
add x,y ' ... applies to this instruction
altr z ' BUT this ALT...
nop ' 1
nop ' 2
nop ' 3
nop ' 4
nop ' 5
nop ' 6
nop ' 7
nop ' 8 (8th instruction is SLOW SKIPPED, CONSUMES ALT)
add x,y ' ... does NOT apply to this instruction
EXECF {#}D - Jump and Fast-Skip instruction pattern
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 00L DDDDDDDDD 000110011 | none | --- | --- | 4 | 4 | No |
---|
EXECF loads an instruction skip pattern from Destination[31:10] and jumps to the absolute address in Destination[9:0] (this limits it to Cog/LUT memory!).
Please see SKIPF for details on the fast skipping function and its limitations, but note that EXECF can only skip the following 22 instructions, where Destination[10] corresponds to the first instruction at the jump target.
TODO: more
Block Repeat
REP {#}D,{#}S - Repeat block
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1100110 1LI DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 | 2 | No |
---|
REP causes the following block of instructions (whose length is provided in Destination) to be repeated the number of times given in Source (if Source is zero, the block is repeated indefinitely). (TODO: Less janky wording?) The values of Destination and Source are copied to internal registers - changing them during the loop has no effect.
Looping with REP is faster than using a normal branch instruction (such as DJNZ): If executing from Cog or LUT memory, the jump back to the top of the REP block is fully pipelined and thus instant. 0 cycles! TODO hubexec timing
REP loops cannot be nested! Also, any jump or call instruction will cancel the REP effect (this can be used to exit the loop early!).
The last instruction in the REP loop should not be a relative-addressed jump or call, since the PC will already have looped back to the top by the time the target address is computed.
While REP is active, Interrupts are stalled. REP can thus also be used to protect a sequence of instructions from interrupts (set Source to 1 so it doesn't actually repeat).
The assembler supports a special syntax @end_label
to automatically calculate the length of the REP block.
rep @.loop,#5 ' repeat block enclosed by REP/.loop 5 times
add x,##1234
wrlong x,ptra++
.loop
' equivalent without special syntax:
rep #3,#5
add x,##1234 ' AUGS/AUGD count as extra instructions!
wrlong x,ptra++
Note: if Destination is zero, REP does nothing.
Internal Stack Calls
CALL #{\}A - Call subroutine
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101101 RAA AAAAAAAAA AAAAAAAAA | none | --- | --- | 4 | 13..20 | No |
---|
CALL D {WC/WZ/WCZ} - Call subroutine (indirect)
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 CZ0 DDDDDDDDD 000101101 | none | D[31] | D[30] | 4 | 13..20 | No |
---|
CALLPA {#}D,{#}S - Call and set PA
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011010 0LI DDDDDDDDD SSSSSSSSS | PA | --- | --- | 4 | 13..20 | No |
---|
CALLPB {#}D,{#}S - Call and set PB
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011010 1LI DDDDDDDDD SSSSSSSSS | PB | --- | --- | 4 | 13..20 | No |
---|
CALLPA and CALLPB call the address given by Source and copy the value of Destination into PA or PB.
See Short branch addressing for details on how Source encodes the branch target.
RET {WC/WZ/WCZ} - Return from subroutine
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 CZ1 000000000 000101101 | none | K[31] | K[30] | 4 | 13..20 | No |
---|
RET pops an address off the internal stack (TODO Link) and jumps to that address.
If the WC or WCZ effect is specified, the C flag is restored from bit 31 of the return address.
If the WZ or WCZ effect is specified, the Z flag is restored from bit 30 of the return address.
TODO more detail
_RET_ Condition Code
TODO.
External Stack Calls
CALLA #{\}A
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101110 RAA AAAAAAAAA AAAAAAAAA | none | --- | --- | 5..13 | 14..33 | No |
---|
CALLA D {WC/WZ/WCZ}
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 CZ0 DDDDDDDDD 000101110 | none | D[31] | D[30] | 5..13 | 14..33 | No |
---|
CALLB #{\}A
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101111 RAA AAAAAAAAA AAAAAAAAA | none | --- | --- | 5..13 | 14..33 | No |
---|
CALLB D {WC/WZ/WCZ}
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 CZ0 DDDDDDDDD 000101111 | none | D[31] | D[30] | 5..13 | 14..33 | No |
---|
RETA {WC/WZ/WCZ}
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 CZ1 000000000 000101110 | none | L[31] | L[30] | 11..19 | 20..41 | No |
---|
RETA decrements PTRA by 4, reads an address from the new PTRA and jumps to that address.
If the WC or WCZ effect is specified, the C flag is restored from bit 31 of the return address.
If the WZ or WCZ effect is specified, the Z flag is restored from bit 30 of the return address.
TODO more detail
RETB {WC/WZ/WCZ}
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1101011 CZ1 000000000 000101111 | none | L[31] | L[30] | 11..19 | 20..41 | No |
---|
See RETA, but substitute PTRA with PTRB.
Coroutine calls
CALLD PA/PB/PTRA/PTRB,#{\}A
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 11100WW RAA AAAAAAAAA AAAAAAAAA | Per W | --- | --- | 4 | 13..20 | No |
---|
CALLD D,{#}S {WC/WZ/WCZ}
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011001 CZI DDDDDDDDD SSSSSSSSS | D | S[31] | S[30] | 4 | 13..20 | No |
---|
Short branch addressing
For conditional branches (TJ*/DJ*/IJ*) and some call instructions(CALLPA/CALLPB/CALLD) the address (Source) can be absolute or relative. To specify an absolute address, Source must be a register containing a 20-bit address value. To specify a relative address, use #Label for a 9-bit signed offset (a range of -256 to +255 instructions) or use ##Label (or insert a prior AUGS instruction) for a 20-bit signed offset (a range of -524288 to +524287). Offsets are relative to the instruction following the conditional branch instruction. The signed offset value is in units of whole instructions - it is added to PC as-is when in Cog/LUT execution mode and is multiplied by 4 then added to PC when in Hub execution mode.
And yes, it is mildly confusing that the branch destination is encoded by the Source value.
Test and Branch
TJZ D,{#}S - Test and jump if zero
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011100 10I DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
TJZ jumps to the address described by Source if the value in Destination is zero.
See Short branch addressing for details on how Source encodes the branch target.
TJNZ D,{#}S - Test and jump if not zero
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011100 11I DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
TJNZ jumps to the address described by Source if the value in Destination is not zero.
See Short branch addressing for details on how Source encodes the branch target.
TJF D,{#}S - Test and jump if full
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011101 00I DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
TJF jumps to the address described by Source if the value in Destination is full of ones (i.e. equals -1 / $FFFFFFFF
).
See Short branch addressing for details on how Source encodes the branch target.
TJNF D,{#}S - Test and jump if not full
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011101 01I DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
TJNF jumps to the address described by Source if the value in Destination is not full of ones (i.e. does not equal -1 / $FFFFFFFF
).
See Short branch addressing for details on how Source encodes the branch target.
TJS D,{#}S - Test and jump if negative
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011101 10I DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
TJS jumps to the address described by Source if the value in Destination is negative (i.e. bit 31 is 1).
See Short branch addressing for details on how Source encodes the branch target.
TJNS D,{#}S - Test and jump if positive
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011101 11I DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
TJNS jumps to the address described by Source if the value in Destination is positive (i.e. bit 31 is 0).
See Short branch addressing for details on how Source encodes the branch target.
TJV D,{#}S - Test and jump if signed overflow occurred
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 00I DDDDDDDDD SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
TJV tests the value in Destination against the C flag and jumps to the address described by Source if Destination has overflowed (Destination[31] != C). This instruction requires that C has been set to the "correct sign" by the ADDS / ADDSX / SUBS / SUBSX / CMPS / CMPSX / SUMx instruction that is to be checked for overflow.
See Short branch addressing for details on how Source encodes the branch target.
Modify and Branch
DJZ D,{#}S - Decrement and jump if zero
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011011 00I DDDDDDDDD SSSSSSSSS | D | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
DJZ decrements the value in Destination, writes the result, and jumps to the address described by Source if the result is zero.
See Short branch addressing for details on how Source encodes the branch target.
DJNZ D,{#}S - Decrement and jump if not zero
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011011 01I DDDDDDDDD SSSSSSSSS | D | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
DJNZ decrements the value in Destination, writes the result, and jumps to the address described by Source if the result is not zero.
This instruction is very commonly used for counted loops. In certain cases, it can be substituted with REP.
See Short branch addressing for details on how Source encodes the branch target.
DJF D,{#}S - Decrement and jump if borrow
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011011 10I DDDDDDDDD SSSSSSSSS | D | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
DJF decrements the value in Destination, writes the result, and jumps to the address described by Source if the result is -1 / $FFFFFFFF
(i.e underflow/borrow occurred).
See Short branch addressing for details on how Source encodes the branch target.
DJNF D,{#}S - Decrement and jump if no borrow
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011011 11I DDDDDDDDD SSSSSSSSS | D | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
DJNF decrements the value in Destination, writes the result, and jumps to the address described by Source if the result is not -1 / $FFFFFFFF
(i.e no underflow/borrow occurred).
See Short branch addressing for details on how Source encodes the branch target.
IJZ D,{#}S - Increment and jump if zero
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011100 00I DDDDDDDDD SSSSSSSSS | D | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
DJZ increments the value in Destination, writes the result, and jumps to the address described by Source if the result is zero.
See Short branch addressing for details on how Source encodes the branch target.
IJNZ D,{#}S - Increment and jump if not zero
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011100 01I DDDDDDDDD SSSSSSSSS | D | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
IJNZ increments the value in Destination, writes the result, and jumps to the address described by Source if the result is not zero.
See Short branch addressing for details on how Source encodes the branch target.
Branch on Event
JINT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000000 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNINT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010000 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JCT1 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000001 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNCT1 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010001 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JCT2 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000010 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNCT2 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010010 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JCT3 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000011 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNCT3 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010011 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JSE1 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000100 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNSE1 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010100 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JSE2 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000101 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNSE2 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010101 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JSE3 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000110 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNSE3 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010110 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JSE4 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000000111 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNSE4 {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000010111 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JPAT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001000 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNPAT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011000 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JFBW {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001001 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNFBW {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011001 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JXMT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001010 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNXMT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011010 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JXFI {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001011 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNXFI {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011011 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JXRO {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001100 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNXRO {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011100 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JXRL {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001101 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNXRL {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011101 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JATN {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001110 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNATN {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011110 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JQMT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000001111 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
JNQMT {#}S
Encoding | Register Written | C Flag | Z Flag | Cycles (cogexec) | Cycles (hubexec) | IRQ Shield | EEEE 1011110 01I 000011111 SSSSSSSSS | none | --- | --- | 2 or 4 | 2 or 13..20 | No |
---|
See Events for more info.