dont use callvirt for structs
invert if
simplify
use ldarga for value types

fixes 9