21 lines
705 B
Plaintext
21 lines
705 B
Plaintext
// Nexted Lvalues not implemented (seems to be in Treenail)
|
|
|
|
InstructionSet Zbb {
|
|
architectural_state {
|
|
unsigned int XLEN=32;
|
|
const register unsigned<32> XLEN_R = 32;
|
|
register unsigned<XLEN> X[32] [[is_main_reg]];
|
|
}
|
|
instructions {
|
|
ZIP [[enable=XLEN==32]] {
|
|
encoding: 12'b000010001111 :: rs1[4:0] :: 3'b001 :: rd[4:0] :: 7'b0010011;
|
|
assembly: "{name(rd)}, {name(rs1)}";
|
|
behavior: {
|
|
for(unsigned int i = 0; i<=XLEN/2-1; i++){
|
|
X[rd][2*i] = X[rs1][i];
|
|
X[rd][2*i+1] = X[rs1][i+XLEN/2];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |