Wed Mar 18 12:06:13 1998  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java (emitRet):  Add missing reserve calls.

Sat Mar  7 08:27:38 1998  Per Bothner  <bothner@cygnus.com>

	* Add and fix various comments for javadoc.
	* overview.html:  New file (derived from README).
	* README:  Now mainly just a link to overview.html.
	* LineNumbersAttr.java (put):  Make public.
	* Location.java:  Make class public.
	* Makefile.am (HTML_HOME, install-html):  New for installing html.
	* CodeAttr.java (adjustTypedOp):  New private method.
	(emitLoad, emitStore):  Used new adjustTypedOp.
	(emitBinop, emitAdd, emitSub, emitMul, emitDiv, emitRem):  New here.
	* Method.java (compile_binop, compile_primop, compile_add,
	compile_sub, compile_mul, compile_div, compile_rem):  Removed here.

	* Type.java (coerceFromObject):  Made abstract.
	* ObjectType.java (coerceFromObject):  Moved here from Type.
	Add special handling for Type.string_type.

Mon Mar  2 22:56:44 1998  Per Bothner  <bothner@cygnus.com>

	* Type.java (make):  New static method.
	* ArrayType.java (getComponentType):  New method.
	* ClassType.java (getField):  New method.
	(addMethod):  Re-use existing Method if there is a match.
 	(getReflectClass, emitCoerceFromObject):  Move to ObjectType.
	* ObjectType.java:  New abstract class.
	* Makefile.am, Makefile.in (OBJ):  Added ObjectType.class.

	* CodeAttr (emitTypedOp):  New private method.
	(emitArrayStore, emitArrayLoad, emitNewArray):  New methods.
	* Method.java (compile_array_store, compile_array_load):  Removed.

Mon Feb 23 22:50:46 1998  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java (emitConvert):  Fix thinko - s/to_sig/from_sig/.

Sun Feb  8 23:29:37 1998  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java (emitGotoIfEq):  Use signature to select opcode.

Tue Feb  3 12:33:46 1998  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java (emitPushThis, emitInvokeMethod, emitInvokeVirtual,
	emitInvokeSpecial, emitInvokeStatic, emotGotoIfEq, emitGotoIfNE,
	emitGotoIf, emitIfIntNotZero, emitIfIntCompare, EmitIfIntLt, emitIfNEq,
	emitConvert, emitInstanceof):  New methods based on old ones in Method.
	* Method.java (compile_convert, compile_goto_ifeq, compile_goto_ifne,
	compile_goto_if, compile_if_neq_0, compile_if_icmp, compile_ifi_lt,
	compile_ifneq, compile_invoke_method, compile_invoke_virtual,
	compile_invoke_special, compile_invoke_static):  Removed methods.

	* Type.java (byte_type etc): Change types from Type to PrimType.
	(toString, isInstance, emitIsInstance, coerceFromObject,
	coerceToObject, emitCoerceToObject):  New virtual methods.
	(compileCoerceFromObject):  Rename to emitCoerceFromObject and
	change argument type.
	* ClassType.java (compileCoerceFromObject): Likewise.
	* PrimType.java:  New class - extends type.
	* Makefile.am, Makefile.in (OBJ):  Add PrimType.class.

Mon Jan 26 16:24:46 1998  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java (emitCheckcast):  New method, base on
	Method.compile_checkcast.
	* Method.java (Method.compile_checkcast):  Now just a stub.
	* Type.java (isValidJavaTypeName):  New method.

Sun Jan 11 15:51:51 1998  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java (emitFinallyStart): Re-set end_pc.

	* Type.java (reflectClass):  New field.
	(getReflectClass):  New method.
	(<init>):  Take extra reflectClass argument.
	* ClassType.java (getReflectClass, toString):  New methods.
	* ArrayType.java (getReflectClass):  New method.
	
