First gcc-compiled Java program runs!

Per Bothner bothner at cygnus.com
Sat Jun 14 07:58:27 PDT 1997


The following little Java program compiles under "cc1java"
(the Gcc front-end for Java that reads a .class file and
emits assembly code).  It runs correctly, using Kaffe (a
modified pre-0.9.1 snapshot) as the run-time engine.
It took 16 seconds to execute.  In comparison, the
same programs compiled by Kaffe's JIT takes 26 seconds,
and Sun's JDK 1.1 takes 88 seconds to run the same program.
In all cases, this is under Solaris 2.5.

NOTE: THE CC1JAVA COMPILER IS *NOT* USABLE YET.  A NUMBER OF
BYTECODES HAVE NOT BEEN IMPLEMENTED AND NEITHER HAS
EXCEPTION HANDLING.

	--Per Bothner
Cygnus Solutions     bothner at cygnus.com     http://www.cygnus.com/~bothner

Java source code:

class Fib {

  public static final int limit = 36;

  public static void main(String args[])
  {
    for (int i = 0;  i < limit;  i++) {
      System.out.print ("Fib("+i+") = " + fib_i(i)+" [iterative]");
      System.out.println (" = " + fib_r(i)+" [recursive]");
    }
  }

  static int fib_i (int i)
  {
    int x0 = 1;
    int x1 = 1;
    while (--i >= 0) {
      int x2 = x0 + x1;
      x0 = x1;
      x1 = x2;
    }
    return x0;
  }

  static int fib_r (int i)
  {
    if (i <= 1)
      return 1;
    return fib_r(i-1) + fib_r(i-2);
  }
}

Output:

Fib(0) = 1 [iterative] = 1 [recursive]
Fib(1) = 1 [iterative] = 1 [recursive]
Fib(2) = 2 [iterative] = 2 [recursive]
Fib(3) = 3 [iterative] = 3 [recursive]
Fib(4) = 5 [iterative] = 5 [recursive]
Fib(5) = 8 [iterative] = 8 [recursive]
Fib(6) = 13 [iterative] = 13 [recursive]
Fib(7) = 21 [iterative] = 21 [recursive]
Fib(8) = 34 [iterative] = 34 [recursive]
Fib(9) = 55 [iterative] = 55 [recursive]
Fib(10) = 89 [iterative] = 89 [recursive]
Fib(11) = 144 [iterative] = 144 [recursive]
Fib(12) = 233 [iterative] = 233 [recursive]
Fib(13) = 377 [iterative] = 377 [recursive]
Fib(14) = 610 [iterative] = 610 [recursive]
Fib(15) = 987 [iterative] = 987 [recursive]
Fib(16) = 1597 [iterative] = 1597 [recursive]
Fib(17) = 2584 [iterative] = 2584 [recursive]
Fib(18) = 4181 [iterative] = 4181 [recursive]
Fib(19) = 6765 [iterative] = 6765 [recursive]
Fib(20) = 10946 [iterative] = 10946 [recursive]
Fib(21) = 17711 [iterative] = 17711 [recursive]
Fib(22) = 28657 [iterative] = 28657 [recursive]
Fib(23) = 46368 [iterative] = 46368 [recursive]
Fib(24) = 75025 [iterative] = 75025 [recursive]
Fib(25) = 121393 [iterative] = 121393 [recursive]
Fib(26) = 196418 [iterative] = 196418 [recursive]
Fib(27) = 317811 [iterative] = 317811 [recursive]
Fib(28) = 514229 [iterative] = 514229 [recursive]
Fib(29) = 832040 [iterative] = 832040 [recursive]
Fib(30) = 1346269 [iterative] = 1346269 [recursive]
Fib(31) = 2178309 [iterative] = 2178309 [recursive]
Fib(32) = 3524578 [iterative] = 3524578 [recursive]
Fib(33) = 5702887 [iterative] = 5702887 [recursive]
Fib(34) = 9227465 [iterative] = 9227465 [recursive]
Fib(35) = 14930352 [iterative] = 14930352 [recursive]

