7096010: c2: running with +PrintOptoAssembly crashes the VM when $constanttablebase is used

ADLC generates code to prepare the register string to be printed in a char array but then calls print without the char array as an argument.

Reviewed-by: never
This commit is contained in:
Roland Westrelin 2011-09-30 13:47:26 +02:00
parent 0219cf5423
commit 8ae50d45a4

View file

@ -1225,7 +1225,7 @@ void InstructForm::rep_var_format(FILE *fp, const char *rep_var) {
// Handle special constant table variables. // Handle special constant table variables.
if (strcmp(rep_var, "constanttablebase") == 0) { if (strcmp(rep_var, "constanttablebase") == 0) {
fprintf(fp, "char reg[128]; ra->dump_register(in(mach_constant_base_node_input()), reg);\n"); fprintf(fp, "char reg[128]; ra->dump_register(in(mach_constant_base_node_input()), reg);\n");
fprintf(fp, "st->print(\"%%s\");\n"); fprintf(fp, " st->print(\"%%s\", reg);\n");
return; return;
} }
if (strcmp(rep_var, "constantoffset") == 0) { if (strcmp(rep_var, "constantoffset") == 0) {