Fix some cppcheck warnings in tgt-vvp

This commit is contained in:
Cary R 2014-12-10 16:25:00 -08:00
parent 0e38843ae9
commit b2d8d41e3f
3 changed files with 19 additions and 19 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013 Stephen Williams (steve@icarus.com) * Copyright (c) 2013-2014 Stephen Williams (steve@icarus.com)
* *
* This source code is free software; you can redistribute it * This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU * and/or modify it in source code form under the terms of the GNU
@ -643,16 +643,16 @@ static void draw_binary_vec4_lrs(ivl_expr_t expr)
// the stack and replace it with the result of the shift. // the stack and replace it with the result of the shift.
switch (ivl_expr_opcode(expr)) { switch (ivl_expr_opcode(expr)) {
case 'l': /* << */ case 'l': /* << */
fprintf(vvp_out, " %%shiftl %u;\n", use_index_reg); fprintf(vvp_out, " %%shiftl %d;\n", use_index_reg);
break; break;
case 'r': /* >> */ case 'r': /* >> */
fprintf(vvp_out, " %%shiftr %u;\n", use_index_reg); fprintf(vvp_out, " %%shiftr %d;\n", use_index_reg);
break; break;
case 'R': /* >>> */ case 'R': /* >>> */
if (ivl_expr_signed(le)) if (ivl_expr_signed(le))
fprintf(vvp_out, " %%shiftr/s %u;\n", use_index_reg); fprintf(vvp_out, " %%shiftr/s %d;\n", use_index_reg);
else else
fprintf(vvp_out, " %%shiftr %u;\n", use_index_reg); fprintf(vvp_out, " %%shiftr %d;\n", use_index_reg);
break; break;
default: default:
assert(0); assert(0);
@ -790,10 +790,10 @@ static void draw_concat_number_vec4(ivl_expr_t expr, int as_concati)
if (accum) { if (accum) {
if (count_pushi) { if (count_pushi) {
fprintf(vvp_out, " %%concati/vec4 %lu, %lu, %u;\n", fprintf(vvp_out, " %%concati/vec4 %lu, %lu, %d;\n",
val0, valx, accum); val0, valx, accum);
} else { } else {
fprintf(vvp_out, " %%pushi/vec4 %lu, %lu, %u;\n", fprintf(vvp_out, " %%pushi/vec4 %lu, %lu, %d;\n",
val0, valx, accum); val0, valx, accum);
} }
} }

View File

@ -143,7 +143,7 @@ static void get_vec_from_lval_slice(ivl_lval_t lval, struct vec_slice_info*slice
draw_eval_vec4(part_off_ex); draw_eval_vec4(part_off_ex);
fprintf(vvp_out, " %%flag_mov %u, 4;\n", slice->u_.part_select_dynamic.x_flag); fprintf(vvp_out, " %%flag_mov %u, 4;\n", slice->u_.part_select_dynamic.x_flag);
fprintf(vvp_out, " %%dup/vec4;\n"); fprintf(vvp_out, " %%dup/vec4;\n");
fprintf(vvp_out, " %%ix/vec4 %u;\n", slice->u_.part_select_dynamic.word_idx_reg); fprintf(vvp_out, " %%ix/vec4 %d;\n", slice->u_.part_select_dynamic.word_idx_reg);
fprintf(vvp_out, " %%part/u %u;\n", wid); fprintf(vvp_out, " %%part/u %u;\n", wid);
} else if (ivl_signal_dimensions(sig) > 0 && word_ix == 0) { } else if (ivl_signal_dimensions(sig) > 0 && word_ix == 0) {
@ -167,7 +167,7 @@ static void get_vec_from_lval_slice(ivl_lval_t lval, struct vec_slice_info*slice
slice->u_.memory_word_dynamic.x_flag = allocate_flag(); slice->u_.memory_word_dynamic.x_flag = allocate_flag();
draw_eval_expr_into_integer(word_ix, slice->u_.memory_word_dynamic.word_idx_reg); draw_eval_expr_into_integer(word_ix, slice->u_.memory_word_dynamic.word_idx_reg);
fprintf(vvp_out, " %%flag_mov %d, 4;\n", slice->u_.memory_word_dynamic.x_flag); fprintf(vvp_out, " %%flag_mov %u, 4;\n", slice->u_.memory_word_dynamic.x_flag);
fprintf(vvp_out, " %%load/vec4a v%p, %d;\n", sig, slice->u_.memory_word_dynamic.word_idx_reg); fprintf(vvp_out, " %%load/vec4a v%p, %d;\n", sig, slice->u_.memory_word_dynamic.word_idx_reg);
} else { } else {
@ -263,7 +263,7 @@ static void put_vec_to_lval_slice(ivl_lval_t lval, struct vec_slice_info*slice,
break; break;
case SLICE_MEMORY_WORD_DYNAMIC: case SLICE_MEMORY_WORD_DYNAMIC:
fprintf(vvp_out, " %%flag_mov 4, %d;\n", slice->u_.memory_word_dynamic.x_flag); fprintf(vvp_out, " %%flag_mov 4, %u;\n", slice->u_.memory_word_dynamic.x_flag);
fprintf(vvp_out, " %%store/vec4a v%p, %d, 0;\n", sig, slice->u_.memory_word_dynamic.word_idx_reg); fprintf(vvp_out, " %%store/vec4a v%p, %d, 0;\n", sig, slice->u_.memory_word_dynamic.word_idx_reg);
clr_word(slice->u_.memory_word_dynamic.word_idx_reg); clr_word(slice->u_.memory_word_dynamic.word_idx_reg);
clr_flag(slice->u_.memory_word_dynamic.x_flag); clr_flag(slice->u_.memory_word_dynamic.x_flag);
@ -381,7 +381,7 @@ static void store_vec4_to_lval(ivl_statement_t net)
/* Note that flag4 is set by the eval above. */ /* Note that flag4 is set by the eval above. */
assert(lsig); assert(lsig);
if (ivl_signal_type(lsig)==IVL_SIT_UWIRE) { if (ivl_signal_type(lsig)==IVL_SIT_UWIRE) {
fprintf(vvp_out, " %%force/vec4/off v%p_0, %u;\n", fprintf(vvp_out, " %%force/vec4/off v%p_0, %d;\n",
lsig, offset_index); lsig, offset_index);
} else { } else {
fprintf(vvp_out, " %%store/vec4 v%p_0, %d, %u;\n", fprintf(vvp_out, " %%store/vec4 v%p_0, %d, %u;\n",
@ -397,7 +397,7 @@ static void store_vec4_to_lval(ivl_statement_t net)
assert(!lsig); assert(!lsig);
ivl_type_t sub_type = draw_lval_expr(nest); ivl_type_t sub_type = draw_lval_expr(nest);
assert(ivl_type_base(sub_type) == IVL_VT_CLASS); assert(ivl_type_base(sub_type) == IVL_VT_CLASS);
fprintf(vvp_out, " %%store/prop/v %u, %u;\n", fprintf(vvp_out, " %%store/prop/v %d, %u;\n",
ivl_lval_property_idx(lval), lwid); ivl_lval_property_idx(lval), lwid);
fprintf(vvp_out, " %%pop/obj 1, 0;\n"); fprintf(vvp_out, " %%pop/obj 1, 0;\n");
@ -449,6 +449,7 @@ static int show_stmt_assign_vector(ivl_statement_t net)
fprintf(vvp_out, " %%vpi_call %u %u \"$ivl_string_method$to_vec\", v%p_0, v%p_0 {0 0 0};\n", fprintf(vvp_out, " %%vpi_call %u %u \"$ivl_string_method$to_vec\", v%p_0, v%p_0 {0 0 0};\n",
ivl_file_table_index(ivl_stmt_file(net)), ivl_stmt_lineno(net), ivl_file_table_index(ivl_stmt_file(net)), ivl_stmt_lineno(net),
ivl_expr_signal(rval), ivl_lval_sig(lval)); ivl_expr_signal(rval), ivl_lval_sig(lval));
if (slices) free(slices);
return 0; return 0;
} else { } else {
@ -532,8 +533,7 @@ static int show_stmt_assign_vector(ivl_statement_t net)
break; break;
} }
if (slices) if (slices) free(slices);
free(slices);
return 0; return 0;
} }

View File

@ -167,7 +167,7 @@ static void assign_to_array_word(ivl_signal_t lsig, ivl_expr_t word_ix,
} }
draw_eval_expr_into_integer(dexp, delay_index); draw_eval_expr_into_integer(dexp, delay_index);
if (word_ix_reg != 3) { if (word_ix_reg != 3) {
fprintf(vvp_out, " %%ix/mov 3, %u;\n", word_ix_reg); fprintf(vvp_out, " %%ix/mov 3, %d;\n", word_ix_reg);
clr_word(word_ix_reg); clr_word(word_ix_reg);
} }
/* Restore the error state since an undefined delay is okay. */ /* Restore the error state since an undefined delay is okay. */
@ -194,14 +194,14 @@ static void assign_to_array_word(ivl_signal_t lsig, ivl_expr_t word_ix,
fprintf(vvp_out, " %%ix/load %d, %lu, %lu; Constant delay\n", fprintf(vvp_out, " %%ix/load %d, %lu, %lu; Constant delay\n",
delay_index, low_d, hig_d); delay_index, low_d, hig_d);
if (word_ix_reg != 3) { if (word_ix_reg != 3) {
fprintf(vvp_out, " %%ix/mov 3, %u;\n", word_ix_reg); fprintf(vvp_out, " %%ix/mov 3, %d;\n", word_ix_reg);
clr_word(word_ix_reg); clr_word(word_ix_reg);
} }
/* If needed use the global error state. */ /* If needed use the global error state. */
if (part_off_ex) { if (part_off_ex) {
fprintf(vvp_out, " %%flag_mov 4, %d;\n", error_flag); fprintf(vvp_out, " %%flag_mov 4, %d;\n", error_flag);
} }
fprintf(vvp_out, " %%assign/vec4/a/d v%p, %d, %u;\n", fprintf(vvp_out, " %%assign/vec4/a/d v%p, %d, %d;\n",
lsig, part_off_reg, delay_index); lsig, part_off_reg, delay_index);
clr_word(delay_index); clr_word(delay_index);
} }
@ -1333,7 +1333,7 @@ static int show_stmt_do_while(ivl_statement_t net, ivl_scope_t sscope)
the result. If the expression evaluates to true, then the result. If the expression evaluates to true, then
branch to the top label. */ branch to the top label. */
int use_flag = draw_eval_condition(ivl_stmt_cond_expr(net)); int use_flag = draw_eval_condition(ivl_stmt_cond_expr(net));
fprintf(vvp_out, " %%jmp/1 T_%u.%u, %u;\n", fprintf(vvp_out, " %%jmp/1 T_%u.%u, %d;\n",
thread_count, top_label, use_flag); thread_count, top_label, use_flag);
clr_flag(use_flag); clr_flag(use_flag);
@ -1677,7 +1677,7 @@ static int show_stmt_while(ivl_statement_t net, ivl_scope_t sscope)
the result. If the expression evaluates to false, then the result. If the expression evaluates to false, then
branch to the out label. */ branch to the out label. */
int use_flag = draw_eval_condition(ivl_stmt_cond_expr(net)); int use_flag = draw_eval_condition(ivl_stmt_cond_expr(net));
fprintf(vvp_out, " %%jmp/0xz T_%u.%u, %u;\n", fprintf(vvp_out, " %%jmp/0xz T_%u.%u, %d;\n",
thread_count, out_label, use_flag); thread_count, out_label, use_flag);
clr_flag(use_flag); clr_flag(use_flag);