Generated assembly code:

	.file	"Fib.java"
! GNU Java version cygnus-2.7.2-970602 (sparc-sun-solaris2.5.1) compiled by GNU C version cygnus-2.7-96q4.
! options passed:  -g -O
! options enabled:  -fdefer-pop -fomit-frame-pointer -fthread-jumps
! -fpeephole -ffunction-cse -finline -fkeep-static-consts
! -fpcc-struct-return -fdelayed-branch -fexceptions -fsjlj-exceptions
! -fcommon -fverbose-asm -fgnu-linker -mepilogue -mapp-regs

.stabs "/home/bothner/solaris2/gcc/java/",100,0,0,.LLtext0
.stabs "Fib.java",100,0,0,.LLtext0
.section	".text"
.LLtext0:
	.stabs	"gcc2_compiled.", 0x3c, 0, 0, 0
.stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0
.stabs "char:t(0,2)=@s16;-20;",128,0,0,0
.stabs "byte:t(0,3)=r(0,3);-128;127;",128,0,0,0
.stabs "short:t(0,4)=r(0,4);-32768;32767;",128,0,0,0
.stabs "long:t(0,5)=r(0,1);01000000000000000000000;0777777777777777777777;",128,0,0,0
.stabs "unsigned byte:t(0,6)=r(0,6);0;255;",128,0,0,0
.stabs "unsigned short:t(0,7)=r(0,7);0;65535;",128,0,0,0
.stabs "unsigned int:t(0,8)=r(0,8);0;-1;",128,0,0,0
.stabs "unsigned long:t(0,9)=r(0,1);0000000000000;01777777777777777777777;",128,0,0,0
.stabs "boolean:t(0,10)=@s8;-16;",128,0,0,0
.stabs "float:t(0,11)=r(0,1);4;0;",128,0,0,0
.stabs "double:t(0,12)=r(0,1);0;0;",128,0,0,0
.stabs "promoted_byte:t(0,13)=r(0,13);-2147483648;2147483647;",128,0,0,0
.stabs "promoted_short:t(0,14)=r(0,14);-2147483648;2147483647;",128,0,0,0
.stabs "promoted_char:t(0,15)=@s32;-20;",128,0,0,0
.stabs "promoted_boolean:t(0,16)=@s32;-16;",128,0,0,0
.stabs "methodtable:t(0,17)=s0;",128,0,0,0
.stabs "constants:t(0,18)=s12size:(0,8),0,32;tags:(0,19)=*(0,20)=(0,20),32,32;data:(0,19),64,32;;",128,0,0,0
.stabs "Object:t(0,21)=s4dtable:(0,22)=*(0,23)=xsdispatchTable:,0,32;;",128,0,0,0
.stabs "Class:t(0,24)=s84head:(0,21),0,32;next:(0,25)=*(0,24),32,32;name:(0,26)=*(0,27)=s4hash:(0,7),0,16;length:(0,7),16,16;;,64,32;accflags:(0,7),96,16;superclass:(0,25),128,32;subclass_head:(0,25),160,32;subclass_next:(0,25),192,32;constants:(0,18),224,96;methods:(0,28)=*(0,29)=xsMethod:,320,32;nmethods:(0,4),352,16;msize:(0,4),368,16;fields:(0,30)=*(0,31)=xsField:,384,32;bfsize:(0,1),416,32;nfields:(0,4),448,16;nsfields:(0,4),464,16;dtable:(0,22),480,32;interfaces:(0,32)=*(0,25),512,32;interface_len:(0,1),544,32;loader:(0,19),576,32;state:(0,1),608,32;final:(0,1),640,32;;",128,0,0,0
.stabs "Field:t(0,31)=s16name:(0,26),0,32;type:(0,25),32,32;accflags:(0,7),64,16;bsize:(0,7),80,16;info:(0,33)=u4boffset:(0,1),0,32;addr:(0,19),0,32;;,96,32;;",128,0,0,0
.stabs "dispatchTable:t(0,23)=s12class:(0,25),0,32;methods:(0,34)=ar(0,0);0;1;(0,19),32,64;;",128,0,0,0
.stabs "Method:t(0,29)=s44name:(0,26),0,32;signature:(0,26),32,32;accflags:(0,7),64,16;stacksz:(0,7),80,16;localsz:(0,7),96,16;ncode:(0,19),128,32;ncode_start:(0,19),160,32;ncode_end:(0,19),192,32;class:(0,25),224,32;lines:(0,35)=*(0,36)=s4length:(0,8),0,32;;,256,32;exception_table:(0,37)=*(0,38)=s16start_pc:(0,19),0,32;end_pc:(0,19),32,32;handler_pc:(0,19),64,32;catch_type:(0,25),96,32;;,288,32;idx:(0,1),320,32;;",128,0,0,0
.stabs "Fib:t(0,39)=s0!1,020,(0,40)=s0getClass::(0,41)=#(0,40),(0,42)=*(0,43)=xsjava.lang.Class:,(0,44)=*(0,40);:java_lang_Object_getClass;2A*0;(0,40);;hashCode::(0,45)=#(0,40),(0,1),(0,44);:java_lang_Object_hashCode;2A*1;(0,40);;equals::(0,46)=#(0,40),(0,16),(0,44),(0,44);:java_lang_Object_equals_2;2A*2;(0,40);;clone::(0,47)=#(0,40),(0,44),(0,44);:java_lang_Object_clone;1A*3;(0,40);;toString::(0,48)=#(0,40),(0,49)=*(0,50)=xsjava.lang.String:,(0,44);:java_lang_Object_toString_4;2A*4;(0,40);;notify::(0,51)=#(0,40),(0,20),(0,44);:java_lang_Object_notify;2A*5;(0,40);;notifyAll::(0,51):java_lang_Object_notifyAll;2A*6;(0,40);;wait::(0,52)=#(0,40),(0,20),(0,44),(0,5);:java_lang_Object_wait;2A*7;(0,40);(0,53)=#(0,40),(0,20),(0,44),(0,5),(0,1);:java_lang_Object_wait_8;2A*8;(0,40);(0,51):java_lang_Object_wait_9;2A*9;(0,40);;finalize::(0,51):java_lang_Object_finalize_10;1A*10;(0,40);;\\",128,0,0,0
.stabs "<init>::(0,51):java_lang_Object_INIT_11;2A.;;;limit:/2(0,1):_ST_Fib_limit;main::(0,54)=f(0,20):Fib_main_0;2A?;fib_i::(0,55)=f(0,1):Fib_fib_i_1;2A?;fib_r::(0,55):Fib_fib_r_2;2A?;<init>::(0,56)=#(0,39),(0,20),(0,57)=*(0,39);:Fib_INIT_3;2A.;;",128,0,0,0
.section	".data"
	.align 2
	.type	 _Utf1java_lang_System.0,#object
	.size	 _Utf1java_lang_System.0,4
