7 DETAILS OF INSTRUCTIONS
S1C17 FAMILY S1C17 CORE MANUAL
EPSON
7-41
jrle
sign7
jrle.d sign7
Function
Conditional PC relative jump (for judgment of signed operation results)
Standard)
pc
← pc + 2 + sign7 × 2 if Z | (N^V) is true
Extension 1) pc
← pc + 2 + sign21 if Z | (N^V) is true
Extension 2) pc
← pc + 2 + sign24 if Z | (N^V) is true
Code
15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
0 0 0 0 1 0 0 1 0
sign7
jrle
|
0 0 0 0 1 0 0 1 1
sign7
jrle.d
|
Flag
IL IE
C
V
Z
N
– – – – – –
|
Mode
Signed PC relative
CLK
jrle
Two cycles (when not branched), Three cycles (when branched)
jrle.d
Two cycles
Description (1) Standard
jrle
sign7
; = "jrle sign8", sign7 = sign8(7:1), sign8(0)=0
If the condition below has been met, this instruction doubles the signed 7-bit immediate sign7
and adds it to the PC (PC + 2) for branching the program flow to the address. It does not branch
if the condition has not been met.
Z flag = 1 or N flag
≠ V flag (e.g. “A ≤ B” has resulted by cmp A,B)
The sign7 specifies a word address in 16-bit units.
The sign7 (
×2) allows branches within the range of PC - 126 to PC + 128.
(2) Extension 1
ext
imm13
; = sign21(20:8)
jrle
sign7
; = "jrle sign21", sign7 = sign21(7:1), sign21(0)=0
The ext instruction extends the displacement to be added to the PC (PC + 2) into signed 21
bits using its 13-bit immediate data imm13. The sign21 allows branches within the range of PC
- 1,048,574 to PC + 1,048,576.
(3) Extension 2
ext
imm13
; imm13(2:0)= sign24(23:21)
ext
imm13
; = sign24(20:8)
jrle
sign7
; = "jrle sign24", sign7 = sign24(7:1), sign24(0)=0
The ext instructions extend the displacement to be added to the PC (PC + 2) into signed 24
bits using their 13-bit immediates (imm13
× 2). The sign24 allows branches within the range of
PC - 8,388,606 to PC + 8,388,608.
(4) Delayed branch (d bit (bit 7) = 1)
jrle.d
sign7
For the jrle.d instruction, the next instruction becomes a delayed slot instruction. A delayed
slot instruction is executed before the program branches. Interrupts are masked in intervals
between the jrle.d instruction and the next instruction, so no interrupts occur.
Example
cmp
%r0,%r1
; r0 and r1 contain signed data.
jrle
0x2
; Skips the next instruction if r0
≤ r1.
Caution
When the jrle.d instruction (delayed branch) is used, be careful to ensure that the next
instruction is limited to those that can be used as a delayed slot instruction. If any other instruction
is executed, the program may operate indeterminately. For the usable instructions, refer to the
instruction list in the Appendix.