Sun Dec 14 15:55:22 1997  Per Bothner  <bothner@cygnus.com>

	* ClassFileInput.java (readClassType):
	(readClassInfo):  Read interface indexes correctly.

	* CodeAttr.java (emitLoad, emitThrow):  New methods.
	Fix various problems with exception table support.
	* Method.java (compile_push_value):  Replaced by CodeAttr.emitLoad.

	* ZipMember.java (getData):  New method, based on ZipArchive.contents.
	* ZipArchive.java (contents):  Move to ZipMember.  Update callers.
	* ZipLoader.java:  Re-write to use java.util.zip.ZipFile.

Thu Nov 27 21:22:16 1997  Per Bothner  <bothner@cygnus.com>

	* TryState.java:  New class, for exception handling.
	* Makefile.am:  Added TryState.class.
	* Method.java:  Move mone methods to CodeAttr.java.
	* CodeAttr.java:  Rename compile_xxx to emitXxx.
	(addhandler, emitTryStart, emitTryEnd. emitCatchStart, emitCatchEnd,
	emitFinallyStart, emitFinallyEnd, emitTryCatchEnd):  New methods
	to support exception handling.
	* ClassFileInput.java:  Create exception table.
	* Scope.java (various places):  Pass CodeAttr instead of Method.
	* Variable.java:  Moved functionality here from Method.java.
	

Mon Nov 10 16:57:28 1997  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java (disAssemble):  New method.
	* ClassTypeWriter.java (printConstantOperand):  New method.
	* ClassFileInput.java (readAttribute):  Don't use Method.assign_local
	to set LocalVariableTable offsets, since that doesn't like overlaps.

Sun Nov  2 13:39:48 1997  Per Bothner  <bothner@cygnus.com>

	* CodeAttr.java, LineNumbersAttr.java, LocalVarsAttr.java:
	New classes to represent more standard attributes.
	* Location.java:  New class - shared stuff from Field and Variable.
	* Field.java, Variable.java:  Inherit from Location; move stuff there.
	* Attribute.java (isSkipped, setSkipped, getlengthAll):  New methods.
	* ClassFileInput.java (readAttributes):  Make more robust.
	Read Code, lineNumberTable, and LocalVariableTable attributes.
	* ClassType.java (addMethod):  Use new Method.setSignature.
	* ClassTypeWriter.java (printSignature):  New method.  Use it.
	* Label.java (relocate_fixups, relocate_wide, emit_spring,
	add_fixup, emit, emit_wide):  Charge arg from Method to CodeAttr.
	* Makefile.am:  Add new classes.  Add JCFLAGS.
	* Method.java:  Many variables and methods moved to CodeAttr,
	LineNumbersAtrr or LocalsVarsAttr.  Update accordingly.
	(setSignature, setName, assign_constants):  New methods.
	* ClassType.java, IfState.java:  Update for stuff moved around.

	* VarEnumerator.java (reset):  Tolerate null scope.
	* Type.java (signatureToType):  Add overloading with offset and length.

Fri Sep 26 21:12:29 1997  Per Bothner  <bothner@cygnus.com>

	* Attribute.java, AttrContainer.java, MiscAttr.java,
	SourceFileAttr.java, dump.java:  New classes.
	* Makefile.am, Makefile.in:  Update for new classes and new automake.
	* ClassFileInput.java:  Add support for reading Attributes.
	(main):  Moved to new dump.java.
	* ClassTypeWriter.java:  Add support for printing Attributes.
	* ClassType.java, Field.java, Method.java:  Implement AttrContainer.
	* ClassType.java:  Move some stuff to SourceFileAttr.java.

Fri Sep 26 21:01:25 1997  Per Bothner  <bothner@cygnus.com>

	* CpoolUtf8.java (intern):  New method.
	* CpoolValue2.java (CpoolValue2):  Extra slot count increment needed.
	* CpoolEntry.java (getIndex):  New method.

