7
DETAILS OF INSTRUCTIONS
S1C33 FAMILY C33 PE CORE MANUAL
EPSON
89
jruge
sign8
/ jruge.d
sign8
Function
Conditional PC relative jump (for judgment of unsigned operation results)
Standard)
pc
←
pc +
sign8
×
2
if !C is true
Extension
1
) pc
←
pc +
sign22
if !C is true
Extension
2
) pc
←
pc +
sign32
if !C is true
Code
15
12
11
8
7
0
0
0
0
1
0
0
1
d
sign8
0x12__, 0x13__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jruge
sign8
when d bit (bit
8
) =
0
jruge.d
sign8
when d bit (bit
8
) =
1
Flag
IE C V Z N
– – – – –
|
|
|
|
Mode
Signed PC relative
CLK
jruge
Two cycles (when not branched), Three cycles (when branched)
jruge.d
Two cycles
Description
(
1
) Standard
jruge
sign8
; = "jruge
sign9
",
sign8
=
sign9
(8:1),
sign9
(0)=0
If the condition below has been met, this instruction doubles the signed
8
-bit immediate
sign8
and adds it to the PC for branching the program flow to the address. It does not branch if the
condition has not been met.
•
C flag =
0
(e.g.
“
A
≥
B
”
has resulted by
cmp A,B
)
The
sign8
specifies a halfword address in
16
-bit units.
The
sign8
(
×
2
) allows branches within the range of PC -
0
x
100
to PC +
0
xFE.
(
2
) Extension
1
ext
imm13
; =
sign22
(21:9)
jruge
sign8
; = "jruge
sign22
",
sign8
=
sign22
(8:1),
sign22
(0)=0
The
ext
instruction extends the displacement to be added to the PC into signed
22
bits using its
13
-bit immediate data
imm13
. The
sign22
allows branches within the range of PC -
0
x
200000
to PC +
0
x
1
FFFFE.
(
3
) Extension
2
ext
imm13
;
imm13
(12:3)=
sign32
(31:22)
ext
imm13
; =
sign32
(21:9)
jruge
sign8
; = "jruge
sign32
",
sign8
=
sign32
(8:1),
sign32
(0)=0
The
ext
instructions extend the displacement to be added to the PC into signed
32
bits using
their
13
-bit immediates (
imm13
×
2
). The displacement covers the entire address space. Note
that the low-order
3
bits of the first
imm13
are ignored.
(
4
) Delayed branch (d bit =
1
)
jruge.d
sign8
For the
jruge.d
instruction, the next instruction becomes a delayed instruction. A delayed
instruction is executed before the program branches. Exceptions are masked in intervals
between the
jruge.d
instruction and the next instruction, so no interrupts or exceptions occur.
Example
cmp %r0,%r1 ; r0 and r1 contain unsigned data.
jruge 0x2
; Skips the next instruction if r0
≥
r1.
Caution
When the
jruge.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 instruction. If any other instruction
is executed, the program may operate indeterminately. For the usable instructions, refer to the
instruction list in the Appendix.