Exemplo n.º 1
0
int64_t
Function::stackDeltaConcrete() const {
    BaseSemantics::SValuePtr v = stackDelta();
    if (v && v->is_number() && v->get_width() <= 64)
        return IntegerOps::signExtend2<uint64_t>(v->get_number(), v->get_width(), 64);
    return SgAsmInstruction::INVALID_STACK_DELTA;
}
BaseSemantics::SValuePtr RiscOperators::readMemory(const RegisterDescriptor &segreg,
		const BaseSemantics::SValuePtr &addr,
		const BaseSemantics::SValuePtr &dflt,
		const BaseSemantics::SValuePtr &cond) {

	// XXX: we just skip large memory queries for now and return '0'. We probably should do something smarter.
	if (dflt->get_width() > 32) {
		return PartialSymbolicSemantics::SValue::instance(dflt->get_width());
	}
	return PartialSymbolicSemantics::RiscOperators::readMemory(segreg, addr, dflt, cond);
}