Sun Jun 22 14:00:10 1997  Per Bothner  <bothner@cygnus.com>

	* ConstantPool.java:  Add missing break, missing increment.
	Replace most readShort by readUnsignedShort.
	* ClassFileInput.java:  Likewise.
 	Fixes from Jay Krell <jay.krell@cornell.edu>.
	* ClassTypeWriter.java:  Change to extend PrintWriter, not PrintStream.
	* ZipMember.java (print):  Fix to use ps argument, not System.out.

Sun Mar 30 22:54:48 1997  Per Bothner  <bothner@cygnus.com>

	* LICENSE:  New file - and new license!
	* *.java:  Added copyright notice.

	* Access.java (toString):  New static method.
	* ClassFileInput.java:  New class for reading .class files.
	* ClassType.java"  Remove get_*_const methods.
	Rename various fields.  Avoid creating constant pool until needed.
	* ClassTypeWriter.java:  New class, for printing a ClassType.
	* ConstantPool.java:  New class - manage constant pool.
	* Cpool*.java:  Add getTag method.  Rename hash_of to hashCode.
	Add print methods, and new default constructors.
	* CpoolInt.java, CpoolFloat.java:  Combined into CpoolValue1.java.
	* CpoolLong.java, CpoolDouble.java:  Combined into CpoolValue2.java.
	* Type.java (signatureToPrimitive, signatureToType, signatureLength,
	signatureToName):  New methods.

Tue Mar 25 13:26:29 1997  Per Bothner  <bothner@kalessin.cygnus.com>

	Move this package from codegen to gnu.bytecode.
	Change all names and signatures from byte[] (Utf8) to String.
	Rename some methods to be more "conventional" (e.g.
	strName -> getName; set_class_name -> setname.

Mon Mar 24 13:35:46 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* Method.java:  Add more char->byte casts.

Wed Mar 19 11:04:02 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* CpoolRef.java (get_const):  Set tags to CONSTANT_InterfaceMethodref
	if method's class is an interface.
	* Method.java (compile_invoke_method): Handle invokeinterface properly,

Mon Mar 17 17:15:28 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* ArrayType.java, Type.java:  Cast char literals to byte.
	* ClassType.java:  Rename set_super -> setSuper.
	* Method.java (compile_arraylength, compile_if_icmp,
	compile_ifi_lt):  New methods.
	(compile_invoke_nonvirtual):  Renamed to compile_invoke_special.

Tue Feb  4 22:13:40 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* ZipArchive.java:  Add char-constant -> byte casts.

Mon Feb  3 17:16:17 1997  Per Bothner  <bothner@kalessin.cygnus.com>

	* ClassType.java (getClassName):  Removed.
	(compileCoerceFromObject):  New methods.
	(this_name):  Moved to Type.
	* Type.java (getName):  New method.
	(compileCoerceFromObject):  New methods.
	* Method.java (set_static):  Renamed to setStaticFlag.
	(compile_convert, compile_goto_if, compile_primop,
	getDeclaringClass, getReturnType, getParameterTypes, getName): New

Fri Jan  3 18:52:20 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* Access:  Make class public.
	(VALATILE -> VOLATILE):  Fix typo.
	* ArrayType.java (elements):  Make public.
	* Method.java (compile_array_store, compile_array_load):
	Boolean arrays use baload/bastore (byte load/store) op.
	* Type.java (pointer_type, string_type):  Make types specific.

Sat Nov 16 14:52:45 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* IfState.java:  New class.
	* Makefile.am, Makefile.in:  Add IfState.class.
	* Method.java (if_stack):  New field.
	(compile_ifneq, compile_else, compile_fi):  New methods.	

Sat Oct 26 08:59:10 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* *.java:  Remove redundant 'import codegen.*'. (MS j++ complains.)

Mon Sep 16 11:09:40 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* CpoolDouble.java:  New class, for CONSTANT_Double.
	* Makefile.{am,in}:  Add CpoolDouble.class.
	* Method.java (compile_push_double):  New method.
	* ZipArchive.java:  Fix usage string.
	
	* Makefile.{am,in}: (javadir):  Use $(subdir)
	{DEP_,}DISTFILES):  Do not include DATA (i.e. *.class).
	Replace generated EXTRA_DIST with ditto SOURCES.