_Utf1java_lang_System.0:
	.uahalf	4237
	.uahalf	16
	.ascii	"java/lang/System"
	.skip 1
	.align 2
	.type	 _Utf2java_lang_StringBuffer.1,#object
	.size	 _Utf2java_lang_StringBuffer.1,4
_Utf2java_lang_StringBuffer.1:
	.uahalf	34237
	.uahalf	22
	.ascii	"java/lang/StringBuffer"
	.skip 1
	.align 2
	.type	 _Utf3Fib_.2,#object
	.size	 _Utf3Fib_.2,4
_Utf3Fib_.2:
	.uahalf	23105
	.uahalf	4
	.ascii	"Fib("
	.skip 1
	.align 2
	.type	 _Utf4____.3,#object
	.size	 _Utf4____.3,4
_Utf4____.3:
	.uahalf	25718
	.uahalf	4
	.ascii	") = "
	.skip 1
	.align 2
	.type	 _Utf5__iterative_.4,#object
	.size	 _Utf5__iterative_.4,4
_Utf5__iterative_.4:
	.uahalf	63121
	.uahalf	12
	.ascii	" [iterative]"
	.skip 1
	.align 2
	.type	 _Utf6___.5,#object
	.size	 _Utf6___.5,4
_Utf6___.5:
	.uahalf	46097
	.uahalf	3
	.ascii	" = "
	.skip 1
	.align 2
	.type	 _Utf7__recursive_.6,#object
	.size	 _Utf7__recursive_.6,4
_Utf7__recursive_.6:
	.uahalf	16772
	.uahalf	12
	.ascii	" [recursive]"
	.skip 1
.section	".text"
	.align 4
.stabs "Fib_main_0:f(0,20)",36,0,0,Fib_main_0
.stabs "args:P(0,58)=*(0,59)=xs[Ljava/lang/String;:",64,0,0,24
	.type	 Fib_main_0,#function
	.proc	020
Fib_main_0:
.stabn 68,0,0,.LM1-Fib_main_0
.LM1:
	!#PROLOGUE# 0
	save %sp,-112,%sp
	!#PROLOGUE# 1
.LLBB2:
.stabn 68,0,7,.LM2-Fib_main_0
.LM2:
	b .LL3
	mov 0,%l4
.LL4:
.stabn 68,0,8,.LM3-Fib_main_0
.LM3:
	or %l1,%lo(_CD_Fib+8),%l0
	call soft_new,0
	ld [%l1+%lo(_CD_Fib+8)],%o0
	mov %o0,%l2
	ld [%l0-4],%o0
	ld [%o0+48],%o0
	ld [%o0+28],%o0
	ld [%o0],%l3
	ld [%l1+%lo(_CD_Fib+8)],%o0
	ld [%o0+40],%o0
	ld [%o0+104],%o2
	mov %l2,%o0
	call %o2,0
	ld [%l0+4],%o1
	ld [%l2],%o0
	ld [%o0+104],%o2
	mov %l2,%o0
	call %o2,0
	mov %l4,%o1
	mov %o0,%l2
	ld [%l2],%o0
	ld [%o0+84],%o2
	mov %l2,%o0
	call %o2,0
	ld [%l0+8],%o1
	mov %o0,%l2
	call Fib_fib_i_1,0
	mov %l4,%o0
	mov %o0,%o1
	ld [%l2],%o0
	ld [%o0+104],%o2
	call %o2,0
	mov %l2,%o0
	mov %o0,%l2
	ld [%l2],%o0
	ld [%o0+84],%o2
	mov %l2,%o0
	call %o2,0
	ld [%l0+12],%o1
	mov %o0,%l2
	ld [%l2],%o0
	ld [%o0+20],%o1
	call %o1,0
	mov %l2,%o0
	mov %o0,%l2
	ld [%l3],%o0
	ld [%o0+120],%o2
	mov %l3,%o0
	call %o2,0
	mov %l2,%o1
.stabn 68,0,9,.LM4-Fib_main_0
.LM4:
	call soft_new,0
	ld [%l1+%lo(_CD_Fib+8)],%o0
	mov %o0,%l2
	ld [%l0-4],%o0
	ld [%o0+48],%o0
	ld [%o0+28],%o0
	ld [%o0],%l3
	ld [%l1+%lo(_CD_Fib+8)],%o0
	ld [%o0+40],%o0
	ld [%o0+104],%o2
	mov %l2,%o0
	call %o2,0
	ld [%l0+16],%o1
	call Fib_fib_r_2,0
	mov %l4,%o0
	mov %o0,%o1
	ld [%l2],%o0
	ld [%o0+104],%o2
	call %o2,0
	mov %l2,%o0
	mov %o0,%l2
	ld [%l2],%o0
	ld [%o0+84],%o2
	mov %l2,%o0
	call %o2,0
	ld [%l0+20],%o1
	mov %o0,%l2
	ld [%l2],%o0
	ld [%o0+20],%o1
	call %o1,0
	mov %l2,%o0
	mov %o0,%l2
	ld [%l3],%o0
	ld [%o0+160],%o2
	mov %l3,%o0
	call %o2,0
	mov %l2,%o1
