Skip to content

Commit f351f2b

Browse files
committed
Symbolic float to int conversion instructions
1 parent 10f1823 commit f351f2b

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

src/Interpreter/concolic_interpreter.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -750,20 +750,16 @@ bool ConcolicInterpreter::i_instr_conversion(Module *m, uint8_t opcode) {
750750
m->symbolic_stack[m->sp] = m->symbolic_stack[m->sp]->extract(31, 0);
751751
break; // i32.wrap/i64
752752
case 0xa8:
753-
// TODO: Symbolic semantics
754-
assert(false);
753+
m->symbolic_stack[m->sp] = z3::fpa_to_sbv(m->symbolic_stack[m->sp].value(), 32);
755754
break; // i32.trunc_s/f32
756755
case 0xa9:
757-
// TODO: Symbolic semantics
758-
assert(false);
756+
m->symbolic_stack[m->sp] = z3::fpa_to_ubv(m->symbolic_stack[m->sp].value(), 32);
759757
break; // i32.trunc_u/f32
760758
case 0xaa:
761-
// TODO: Symbolic semantics
762-
assert(false);
759+
m->symbolic_stack[m->sp] = z3::fpa_to_sbv(m->symbolic_stack[m->sp].value(), 32);
763760
break; // i32.trunc_s/f64
764761
case 0xab:
765-
// TODO: Symbolic semantics
766-
assert(false);
762+
m->symbolic_stack[m->sp] = z3::fpa_to_ubv(m->symbolic_stack[m->sp].value(), 32);
767763
break; // i32.trunc_u/f64
768764
case 0xac:
769765
m->symbolic_stack[m->sp] =

0 commit comments

Comments
 (0)