S1C17 CORE MANUAL
Seiko Epson Corporation
7-9
(Rev. 1.2)
add.a %sp, %rs
Function
24-bit addition
Standard)
sp(23:0)
←
sp(23:0) +
rs
(23:0)
Extension 1) sp(23:0)
←
rs
(23:0) +
imm13
(zero extended)
Extension 2) sp(23:0)
←
rs
(23:0) +
imm24
Code
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 0 0 0 0 0 0 0 0 1
r s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Flag
IL IE C V Z N
– – – – – –
|
|
|
| |
Mode
Src: Register direct
%rs
=
%r0
to
%r7
Dst: Register direct
%sp
CLK
One cycle
Description
(1) Standard
add.a %sp,%rs
; sp
←
sp + rs
The content of the
rs
register is added to the stack pointer SP.
(2) Extension 1
ext imm13
add.a %sp,%rs
; sp
←
rs + imm13
The 13-bit immediate
imm13
is added to the content of the
rs
register after being zero-extended,
and the result is loaded into the stack pointer SP. The content of the
rs
register is not altered.
(3) Extension 2
ext imm11
; imm11(10:0) = imm24(23:13)
ext imm13
; = imm24(12:0)
add.a %sp,%rs
; sp
←
rs + imm24
The 24-bit immediate
imm24
is added to the content of the
rs
register, and the result is loaded
into the stack pointer SP. The content of the
rs
register is not altered.
(4) Delayed slot instruction
This instruction may be executed as a delayed slot instruction by writing it directly after
a branch instruction with the “d” bit. In this case, extension of the immediate by the
ext
instruction cannot be performed.
Example
(1)
add.a %sp,%r0
; sp = sp + r0
(2)
ext 0x1
ext 0x1ffc
add.a %sp,%r2
; sp = r2 + 0x3ffc
Caution
The 2 low-order bits of the addition results are always loaded to the SP as 0.