* Removed all Id tags.
[cacao.git] / src / vm / jit / intrp / disass.c
index d2595678b148c6875db897c6496a3c9981ccd3b5..5d5098990218ae758f65dbdb79711c42c418d90c 100644 (file)
@@ -29,8 +29,7 @@
 
    Changes: Christian Thalinger
             Anton Ertl
-
-   $Id: disass.c 4758 2006-04-12 17:51:10Z edwin $
+                       Edwin Steiner
 
 */
 
 
 u1 *intrp_disassinstr(u1 *code)
 {
-       return (u1 *) vm_disassemble_inst((Inst *) code, vm_prim);
+       FILE *savedout;
+       u1   *r;
+
+       savedout = vm_out;
+       vm_out = stdout;
+       r = (u1 *) vm_disassemble_inst((Inst *) code, vm_prim);
+       vm_out = savedout;
+
+       return r;
 }
 
 
@@ -67,8 +74,13 @@ u1 *intrp_disassinstr(u1 *code)
 
 void intrp_disassemble(u1 *start, u1 *end)
 {
+       FILE *savedout;
+
        printf("  --- disassembler listing ---\n");
+       savedout = vm_out;
+       vm_out = stdout;
        vm_disassemble((Inst *) start, (Inst *) end, vm_prim);
+       vm_out = savedout;
 }
 
 
@@ -140,7 +152,7 @@ void printarg_aaTarget(Inst **            aaTarget)
 void printarg_aClass  (classinfo *        aClass  )
 {
        if (aClass)
-               utf_fprint_classname(vm_out, aClass->name);
+               utf_fprint_printable_ascii_classname(vm_out, aClass->name);
        else
                fprintf(vm_out, "NULL");
 }
@@ -160,13 +172,24 @@ void printarg_af      (functionptr        af      )
        fprintf(vm_out, "f: %p", (void *)af);
 }
 
+void printarg_afi     (fieldinfo *        afi      )
+{
+       if (afi) {
+               utf_fprint_printable_ascii_classname(vm_out, afi->class->name);
+               fprintf(vm_out, ".");
+               utf_fprint_printable_ascii(vm_out, afi->name);
+               utf_fprint_printable_ascii(vm_out, afi->descriptor);
+       } else
+               fprintf(vm_out, "fi=NULL");
+}
+
 void printarg_am      (methodinfo *       am      )
 {
        if (am) {
-               utf_fprint_classname(vm_out, am->class->name);
+               utf_fprint_printable_ascii_classname(vm_out, am->class->name);
                fprintf(vm_out, ".");
-               utf_fprint(vm_out, am->name);
-               utf_fprint(vm_out, am->descriptor);
+               utf_fprint_printable_ascii(vm_out, am->name);
+               utf_fprint_printable_ascii(vm_out, am->descriptor);
        } else
                fprintf(vm_out, "m=NULL");
 }
@@ -184,9 +207,9 @@ void printarg_ainst   (Inst *             ainst   )
 void printarg_auf     (unresolved_field * auf     )
 {
        if (auf) {
-               utf_fprint(vm_out, auf->fieldref->name);
+               utf_fprint_printable_ascii(vm_out, auf->fieldref->name);
                fprintf(vm_out, " (type ");
-               utf_fprint(vm_out, auf->fieldref->descriptor);
+               utf_fprint_printable_ascii(vm_out, auf->fieldref->descriptor);
                fprintf(vm_out, ")");
        } else
                fprintf(vm_out, "NULL");
@@ -195,10 +218,10 @@ void printarg_auf     (unresolved_field * auf     )
 void printarg_aum     (unresolved_method *aum     )
 {
        if (aum) {
-               utf_fprint_classname(vm_out, METHODREF_CLASSNAME(aum->methodref));
+               utf_fprint_printable_ascii_classname(vm_out, METHODREF_CLASSNAME(aum->methodref));
                fprintf(vm_out, ".");
-               utf_fprint(vm_out, aum->methodref->name);
-               utf_fprint(vm_out, aum->methodref->descriptor);
+               utf_fprint_printable_ascii(vm_out, aum->methodref->name);
+               utf_fprint_printable_ascii(vm_out, aum->methodref->descriptor);
        } else
                fprintf(vm_out, "NULL");
 }
@@ -207,7 +230,7 @@ void printarg_avftbl  (vftbl_t *          avftbl  )
 {
        if (avftbl) {
                fprintf(vm_out, "vftbl: ");
-               utf_fprint_classname(vm_out, avftbl->class->name);
+               utf_fprint_printable_ascii_classname(vm_out, avftbl->class->name);
        } else
                fprintf(vm_out, "NULL");
 }
@@ -224,4 +247,5 @@ void printarg_avftbl  (vftbl_t *          avftbl  )
  * c-basic-offset: 4
  * tab-width: 4
  * End:
+ * vim:noexpandtab:sw=4:ts=4:
  */