Skip to content

Commit

Permalink
Fix idiv semantics
Browse files Browse the repository at this point in the history
  • Loading branch information
JonathanSalwan committed Nov 1, 2020
1 parent 5bc54ee commit a1ea273
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .build_number
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1480
1481
8 changes: 4 additions & 4 deletions src/libtriton/arch/x86/x86Semantics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5261,7 +5261,7 @@ namespace triton {
/* res = AX / Source */
auto result = this->astCtxt->bvsdiv(dividend, this->astCtxt->sx(triton::bitsize::byte, divisor));
/* mod = AX % Source */
auto mod = this->astCtxt->bvsrem(dividend, this->astCtxt->sx(triton::bitsize::byte, divisor));
auto mod = this->astCtxt->bvsmod(dividend, this->astCtxt->sx(triton::bitsize::byte, divisor));
/* AH = mod */
/* AL = res */
auto node = this->astCtxt->concat(
Expand All @@ -5283,7 +5283,7 @@ namespace triton {
/* res = DX:AX / Source */
auto result = this->astCtxt->extract((triton::bitsize::word - 1), 0, this->astCtxt->bvsdiv(dividend, this->astCtxt->sx(triton::bitsize::word, divisor)));
/* mod = DX:AX % Source */
auto mod = this->astCtxt->extract((triton::bitsize::word - 1), 0, this->astCtxt->bvsrem(dividend, this->astCtxt->sx(triton::bitsize::word, divisor)));
auto mod = this->astCtxt->extract((triton::bitsize::word - 1), 0, this->astCtxt->bvsmod(dividend, this->astCtxt->sx(triton::bitsize::word, divisor)));
/* Create the symbolic expression for AX */
auto expr1 = this->symbolicEngine->createSymbolicExpression(inst, result, ax, "IDIV operation");
/* Apply the taint for AX */
Expand All @@ -5303,7 +5303,7 @@ namespace triton {
/* res = EDX:EAX / Source */
auto result = this->astCtxt->extract((triton::bitsize::dword - 1), 0, this->astCtxt->bvsdiv(dividend, this->astCtxt->sx(triton::bitsize::dword, divisor)));
/* mod = EDX:EAX % Source */
auto mod = this->astCtxt->extract((triton::bitsize::dword - 1), 0, this->astCtxt->bvsrem(dividend, this->astCtxt->sx(triton::bitsize::dword, divisor)));
auto mod = this->astCtxt->extract((triton::bitsize::dword - 1), 0, this->astCtxt->bvsmod(dividend, this->astCtxt->sx(triton::bitsize::dword, divisor)));
/* Create the symbolic expression for EAX */
auto expr1 = this->symbolicEngine->createSymbolicExpression(inst, result, eax, "IDIV operation");
/* Apply the taint for EAX */
Expand All @@ -5323,7 +5323,7 @@ namespace triton {
/* res = RDX:RAX / Source */
auto result = this->astCtxt->extract((triton::bitsize::qword - 1), 0, this->astCtxt->bvsdiv(dividend, this->astCtxt->sx(triton::bitsize::qword, divisor)));
/* mod = RDX:RAX % Source */
auto mod = this->astCtxt->extract((triton::bitsize::qword - 1), 0, this->astCtxt->bvsrem(dividend, this->astCtxt->sx(triton::bitsize::qword, divisor)));
auto mod = this->astCtxt->extract((triton::bitsize::qword - 1), 0, this->astCtxt->bvsmod(dividend, this->astCtxt->sx(triton::bitsize::qword, divisor)));
/* Create the symbolic expression for RAX */
auto expr1 = this->symbolicEngine->createSymbolicExpression(inst, result, rax, "IDIV operation");
/* Apply the taint for EAX */
Expand Down

0 comments on commit a1ea273

Please sign in to comment.