* src/vm/jit/parse.c (parse): New unresolved reference scheme: Data structures
[cacao.git] / src / vm / jit / intrp / disass.c
index 20edd781579222793266e9dc76e2ce3a9c942128..85aa7642b81998726e239effd61746479cbad342 100644 (file)
@@ -1,9 +1,9 @@
-/* src/vm/jit/intrp/disass.c - primitive disassembler for alpha machine code
+/* src/vm/jit/intrp/disass.c - disassembler wrapper for interpreter
 
-   Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-   R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-   C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-   Institut f. Computersprachen - TU Wien
+   Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+   C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
+   E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
+   J. Wenninger, Institut f. Computersprachen - TU Wien
 
    This file is part of CACAO.
 
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA.
 
-   Contact: cacao@complang.tuwien.ac.at
+   Contact: cacao@cacaojvm.org
 
    Authors: Andreas Krall
             Reinhard Grafl
 
-   $Id: disass.c 3180 2005-09-15 15:53:56Z twisti $
+   Changes: Christian Thalinger
+            Anton Ertl
+                       Edwin Steiner
+
+   $Id: disass.c 4760 2006-04-12 20:06:23Z edwin $
 
 */
 
 
+#include "config.h"
+
 #include <stdio.h>
 
-#include "vm/jit/intrp/intrp.h"
+#include "vm/types.h"
 
-char *regs[] = {
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-       NULL,
-};
+#include "vm/jit/intrp/intrp.h"
 
 
 /* function disassinstr ********************************************************
@@ -90,9 +52,9 @@ char *regs[] = {
 
 *******************************************************************************/
 
-u1 *disassinstr(u1 *code)
+u1 *intrp_disassinstr(u1 *code)
 {
-       return (u1 *)vm_disassemble_inst((Inst *)code, vm_prim);
+       return (u1 *) vm_disassemble_inst((Inst *) code, vm_prim);
 }
 
 
@@ -104,9 +66,9 @@ u1 *disassinstr(u1 *code)
 
 *******************************************************************************/
 
-void disassemble(u1 *start, u1 *end)
+void intrp_disassemble(u1 *start, u1 *end)
 {
-       printf ("  --- disassembler listing ---\n");
+       printf("  --- disassembler listing ---\n");
        vm_disassemble((Inst *) start, (Inst *) end, vm_prim);
 }
 
@@ -199,6 +161,17 @@ void printarg_af      (functionptr        af      )
        fprintf(vm_out, "f: %p", (void *)af);
 }
 
+void printarg_afi     (fieldinfo *        afi      )
+{
+       if (afi) {
+               utf_fprint_classname(vm_out, afi->class->name);
+               fprintf(vm_out, ".");
+               utf_fprint(vm_out, afi->name);
+               utf_fprint(vm_out, afi->descriptor);
+       } else
+               fprintf(vm_out, "fi=NULL");
+}
+
 void printarg_am      (methodinfo *       am      )
 {
        if (am) {
@@ -234,7 +207,7 @@ void printarg_auf     (unresolved_field * auf     )
 void printarg_aum     (unresolved_method *aum     )
 {
        if (aum) {
-               utf_fprint_classname(vm_out, aum->methodref->classref->name);
+               utf_fprint_classname(vm_out, METHODREF_CLASSNAME(aum->methodref));
                fprintf(vm_out, ".");
                utf_fprint(vm_out, aum->methodref->name);
                utf_fprint(vm_out, aum->methodref->descriptor);
@@ -263,4 +236,5 @@ void printarg_avftbl  (vftbl_t *          avftbl  )
  * c-basic-offset: 4
  * tab-width: 4
  * End:
+ * vim:noexpandtab:sw=4:ts=4:
  */