Thu Sep 12 17:21:20 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* CpoolLong.java:  New class, for CONSTANT_Long.
	* Method.java (compile_push_long):  New method.
	* codegen/Makefile.{am,in}:  Add EXTRA_DIST rule.
	Use $*.java instead of possibly-less-portable $(<F).

Sun Sep  8 22:26:14 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* Makefile.{am,in} (JAVAC): Fix -classpath argument.

Sat Sep  7 13:00:07 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* {ClassType,Method}.java:  Support emitting "SourceFile" attribute.
	(setSourceFile):  New method to set SourceFile.
	* Method.java (compile_checkcast):  Combine overloaded methods.

Tue Sep  3 19:44:28 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* ZipArchive.java:  Move ZipMember to ...
	* ZipMember.java:  ... new file (and make it public).
	* ZipLoader.java:  New class (derived from kawa.lang.SchemeLoader).
	* Makefile.{am,in}:  Add new classes.
	Fix broken suffix handling.

	* ClassType.java (getClassName):  New method.
	* Method.java (compile_linenumber):  New method.
	(LineNumberTable_name_index):  New field.
	(linenumber_count, linenumber_table):  New fields.
	(write):  Emit line numbers.
	(compile_invoke_method):  Generalize to support invokestatic.
	(compile_invoke_virtual, compile_invoke_nonvirtual,
	compile_invoke_static):  Update accordingly.
	
Sat Jul 20 17:32:28 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* Makefile.am, Makefile.in (OBJ): Add ZipArchive.class.
	(CLEANFILES):  Add ZipMember.class.

	* Method.java (compile_tailcall, reachableHere):  New methods.

Tue Jul 16 23:18:20 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* ZipArchive.java:  New class, for handling .zip archives.

	* Field.java (strName):  New method.
	* Method.java (assign_local):  Fix type lossage.
	(compile_checkcast, maybe_compile_checkcast):  New methods for arrays.
	(compile_dup):  Gneeralize to handle all the dup* instructions.
	(compile_invoke_static):  Don't push_stack_type if returning void.

Thu Jul 11 14:44:21 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* ClassType.java:  Add support for implementing interfaces.
	* CpoolUtf8.java (get_const):  Use proper equals to compare bytes.
	* Method.java:  Support emitting debug info: LocalVariableTable.
	New methods enterScope, assign_local.
	New methods compile_new, compile_array_load, compile_swap,
	copile_store_value, compile_{get,put}{field,static},
	* Scope.java:  Renamed field prev -> parent.
	New fields nextSibling, firstChile, lastChild.
	New method linkChild (to enter in tree).
	* VarEnumerator.java:  New class.
	* Makefile.am, Makefile.in:  Add VarEnumerator.class.
	* Variable.java: New fields offset, flags, name_index, signature_index.
	New methods for accessing flags and iterating.

Tue Jul  2 11:23:44 1996  Anthony Green  <green@csk3.cygnus.com>

	* Makefile.am, Makefile.in: New files to support building codegen
 	package.

	* Makefile.am, Makefile.in: Added "make clean" support.

Mon Jul  1 23:11:46 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* Access.java, ArrayType.java, ClassType.java, CpoolClass.java,
	CpoolEntry.java, CpoolInt.java, CpoolNameAndType.java, CpoolRef.java,
	CpoolString.java, CpoolUtf8.java, Field.java, Label.java, Method.java,
	Scope.java, Type.java, Variable.java:  New classes in new package.
	This provides a medium-level interface to generating .class files.
