Zca Extension

Versions

1.0.0
State

ratified

Ratification date

2023-04

Synopsis

The Zca extension is added as way to refer to instructions in the C extension that do not include the floating-point loads and stores.

Therefore it excludes all 16-bit floating point loads and stores: c.flw, c.flwsp, c.fsw, c.fswsp, c.fld, c.fldsp, c.fsd, c.fsdsp.

The 'C' extension only includes F/D instructions when D and F are also specified.

Instructions

The following instructions are defined by this extension:

c.add

Add

c.addi

Add a sign-extended non-zero immediate

c.addi16sp

Add a sign-extended non-zero immediate

c.addi4spn

Add a zero-extended non-zero immediate, scaled by 4, to the stack pointer

c.addiw

Add a sign-extended non-zero immediate

c.addw

Add word

c.and

And

c.andi

And immediate

c.beqz

Branch if Equal Zero

c.bnez

Branch if NOT Equal Zero

c.ebreak

Breakpoint exception.

c.j

Jump

c.jal

Jump and Link

c.jalr

Jump and Link Register.

c.jr

Jump Register

c.ld

Load double

c.ldsp

Load doubleword from stack pointer

c.li

Load the sign-extended 6-bit immediate

c.lui

Load the non-zero 6-bit immediate field into bits 17-12 of the destination register

c.lw

Load word

c.lwsp

Load word from stack pointer

c.mv

Move Register

c.nop

Non-operation

c.or

Or

c.sd

Store double

c.sdsp

Store doubleword to stack

c.slli

Shift left logical immediate

c.srai

Shift right arithmetical immediate

c.srli

Shift right logical immediate

c.sub

Subtract

c.subw

Subtract word

c.sw

Store word

c.swsp

Store word to stack

c.xor

Exclusive Or