.stabn 68,0,7,.LM5-Fib_main_0
.LM5:
	add %l4,1,%l4
.LL3:
	cmp %l4,35
	ble .LL4
	sethi %hi(_CD_Fib+8),%l1
.stabn 68,0,5,.LM6-Fib_main_0
.LM6:
.LLBE2:
	ret
	restore
.LLfe1:
	.size	 Fib_main_0,.LLfe1-Fib_main_0
.stabn 192,0,0,.LLBB2-Fib_main_0
.stabn 224,0,0,.LLBE2-Fib_main_0
.LLscope0:
.stabs "",36,0,0,.LLscope0-Fib_main_0
	.align 4
.stabs "Fib_fib_i_1:f(0,1)",36,0,0,Fib_fib_i_1
.stabs "i:P(0,1)",64,0,5,9
	.type	 Fib_fib_i_1,#function
	.proc	04
Fib_fib_i_1:
.stabn 68,0,5,.LM7-Fib_fib_i_1
.LM7:
	!#PROLOGUE# 0
	!#PROLOGUE# 1
	mov %o0,%o1
.LLBB3:
.stabn 68,0,15,.LM8-Fib_fib_i_1
.LM8:
	mov 1,%o0
.stabn 68,0,17,.LM9-Fib_fib_i_1
.LM9:
	b .LL9
	mov %o0,%g3
.LL10:
.stabn 68,0,19,.LM10-Fib_fib_i_1
.LM10:
	mov %g3,%o0
.stabn 68,0,20,.LM11-Fib_fib_i_1
.LM11:
	mov %g2,%g3
.LL9:
.stabn 68,0,17,.LM12-Fib_fib_i_1
.LM12:
	addcc %o1,-1,%o1
	bpos .LL10
	add %o0,%g3,%g2
.stabn 68,0,22,.LM13-Fib_fib_i_1
.LM13:
.LLBE3:
	retl
	nop
.LLfe2:
	.size	 Fib_fib_i_1,.LLfe2-Fib_fib_i_1
.stabn 192,0,0,.LLBB3-Fib_fib_i_1
.stabn 224,0,0,.LLBE3-Fib_fib_i_1
.LLscope1:
.stabs "",36,0,0,.LLscope1-Fib_fib_i_1
	.align 4
.stabs "Fib_fib_r_2:f(0,1)",36,0,0,Fib_fib_r_2
.stabs "i:P(0,1)",64,0,22,16
	.type	 Fib_fib_r_2,#function
	.proc	04
Fib_fib_r_2:
.stabn 68,0,22,.LM14-Fib_fib_r_2
.LM14:
	!#PROLOGUE# 0
	save %sp,-112,%sp
	!#PROLOGUE# 1
	mov %i0,%l0
.LLBB4:
.stabn 68,0,27,.LM15-Fib_fib_r_2
.LM15:
	cmp %l0,1
	ble,a .LL15
	mov 1,%i0
.stabn 68,0,29,.LM16-Fib_fib_r_2
.LM16:
	call Fib_fib_r_2,0
	add %l0,-1,%o0
	mov %o0,%i0
	call Fib_fib_r_2,0
	add %l0,-2,%o0
	add %i0,%o0,%i0
.LL15:
.stabn 68,0,28,.LM17-Fib_fib_r_2
.LM17:
.LLBE4:
.stabn 68,0,29,.LM18-Fib_fib_r_2
.LM18:
	ret
	restore
