Skip to content

Instantly share code, notes, and snippets.

@michaeljclark
Created February 20, 2017 02:59
Show Gist options
  • Save michaeljclark/302359dbdee478a9e110bc396958bb12 to your computer and use it in GitHub Desktop.
Save michaeljclark/302359dbdee478a9e110bc396958bb12 to your computer and use it in GitHub Desktop.
riscv-meta TableGen output
class u
{
Inst{11-7} = rd;
Inst{31-12} = imm{31-12};
}
class uj
{
Inst{11-7} = rd;
Inst{19-12} = imm{19-12};
Inst{20} = imm{11};
Inst{30-21} = imm{10-1};
Inst{31} = imm{20};
}
class i
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{31-20} = imm{11-0};
}
class i_sh5
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{24-20} = shamt5{4-0};
}
class i_sh6
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{25-20} = shamt6{5-0};
}
class i_sh7
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{26-20} = shamt7{6-0};
}
class i_csr
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{31-20} = csr12{11-0};
}
class s
{
Inst{19-15} = rs1;
Inst{24-20} = rs2;
Inst{11-7} = imm{4-0};
Inst{31-25} = imm{11-5};
}
class sb
{
Inst{19-15} = rs1;
Inst{24-20} = rs2;
Inst{7} = imm{11};
Inst{11-8} = imm{4-1};
Inst{30-25} = imm{10-5};
Inst{31} = imm{12};
}
class r
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{24-20} = rs2;
}
class r4_m
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{24-20} = rs2;
Inst{31-27} = rs3;
Inst{14-12} = rm;
}
class r_a
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{24-20} = rs2;
Inst{26} = aq;
Inst{25} = rl;
}
class r_l
{
Inst{11-7} = rd;
Inst{19-15} = rs1;
Inst{26} = aq;
Inst{25} = rl;
}
class r_f
{
Inst{27-24} = pred;
Inst{23-20} = succ;
}
class cb
{
Inst{9-7} = rs1 - 8;
Inst{2} = imm{5};
Inst{4-3} = imm{2-1};
Inst{6-5} = imm{7-6};
Inst{11-10} = imm{4-3};
Inst{12} = imm{8};
}
class cb_imm
{
Inst{9-7} = rdrs1 - 8;
Inst{6-2} = imm{4-0};
Inst{12} = imm{5};
}
class cb_sh5
{
Inst{9-7} = rdrs1 - 8;
Inst{6-2} = imm{4-0};
}
class cb_sh6
{
Inst{9-7} = rdrs1 - 8;
Inst{6-2} = imm{4-0};
Inst{12} = imm{5};
}
class ci
{
Inst{11-7} = rdrs1;
Inst{6-2} = imm{4-0};
Inst{12} = imm{5};
}
class ci_sh5
{
Inst{11-7} = rdrs1;
Inst{6-2} = imm{4-0};
}
class ci_sh6
{
Inst{11-7} = rdrs1;
Inst{6-2} = imm{4-0};
Inst{12} = imm{5};
}
class ci_16sp
{
Inst{11-7} = rdrs1;
Inst{2} = imm{5};
Inst{4-3} = imm{8-7};
Inst{5} = imm{6};
Inst{6} = imm{4};
Inst{12} = imm{9};
}
class ci_lwsp
{
Inst{11-7} = rd;
Inst{3-2} = imm{7-6};
Inst{6-4} = imm{4-2};
Inst{12} = imm{5};
}
class ci_ldsp
{
Inst{11-7} = rd;
Inst{4-2} = imm{8-6};
Inst{6-5} = imm{4-3};
Inst{12} = imm{5};
}
class ci_lqsp
{
Inst{11-7} = rd;
Inst{5-2} = imm{9-6};
Inst{6} = imm{4};
Inst{12} = imm{5};
}
class ci_li
{
Inst{11-7} = rdrs1;
Inst{6-2} = imm{4-0};
Inst{12} = imm{5};
}
class ci_lui
{
Inst{11-7} = rd;
Inst{6-2} = imm{16-12};
Inst{12} = imm{17};
}
class ci_none
{
}
class ciw_4spn
{
Inst{4-2} = rd - 8;
Inst{5} = imm{3};
Inst{6} = imm{2};
Inst{10-7} = imm{9-6};
Inst{12-11} = imm{5-4};
}
class cj
{
Inst{2} = imm{5};
Inst{5-3} = imm{3-1};
Inst{6} = imm{7};
Inst{7} = imm{6};
Inst{8} = imm{10};
Inst{10-9} = imm{9-8};
Inst{11} = imm{4};
Inst{12} = imm{11};
}
class cj_jal
{
Inst{2} = imm{5};
Inst{5-3} = imm{3-1};
Inst{6} = imm{7};
Inst{7} = imm{6};
Inst{8} = imm{10};
Inst{10-9} = imm{9-8};
Inst{11} = imm{4};
Inst{12} = imm{11};
}
class cl_lw
{
Inst{4-2} = rd - 8;
Inst{9-7} = rs1 - 8;
Inst{5} = imm{6};
Inst{6} = imm{2};
Inst{12-10} = imm{5-3};
}
class cl_ld
{
Inst{4-2} = rd - 8;
Inst{9-7} = rs1 - 8;
Inst{6-5} = imm{7-6};
Inst{12-10} = imm{5-3};
}
class cl_lq
{
Inst{4-2} = rd - 8;
Inst{9-7} = rs1 - 8;
Inst{6-5} = imm{7-6};
Inst{10} = imm{8};
Inst{12-11} = imm{5-4};
}
class cr
{
Inst{11-7} = rdrs1;
Inst{6-2} = rs2;
}
class cr_mv
{
Inst{11-7} = rd;
Inst{6-2} = rs2;
}
class cr_jalr
{
Inst{12} = rd;
Inst{11-7} = rs1;
}
class cr_jr
{
Inst{12} = rd;
Inst{11-7} = rs1;
}
class cs
{
Inst{9-7} = rdrs1 - 8;
Inst{4-2} = rs2 - 8;
}
class cs_sw
{
Inst{9-7} = rs1 - 8;
Inst{4-2} = rs2 - 8;
Inst{5} = imm{6};
Inst{6} = imm{2};
Inst{12-10} = imm{5-3};
}
class cs_sd
{
Inst{9-7} = rs1 - 8;
Inst{4-2} = rs2 - 8;
Inst{6-5} = imm{7-6};
Inst{12-10} = imm{5-3};
}
class cs_sq
{
Inst{9-7} = rs1 - 8;
Inst{4-2} = rs2 - 8;
Inst{6-5} = imm{7-6};
Inst{10} = imm{8};
Inst{12-11} = imm{5-4};
}
class css_swsp
{
Inst{6-2} = rs2;
Inst{8-7} = imm{7-6};
Inst{12-9} = imm{5-2};
}
class css_sdsp
{
Inst{6-2} = rs2;
Inst{9-7} = imm{8-6};
Inst{12-10} = imm{5-3};
}
class css_sqsp
{
Inst{6-2} = rs2;
Inst{10-7} = imm{9-6};
Inst{12-11} = imm{5-4};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment