summaryrefslogtreecommitdiff
path: root/mips/mips_regfp.sail
diff options
context:
space:
mode:
authorRobert Norton2016-10-27 16:42:27 +0100
committerRobert Norton2016-10-27 16:42:38 +0100
commit42df1991945372e63cb5c8d078e13b4163784147 (patch)
treee8baa35dc7449f7f3a00a36436e854b0253fdf0f /mips/mips_regfp.sail
parent5cbc35eb6d253e87185bbf247aa1e3db12d998d8 (diff)
add hgen for J branches
Diffstat (limited to 'mips/mips_regfp.sail')
-rw-r--r--mips/mips_regfp.sail6
1 files changed, 5 insertions, 1 deletions
diff --git a/mips/mips_regfp.sail b/mips/mips_regfp.sail
index ca781d23..6cfa3230 100644
--- a/mips/mips_regfp.sail
+++ b/mips/mips_regfp.sail
@@ -355,22 +355,26 @@ function (regfps,regfps,regfps,nias,dia,instruction_kind) initial_analysis (inst
case (J(offset)) -> {
(* XXX actually unconditional jump *)
ik := IK_cond_branch;
- (* Nias := XXX *)
+ Dia := DIA_concrete((PC + 4)[63..28] : offset : 0b00);
}
case (JAL(offset)) -> {
(* XXX actually unconditional jump *)
ik := IK_cond_branch;
oR := RFull("GPR31") :: oR;
+ Dia := DIA_concrete((PC + 4)[63..28] : offset : 0b00);
}
case (JR(rs)) -> {
(* XXX actually unconditional jump *)
ik := IK_cond_branch;
iR := RFull(GPRs[rs]) :: iR;
+ Dia := DIA_reg(RFull(GPRs[rs]));
}
case (JALR(rs, rd)) -> {
+ (* XXX actually unconditional jump *)
ik := IK_cond_branch;
iR := RFull(GPRs[rs]) :: iR;
oR := RFull("GPR31") :: oR;
+ Dia := DIA_reg(RFull(GPRs[rs]));
}
case (BEQ(rs, rd, imm, ne, likely)) -> {
ik := IK_cond_branch;