From 9112d58c065d680b123948562fda62adbc994ad8 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Sat, 25 Apr 2009 18:03:38 -0700 Subject: [PATCH] Dump program right before compiling --- orc/orccompiler.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/orc/orccompiler.c b/orc/orccompiler.c index a62c384..7d9175e 100644 --- a/orc/orccompiler.c +++ b/orc/orccompiler.c @@ -70,6 +70,23 @@ orc_program_compile_for_target (OrcProgram *program, OrcTarget *target) compiler->program = program; compiler->target = target; + { + for(i=0;ivars[i].name, + program->vars[i].size, + program->vars[i].vartype); + } + for(i=0;in_insns;i++){ + ORC_INFO("%d: %s %d %d %d %d", i, + program->insns[i].opcode->name, + program->insns[i].dest_args[0], + program->insns[i].dest_args[1], + program->insns[i].src_args[0], + program->insns[i].src_args[1]); + } + } + memcpy (compiler->insns, program->insns, program->n_insns * sizeof(OrcInstruction)); compiler->n_insns = program->n_insns; @@ -131,8 +148,9 @@ orc_compiler_check_sizes (OrcCompiler *compiler) for(j=0;jdest_size[j] == 0) continue; if (opcode->dest_size[j] != compiler->vars[insn->dest_args[j]].size) { - ORC_PROGRAM_ERROR(compiler, "size mismatch, opcode %s dest %d", - opcode->name, j); + ORC_PROGRAM_ERROR(compiler, "size mismatch, opcode %s dest[%d] is %d should be %d", + opcode->name, j, compiler->vars[insn->dest_args[j]].size, + opcode->dest_size[j]); return; } } @@ -140,8 +158,9 @@ orc_compiler_check_sizes (OrcCompiler *compiler) if (opcode->src_size[j] == 0) continue; if (opcode->src_size[j] != compiler->vars[insn->src_args[j]].size && compiler->vars[insn->src_args[j]].vartype != ORC_VAR_TYPE_PARAM) { - ORC_PROGRAM_ERROR(compiler, "size mismatch, opcode %s src %d", - opcode->name, j); + ORC_PROGRAM_ERROR(compiler, "size mismatch, opcode %s src[%d] is %d should be %d", + opcode->name, j, compiler->vars[insn->src_args[j]].size, + opcode->src_size[j]); return; } } -- 2.7.4