Skip to content

Commit

Permalink
Minor fixes for ARM64 semantics
Browse files Browse the repository at this point in the history
* Fixed order of arguments in initialization of a boolean SValue in SymEvalSemantics
* Dispatcher::read() in BaseSemantics now does not assert if the input expression is an SgAsmBinaryLsl
  • Loading branch information
ssunny7 committed Sep 12, 2016
1 parent 3ac05a7 commit 31e138a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
5 changes: 5 additions & 0 deletions dataflowAPI/rose/semantics/BaseSemantics2.C
Expand Up @@ -691,6 +691,11 @@ Dispatcher::read(SgAsmExpression *e, size_t value_nbits/*=0*/, size_t addr_nbits
SgAsmExpression *lhs = product->get_lhs();
SgAsmExpression *rhs = product->get_rhs();
retval = operators->unsignedMultiply(read(lhs, lhs->get_nBits()), read(rhs, rhs->get_nBits()));
} else if (SgAsmBinaryLsl *lshift = isSgAsmBinaryLsl(e)) {
SgAsmExpression *lhs = lshift->get_lhs();
SgAsmExpression *rhs = lshift->get_rhs();
size_t nbits = std::max(lhs->get_nBits(), rhs->get_nBits());
retval = operators->shiftLeft(read(lhs, lhs->get_nBits()), read(rhs, rhs->get_nBits()));
} else {
ASSERT_not_implemented(e->class_name());
}
Expand Down
2 changes: 1 addition & 1 deletion dataflowAPI/rose/semantics/SymEvalSemantics.h
Expand Up @@ -69,7 +69,7 @@ namespace rose {
}

virtual BaseSemantics::SValuePtr boolean_(bool value) const {
return SValuePtr(new SValue(value?1:0, 1));
return SValuePtr(new SValue(1, value?1:0));
}

virtual BaseSemantics::SValuePtr copy(size_t new_width = 0) const {
Expand Down

0 comments on commit 31e138a

Please sign in to comment.