summaryrefslogtreecommitdiff
path: root/x86/x64.sail
diff options
context:
space:
mode:
authorShaked Flur2018-02-08 12:06:00 +0000
committerShaked Flur2018-02-08 12:06:00 +0000
commit043ea8ec3faecadf34ef9010bdd539f595f9c6da (patch)
treeeb44af3b9dec8e1a222872f56d4e32781596fa9e /x86/x64.sail
parent151d86b911c9a266465638ee3514156dfb178e92 (diff)
replaced NIA_LR/CTR/register with NIA_indirect;
removed IK_cond_branch, and added IK_branch
Diffstat (limited to 'x86/x64.sail')
-rw-r--r--x86/x64.sail13
1 files changed, 5 insertions, 8 deletions
diff --git a/x86/x64.sail b/x86/x64.sail
index 9fa0b838..3549b123 100644
--- a/x86/x64.sail
+++ b/x86/x64.sail
@@ -1457,8 +1457,7 @@ function (regfps,regfps,regfps,niafps,diafp,instruction_kind) initial_analysis (
oR := RFull("RSP") :: oR;
aR := ars;
Nias := switch irm {
- (* XXX register name is not important here -- just indicates we don't know the destination yet. *)
- case (Rm (v)) -> NIAFP_register(RFull("RAX"))
+ case (Rm (v)) -> NIAFP_indirect_address
case (Imm (v)) -> NIAFP_concrete_address(RIP + v)
} :: Nias;
}
@@ -1486,7 +1485,7 @@ function (regfps,regfps,regfps,niafps,diafp,instruction_kind) initial_analysis (
case(HLT ) -> ()
case(Jcc (c, imm64) ) ->
let flags = regfp_cond(c) in {
- ik := IK_cond_branch;
+ ik := IK_branch;
iR := RFull("RIP") :: flags;
Nias := NIAFP_concrete_address(RIP + imm64) :: Nias;
}
@@ -1495,8 +1494,7 @@ function (regfps,regfps,regfps,niafps,diafp,instruction_kind) initial_analysis (
ik := if m then IK_mem_read(Read_plain) else IK_simple;
iR := RFull("RIP")::append(rs, ars);
aR := ars;
- (* XXX register name is not important here -- just indicates we don't know the destination yet. *)
- Nias := NIAFP_register(RFull("RAX")) :: Nias;
+ Nias := NIAFP_indirect_address :: Nias;
}
case(LEA (sz, ds) ) ->
let (_, irs, ors, ars) = regfp_dest_src (ds) in {
@@ -1512,7 +1510,7 @@ function (regfps,regfps,regfps,niafps,diafp,instruction_kind) initial_analysis (
}
case(LOOP (c, imm64) ) ->
let flags = regfp_cond(c) in {
- ik := IK_cond_branch;
+ ik := IK_branch;
iR := RFull("RCX") :: flags;
oR := RFull("RCX") :: oR;
Nias := NIAFP_concrete_address(RIP + imm64) :: Nias;
@@ -1578,8 +1576,7 @@ function (regfps,regfps,regfps,niafps,diafp,instruction_kind) initial_analysis (
iR := RFull("RSP") :: iR;
oR := RFull("RSP") :: oR;
aR := RFull("RSP") :: aR;
- (* XXX register name is not important here -- just indicates we don't know the destination yet. *)
- Nias := NIAFP_register(RFull("RAX")) :: Nias;
+ Nias := NIAFP_indirect_address :: Nias;
}
case(SET (c, b, r_m) ) ->
let flags = regfp_cond(c) in