codegen: implement -, *