.LLfe3:
	.size	 Fib_fib_r_2,.LLfe3-Fib_fib_r_2
.stabn 192,0,0,.LLBB4-Fib_fib_r_2
.stabn 224,0,0,.LLBE4-Fib_fib_r_2
.LLscope2:
.stabs "",36,0,0,.LLscope2-Fib_fib_r_2
.section	".data"
	.align 2
	.type	 _Utf8java_lang_Object.7,#object
	.size	 _Utf8java_lang_Object.7,4
_Utf8java_lang_Object.7:
	.uahalf	4237
	.uahalf	16
	.ascii	"java/lang/Object"
	.skip 1
.section	".text"
	.align 4
.stabs "Fib_INIT_3:f(0,20)",36,0,0,Fib_INIT_3
.stabs "this:P(0,57)",64,0,29,24
	.type	 Fib_INIT_3,#function
	.proc	020
Fib_INIT_3:
.stabn 68,0,29,.LM19-Fib_INIT_3
.LM19:
	!#PROLOGUE# 0
	save %sp,-112,%sp
	!#PROLOGUE# 1
.LLBB5:
.stabn 68,0,1,.LM20-Fib_INIT_3
.LM20:
	sethi %hi(_CD_Fib+32),%o0
	ld [%o0+%lo(_CD_Fib+32)],%o0
	ld [%o0+40],%o0
	ld [%o0+500],%o1
	call %o1,0
	mov %i0,%o0
.LLBE5:
	ret
	restore
.LLfe4:
	.size	 Fib_INIT_3,.LLfe4-Fib_INIT_3
.stabn 192,0,0,.LLBB5-Fib_INIT_3
.stabn 224,0,0,.LLBE5-Fib_INIT_3
.LLscope3:
.stabs "",36,0,0,.LLscope3-Fib_INIT_3
.section	".data"
	.align 2
	.type	 _Utf9limit,#object
	.size	 _Utf9limit,4
_Utf9limit:
	.uahalf	983
	.uahalf	5
	.ascii	"limit"
	.skip 1
	.global _ST_Fib_limit
.stabs "_ST_Fib_limit:G(0,1)",32,0,0,0
	.align 4
	.type	 _ST_Fib_limit,#object
	.size	 _ST_Fib_limit,4
_ST_Fib_limit:
	.uaword	36
	.align 4
	.type	 _FL_Fib,#object
	.size	 _FL_Fib,16
_FL_Fib:
	.uaword	_Utf9limit
	.uaword	intClass
	.uahalf	25
	.uahalf	4
	.uaword	_ST_Fib_limit
	.align 2
	.type	 _Utf10main,#object
	.size	 _Utf10main,4
_Utf10main:
	.uahalf	21869
	.uahalf	4
	.ascii	"main"
	.skip 1
	.align 2
	.type	 _Utf11__Ljava_lang_String__V,#object
	.size	 _Utf11__Ljava_lang_String__V,4
_Utf11__Ljava_lang_String__V:
	.uahalf	65157
	.uahalf	22
	.ascii	"([Ljava/lang/String;)V"
	.skip 1
	.align 2
	.type	 _Utf12fib_i,#object
	.size	 _Utf12fib_i,4
_Utf12fib_i:
	.uahalf	12769
	.uahalf	5
	.ascii	"fib_i"
	.skip 1
	.align 2
	.type	 _Utf13_I_I,#object
	.size	 _Utf13_I_I,4
_Utf13_I_I:
	.uahalf	30495
	.uahalf	4
	.ascii	"(I)I"
	.skip 1
	.align 2
	.type	 _Utf14fib_r,#object
	.size	 _Utf14fib_r,4
_Utf14fib_r:
	.uahalf	12778
	.uahalf	5
	.ascii	"fib_r"
	.skip 1
	.align 2
	.type	 _Utf15_init_,#object
	.size	 _Utf15_init_,4
_Utf15_init_:
	.uahalf	19518
	.uahalf	6
	.ascii	"<init>"
	.skip 1
	.align 2
	.type	 _Utf16__V,#object
	.size	 _Utf16__V,4
_Utf16__V:
	.uahalf	56363
	.uahalf	3
	.ascii	"()V"
	.skip 1
	.align 4
	.type	 _MT_Fib,#object
	.size	 _MT_Fib,176
_MT_Fib:
	.uaword	_Utf10main
	.uaword	_Utf11__Ljava_lang_String__V
	.uahalf	16393
	.uahalf	4
	.uahalf	2
	.skip 2
	.uaword	Fib_main_0
	.uaword	0
	.uaword	0
	.uaword	_CL_Fib
	.uaword	0
	.uaword	0
	.uaword	0
	.uaword	_Utf12fib_i
	.uaword	_Utf13_I_I
	.uahalf	16392
	.uahalf	2
	.uahalf	4
	.skip 2
	.uaword	Fib_fib_i_1
	.uaword	0
	.uaword	0
	.uaword	_CL_Fib
	.uaword	0
	.uaword	0
	.uaword	0
	.uaword	_Utf14fib_r
	.uaword	_Utf13_I_I
	.uahalf	16392
	.uahalf	3
	.uahalf	1
	.skip 2
	.uaword	Fib_fib_r_2
	.uaword	0
	.uaword	0
	.uaword	_CL_Fib
	.uaword	0
	.uaword	0
	.uaword	0
	.uaword	_Utf15_init_
	.uaword	_Utf16__V
	.uahalf	16384
	.uahalf	1
	.uahalf	1
	.skip 2
	.uaword	Fib_INIT_3
	.uaword	0
	.uaword	0
	.uaword	_CL_Fib
	.uaword	0
	.uaword	0
	.uaword	0
.stabs "_CD_Fib:S(0,60)=ar(0,0);0;8;(0,19)",38,0,8,_CD_Fib
	.align 4
	.type	 _CD_Fib,#object
	.size	 _CD_Fib,36
_CD_Fib:
	.uaword	0
	.uaword	_Utf1java_lang_System.0
	.uaword	_Utf2java_lang_StringBuffer.1
	.uaword	_Utf3Fib_.2
	.uaword	_Utf4____.3
	.uaword	_Utf5__iterative_.4
	.uaword	_Utf6___.5
	.uaword	_Utf7__recursive_.6
	.uaword	_Utf8java_lang_Object.7
.stabs "_CT_Fib:S(0,61)=ar(0,0);0;8;(0,6)",38,0,1,_CT_Fib
	.align 8
	.type	 _CT_Fib,#object
	.size	 _CT_Fib,9
_CT_Fib:
	.byte	0
	.byte	7
	.byte	7
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	8
	.byte	7
	.align 2
	.type	 _Utf17Fib,#object
	.size	 _Utf17Fib,4
_Utf17Fib:
	.uahalf	34277
	.uahalf	3
	.ascii	"Fib"
	.skip 1
	.global _CL_Fib
.stabs "_CL_Fib:G(0,24)",32,0,1,0
	.align 4
	.type	 _CL_Fib,#object
	.size	 _CL_Fib,84
_CL_Fib:
	.skip 4
	.uaword	0
	.uaword	_Utf17Fib
	.uahalf	0
	.skip 2
	.uaword	8
	.uaword	0
	.uaword	0
	.uaword	9
	.uaword	_CT_Fib
	.uaword	_CD_Fib
	.uaword	_MT_Fib
	.uahalf	4
	.uahalf	11
	.uaword	_FL_Fib
	.uaword	0
	.uahalf	1
	.uahalf	1
	.uaword	0
	.uaword	0
	.uaword	0
	.uaword	0
	.uaword	1
	.uaword	1
.section	".text"
	.stabs "",100,0,0,.Letext
.Letext:
	.ident	"GCC: (GNU) cygnus-2.7.2-970602"



More information about the kaffe mailing list