diff options
| author | Shaked Flur | 2018-02-08 12:06:00 +0000 |
|---|---|---|
| committer | Shaked Flur | 2018-02-08 12:06:00 +0000 |
| commit | 043ea8ec3faecadf34ef9010bdd539f595f9c6da (patch) | |
| tree | eb44af3b9dec8e1a222872f56d4e32781596fa9e /x86/x64.sail | |
| parent | 151d86b911c9a266465638ee3514156dfb178e92 (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.sail | 13 |
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 |
