Specifications

11
S1C33000 Core
Classification Instruction Sample format Operation Cycle
Comparison cmp cmp %rd, %rs %rd - %rs (changes the flags only) 1
cmp %rd, sign6 %rd - sign6
Operation adc, sbc adc %rd, %rs %rd = %rd + %rs + carry flag 1
with carry
Multiplication mlt.h, mlt.uh (16 bits) mlt.h %rd, %rs %alr = %rd × %rs (32 = 16 × 16) 1
mlt.w, mlt.uw (32 bits) %ahr:%alr = %rd × %rs (64 = 32 × 32) 5
Division div0s, div0u, div1, div2s, div3s Division is performed according to a 1
combination of these instructions.
Shift srl, sll (logical shift) srl %rd, imm4 %rd = %rd >> imm4 1
sra, sla (arithmetical shift) srl %rd, %rs %rd = %rd >> %rs
rr, rl (rotate) 0 to 8 shift count can be specified.
Memory ld.b (signed 8-bit load) ld.w %rd, [%sp+imm6] %rd = [%sp+imm6] (stack relative access) 1 or 2
data load ld.ub (unsigned 8-bit load) ld.w [%sp+imm6], %rs [%sp+imm6] = %rs
ld.h (signed 16-bit load) ld.w %rd, [%rb] %rd = [%rb] (register indirect access)
ld.uh (unsigned 16-bit load) ld.w %rd, [%rb]+ %rd = [%rb], %rb = %rb + 4 (post inc.)
ld.w (32-bit load) ld.w [%rb], %rs [%rb] = %rs
ld.w [%rb]+, %rs [%rb] = %rs, %rb = %rb + 4
Register ld.w ld.w %rd, %rs Copy between registers 1
data load ld.w %rd, sign6 Immediate data substitution
ld.w %rd, %ss Copy from a special register
ld.w %ss, %rs Copy to a special register
Conversion ld.b, ld.ub, ld.h, ld.uh ld.b %rd, %rs Type conversion 1
Bit btst, bset, bclr, bnot btst [%rb], imm3 Bit test, set, clear and negation 3
System nop, slp, hlt No operation, clock stop 1
MAC mac Repeats <%ahr:%alr= [%r14] × [%r15]
2 × N + 4
+ %ahr:%alr> %r13 times.
Stack pushn, popn pushn %rs Continuous push/pop from %r0 to %rs 1 × N
Scan scan0, scan1 scan0 %rd, %rs Gets the length of 0s or 1s within 8 bits 1
from MSB.
Swap swap, miror swap %rd, %rs
Bit swap, mirror operation in 8-bit units 1
Extension ext ext imm13 Extends immediate data in the instruction. 1
Immediate Extension with EXT Instruction
Examples)
Original instruction Extension with one EXT Extension with two EXTs
call sign8 ext imm13 ext imm13
call sign8 (= call sign21) ext imm13
call sign8 (= call sign31)
Classification Instruction Original format
Extended operation Extended operation
with one EXT with two EXTs
Relative jp,jrgt,jrge,jrlt jrle,jrugt,jruge,jrult,jrule, jp sing8 jp sign21 jp sign31
branch jreq,jrne,call and delayed instructions
3-operand add, sub, and, or, xor, not, cmp add %rd, %rs add %rd, %rs, imm13 add %rd, %rs, imm26
operation Operand extension Operand extension
Operation add, sub, and, or, xor, not, cmp, ld.w add %rd, imm6 /sign6
add
%rd, imm19/sign19
add %rd, imm32
Stack ld.b, ld.ub, ld.h, ld.uh, ld.w ld.w %rd, [%sp+imm6] [%sp+imm19] [%sp+imm32]
load ld.w [%sp+imm6], %rs Offset extension Offset extension
Absolute ld.b, ld.ub, ld.h, ld.uh, ld.w ld.w %rd, [%rb] [%rb+imm13] [%rb+imm28]
load ld.w %rd, [%rb]+ Offset addition Offset addition
ld.w [%rb], %rs
ld.w [%rb]+, %rs
Bit btst, bset, bclr, bnot btst [%rb], imm3 [%rb+imm13] [%rb+imm26]
Offset addition Offset addition