Commit ecb78409 authored by nagayama15's avatar nagayama15

オペランドスワップ透かし埋め込みパスを実装

parent 15c8a036
...@@ -81,28 +81,20 @@ namespace ...@@ -81,28 +81,20 @@ namespace
std::size_t num_embedded_bits = 0; std::size_t num_embedded_bits = 0;
bool is_changed = false; bool is_changed = false;
llvm::errs() << "V-------------------------------V" << "\n";
for (auto& inst : block) for (auto& inst : block)
{ {
llvm::errs() << inst.getOpcode();
if (auto bin_op = llvm::dyn_cast<llvm::BinaryOperator>(&inst)) if (auto bin_op = llvm::dyn_cast<llvm::BinaryOperator>(&inst))
{ {
bool is_swapped = !bin_op->swapOperands(); is_changed = !bin_op->swapOperands() || is_changed;
is_changed = is_swapped || is_changed; num_embedded_bits += 1;
llvm::errs() << ", " << "binop";
} }
else if (auto cmp_inst = llvm::dyn_cast<llvm::CmpInst>(&inst)) else if (auto cmp_inst = llvm::dyn_cast<llvm::CmpInst>(&inst))
{ {
cmp_inst->swapOperands(); cmp_inst->swapOperands();
bool is_swapped = !cmp_inst->isCommutative(); is_changed = true;
is_changed = is_swapped || is_changed; num_embedded_bits += 1;
llvm::errs() << ", " << "cmpinst";
} }
llvm::errs() << "\n";
} }
llvm::errs() << block.getParent()->getName() << "," << block.size() << "," << num_embedded_bits << "\n"; llvm::errs() << block.getParent()->getName() << "," << block.size() << "," << num_embedded_bits << "\n";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment