Thu Jun  5 17:14:32 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* igen.c (print_itrace_prefix): Move printing of insn prefix to
 	here.
	(print_itrace_format): Drop printing of MY_NAME in instruction
 	trace.  Printing of insn prefix moved.
	(print_itrace): Ditto.

Fri May 30 11:27:37 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gen-icache.c (print_icache_function_header): Pass
 	table_line_entry instead of separate file and line.

	* table.c (table_entry_read): Set assembler source file/line-nr to
 	the current not initial file.
	(table_entry_read): Fix line numbering of source files.

	table.h (table_line_entry): New structure.  Exactly specifies a
 	source file/line-nr.
	(table_*_entry): Add this to all.
	
	table.c (table_entry_print_cpp_line_nr): Change to use values from
 	a table_line_entry struct.
	(table_entry_read): Save table_line_entry in all structures read.

	gen-icache.c, gen-support.c, gen-idecode.c, gen-semantics.c,
 	gen-model.c: Update all references.
	
Thu May 29 10:29:57 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* igen.c (print_my_defines): Define MY_NAME - a string.  For
 	MY_PREFIX, undefine the name of the function incase some dumb
 	header defined it.  it.
	(print_itrace): Use MY_NAME not MY_PREFIX.

	* lf.c (lf_write): New function write an N character buffer to the
 	file.

	* igen.c (print_itrace): When available, use the assembler to
 	print the insn-trace.
	(print_itrace_prefix): New function, print first part of call to
 	print_one_insn.
	(print_itrace_format): New function, print fmt argument for
 	print_one_insn.
	
	* table.c (table_entry_read): Save any assembler lines instead of
 	discarding them.

Wed May 28 09:55:29 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gen-icache.c (print_icache_body): Process immeds.

	* gen-semantics.c (print_semantic_body): When computing NIA, skip
 	any immed words that follow the instruction word.

	* ld-insn.c (parse_insn_format): Parse immeds appended to an
 	instruction.

	* igen.c (main): Allow any register to be specified as the zero
 	register.
	(semantic_zero_reg): Global, index to zero register.

	* gen-semantics.c (print_semantic_body): Zero selected register.

Tue May 27 14:12:32 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* igen.h: Stop options and code gen type bit masks overlaping.

Fri May 23 12:01:08 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gen-semantics.c (print_semantic_body): Incorrect test for
 	zero-r0 code.

Fri May 16 14:32:31 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gen-semantics.c (print_semantic_body): Use common sim-engine
 	interface.

Fri May 16 11:48:30 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gen-semantics.c (print_semantic_body): Add code to clear r0.

	* igen.c (main): Add new option zero-r0, which adds code to clear
 	GPR(0) each cycle.

Wed May  7 12:31:30 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* igen.c (print_itrace): Fix so line-nr is passed to trace
 	function.

	* gen-idecode.c (print_idecode_validate): Correct FP code.

	* gen-support.c (gen_support_h): Always pass MY_INDEX to support
 	functions.
	(print_support_function_name): Ditto.

Tue May  6 06:12:04 1997  Mike Meissner  <meissner@cygnus.com>

	* igen.c (print_itrace): Call trace_one_insn to trace
	instructions, rather than doing it directly.

Mon May  5 14:11:46 1997  Mike Meissner  <meissner@cygnus.com>

	* gen-engine.c (engine_switch_leaf): Remove extra %s.
	(print_engine_floating_point_unavailable): Wrap in #ifdef
	UNUSED/#endif, until somebody uses it.

	* gen-idecode.c (error_leaf_contains_multiple_insn): Remove unused
	variable.
	(print_jump_until_stop_body): Wrap in #ifdef UNUSED/#endif, until
	somebody uses it.
	(print_idecode_validate): Use long formats to print long values.

	* gen-semantics.c (print_idecode_invalid): Set name to "unknown"
	if we get an unexpected type.

Fri May  2 13:28:06 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* igen.c (print_itrace): Pass SD as well as CPU to calls to
 	trace_printf.

	* gen-support.c (gen_support_h): Always pass sim_cia cia to
 	support functions.
	(print_support_function_name): Ditto.

Wed Apr 30 17:35:51 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* gen-support.c (support_c_function): Remove unnecessary memset of
 	cia.
  	* gen-semantics.c (print_semantic_body): Wasn't closing
 	generated comment.

Tue Apr 29 11:11:12 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* ld-insn.c (load_insn_table): Report instructions that do not
 	have at least a format and name.
	(insn_table_find_opcode_field): Check progress is being made.

	* gen-support.c (support_c_function): Report empty function body.

Thu Apr 24 11:43:45 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* ld-insn.c (insn_table_expand_opcode): Allow reserved fields to
 	be broken up.
	(insn_table_expand_insns): Allow special rules to apply to groups
 	of instructions when all members of the group match the special
 	mask/value.

	* gen-semantics.c (print_c_semantic): Ditto.
	* igen.c (print_semantic_function_formal): Ditto.
	(print_semantic_function_type): Ditto.
	* igen.c (print_icache_function_formal): Ditto.
	* gen-idecode.c (print_idecode_issue_function_body): Ditto.

	* gen-idecode.c (gen_idecode_h): Prepend the global_prefix to the
 	instruction_address type.

	* gen-semantics.c (print_semantic_body): Call cpu_error when an
 	unimplemented instruction is encountered - gives the interpreter
 	the chance to stop correctly.

Wed Apr 23 20:06:36 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* igen.c (print_function_name): Allow dot's in instruction names.

Tue Apr 22 21:46:28 1997  Andrew Cagney  <cagney@b1.cygnus.com>

	* igen.c (main), igen.h: Support new option - delayed-branch -
 	generate code to drive a delayed branch processor.

	* gen-idecode.c (gen_idecode_h): Define instruction_address type.

	* igen.c (print_icache_function_formal): Replace address_word with
 	instruction_address.
	(print_semantic_function_formal): Ditto.
	(print_semantic_function_type): Ditto.
	* gen-idecode.c (print_idecode_issue_function_body): Ditto.

	* gen-semantics.c (print_semantic_body): Ditto.
	(print_c_semantic): Ditto.

	* gen-support.c (support_c_function): Return a zeroed CIA instead
 	of just zero - works with any cia type.

	* igen.c (print_itrace): For delayed branch case, print just the
 	current instruction.
	
Thu Apr 17 07:02:33 1997  Doug Evans  <dje@canuck.cygnus.com>

	* igen.c (print_itrace): Use TRACE_FOO_P and trace_printf.

Tue Apr 15 15:20:31 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL): Set to @INSTALL@.
	(INSTALL_XFORM, INSTALL_XFORM1): Remove.

Mon Apr 14 16:29:34 1997  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in (INSTALL): Change install.sh to install-sh.

Wed Apr  2 18:51:20 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gen-support.c (gen_support_c): sim-state.h renamed to sim-main.h.
	* gen-idecode.c (gen_idecode_c): Likewise.
	* igen.c (gen_semantics_c): Likewise.

Mon Mar 24 10:10:08 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* gen-icache.c (print_icache_body): No longer define cpu/sd,
 	support.h now defines CPU/SD globally.

	* gen-model.c (gen_model_h): Ditto.

	* gen-idecode.c (print_idecode_issue_function_body): Ditto.
	(print_jump): Ditto.
	(print_jump_until_stop_body): Ditto.
	(print_idecode_validate): Ditto.

	* gen-icache.c (print_icache_body): Ditto.

	* gen-semantics.c (print_semantic_body): Ditto.

	* igen.c (print_semantic_function_formal): Rename cpu to sim_cpu,
 	processor to cpu.
	(print_icache_function_formal): Ditto.

	* gen-support.c (print_support_function_name): Include sd/cpu arg
 	in support function argument list.
	(support_c_function): Generate code to cpu/sd from sd/cpu.
	(gen_support_h): Define _SD the argument prefix for all support
 	functions.  Define SD/CPU to determine sd/cpu from value of _SD
	macro.

Tue Mar 18 15:52:24 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* gen-support.c (gen_support_c): Update for renaming of engine to
 	sim-state.
	
	* igen.c: Ditto.
	* gen-idecode.c (gen_idecode_c): Ditto.

Mon Mar 17 15:17:07 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* ld-decode.c (load_decode_table): Rename slash to reserved.
	(dump_decode_rule): Ditto.

	* ld-insn.c (parse_insn_format): Differentiate between a `/' -
 	reserved bit - and a `*' - wild card.
	(parse_insn_format): Change is_slash to more informative reserved.
	(dump_insn_field): Ditto.
	(insn_field_is_constant): Ditto.
	(insn_table_expand_opcode): Ditto.

	* gen-idecode.c (print_idecode_validate): Make check_mask and
 	check_val the correct integer size.
	(print_idecode_validate): Fix reserved bit check for 64 bit
 	targets.

Fri Mar 14 11:24:06 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* ld-insn.c (parse_insn_format): Accept '*' as an alternative of
 	`/' in bit fields.  `/' denotes a wild bit.

Fri Mar  7 18:20:38 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* igen.h, igen.c (main): New options. Control generation of
 	conditional issue and slot verification code.

Fri Mar  7 18:17:25 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* gen-support.c (print_support_function_name): Prepend the global
 	name prefix when applicable.  Provide #define to map the user
 	specified name the generated globaly unique one.

Fri Mar  7 18:07:45 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* gen-idecode.c (print_idecode_validate): Wrap each of the checks
 	- reserved bits, floating point and slot validation - with a
 	#ifdef so that they are optional.
	
Fri Mar  7 16:35:13 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* gen-idecode.c (error_leaf_contains_multiple_insn): New function
 	- report the error of a leaf node in the decision tree containing
 	several instructions.
	(print_idecode_table_leaf): Detect a leaf with multiple instructions.
	(print_idecode_switch_leaf): Ditto.

	* gen-semantics.h, gen-semantics.c (print_idecode_illegal,
 	print_idecode_invalid): Rename former to latter.  Add argument so
 	that one function can generate all invalid instruction cases -
 	illegal, fp-unavailable, wrong-slot.
	* gen-engine.c: Update.

	* gen-idecode.c: Use print_idecode_invalid to generate a function
 	call for cases when fp-unavailable and the slot is wrong.

	* gen-idecode.c (print_idecode_validate): New check, generate code
 	to verify that the instruction slot is correct.
	
	* igen.c (main): Simplify options.

Wed Mar  5 09:55:55 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* igen.c (print_itrace): Remove source line reference for trace
 	code - let the user see the generated file.
	(print_itrace): Print the trace code rather than reference a
	macro.

Tue Mar  4 17:31:55 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* igen.c (print_semantic_function_actual): Pass either the
 	processor - smp - or the engine - mono - into semantic functions.
  	Don't pass in both.

	* gen-icache.c (print_icache_body): Dependant on smp, derive
 	processor from engine or engine from processor, and hence ensuring
 	that both are defined in all semantic functions.

Mon Mar  3 17:11:21 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* ld-insn.c (parse_insn_format): Make the width field optional.
  	If missing assume that the number of characters in the value
 	determines the number of bits in the field.
	
Thu Feb 27 11:27:48 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* ld-insn.c (insn_table_expand_opcode): Replace assertion with
 	more useful error message.

Tue Feb 25 16:43:27 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>

	* misc.c (error): Output errors on stderr.

	* ld-insn.c (parse_insn_format): Skip any leading spaces.
  	Verify the width of instructions being parsed.

	* table.c (table_entry_read): Parse CPP's convention for
 	specifying original file name/line-nr.

Wed Feb 19 12:30:28 1997  Andrew Cagney  <cagney@critters.cygnus.com>

	* ld-insn.c (parse_insn_format): Allow trailing spaces in
 	instruction fields.

	* Makefile.in: Create using ../ppc/Makefile.in as a starting
 	point.
	* configure.in: Ditto vis ../ppc/configure.in
	
Mon Feb 17 10:44:18 1997  Andrew Cagney  <cagney@critters.cygnus.com>

	* gen-support.c (gen_support_c): Always include engine.h instead
 	of cpu.h
	* gen-idecode.c (gen_idecode_c): Ditto.

	* words.h (instruction_word): Remove instruction_word - now
 	generated by igen.
	(address_word): New.  Used by igen.
	
	* lf.c (lf_print_function_type_function): New, pass a function to
 	print out the type instead of a constant string.
	
	* igen.h, igen.c (print_semantic_function_formal,
 	SEMANTIC_FUNCTION_FORMAL): Relace macro with function.
	(print_semantic_function_actual, SEMANTIC_FUNCTION_ACTUAL): Ditto.
	(print_semantic_function_type, SEMANTIC_FUNCTION_TYPE): Ditto.
	(print_icache_function_type, ICACHE_FUNCTION_TYPE): Ditto.
	(print_icache_function_formal, ICACHE_FUNCTION_FORMAL): Ditto.
	(print_icache_function_actual, ICACHE_FUNCTION_ACTUAL): Ditto.
	* gen-idecode.c (print_idecode_table): Update.
	(idecode_switch_leaf): Update.
	(print_idecode_switch_function_header): Ditto.
	(print_idecode_floating_point_unavailable): Ditto.
	(print_idecode_issue_function_header): Ditto.
	* igen.c (gen_icache_h): Ditto.
	* gen-engine.c (print_engine_table): Ditto.
	(engine_switch_leaf): Ditto.
	* gen-support.c (print_support_function_name): Ditto.
	* gen-semantics.c (print_semantic_function_header): Update.
	Update.
	* gen-icache.c (print_icache_function_header): Update.
	(print_icache_function): Update.
	(print_icache_internal_function_declaration): Update.
	(print_icache_internal_function_definition): Update.

	* gen-idecode.c (gen_idecode_h): Drop including of idecode_*.h
 	files, will at some stage need to move it into support.

	* igen.h, igen.c (main): New option -e <engine> - generate a full
 	simulation engine.  Previously this was the -d <idecode-file>
 	option.
	* gen-engine.h, gen-engine.c: Copies of gen-idecode.*.  Will need
 	to clean these up so that that call upon the updated gen-idecode
	code.
	
	* gen-idecode.h, gen-idecode.c: Prune out any code not relevant to
 	generating a decode table.
	
	* Makefile.in (igen): Add dependencies for new gen-engine.* files.

	* igen.h, igen.c (main): New option -M - Control what is returned
 	by semantic functions - -1/NIA vs CIA+N/NIA.  Add
 	generate_semantic_returning_modified_nia_only to igen_code enum.
	* gen-semantics.c (print_semantic_body): As an alternative, make
 	NIA == -1 instead of CIA+insn_size by default.
	
	* igen.h, igen.c (main, global_name_prefix, global_uname_prefix):
 	New option -P <prefix> - Prepend all generated functions with the
 	specified prefix.
	(gen_idecode_c): Adjust.
	* gen-icache.c (print_icache_struct): Ditto.
	* gen-support.c (gen_support_c): Ditto.

Sun Feb 16 15:23:15 1997  Andrew Cagney  <cagney@critters.cygnus.com>

	* igen.c (main): Correct usage. Missleading message about ucase
 	options dumping internal tables.  -F now includes rather then
 	excludes instructions.

	* misc.h, misc.c (a2i): Make 64bit.

	* ld-insn.h (max_insn_bit_size, default_insn_bit_size): Increase
 	max to 64bits, expect trouble.  Make the default 32 bits.
	* gen-idecode.c (print_idecode_table): Change EXTRACTED*
 	et.al. macro's to use the insn_bit_size instead of assuming 32
 	bits.
	* gen-icache.c (print_icache_extraction): Ditto.
	* gen-idecode.c (idecode_switch_start): Ditto.
	* gen-idecode.c (gen_idecode_c): Ditto

	* igen.h (insn_specifying_widths), igen.c (main): New option -W.
  	Indicates that the instruction field of the table is specifying
 	bit widths instead of bit offsets.
	* ld-insn.c (parse_insn_format): Parse instruction fields
 	specifying widths.

	* misc.c (a2i): Allow binary numbers to be specified using the
 	syntax 0bNNNN.
	* ld-insn.c: Allow such numbers to appear in the instruction
 	format.

	* table.c (table_entry_read): Make // a valid comment character.
	(table_entry_read): Skip lines containing a leading " - these may
 	eventually be used in a disasembler.

Fri Feb 14 15:23:15 1997  Andrew Cagney  <cagney@critters.cygnus.com>

	* filter.c, filter.h, gen-engine.c, gen-engine.h, gen-icache.c,
 	gen-icache.h, gen-idecode.c, gen-idecode.h, gen-itable.c,
 	gen-itable.h, gen-model.c, gen-model.h, gen-semantics.c,
 	gen-semantics.h, gen-support.c, gen-support.h, igen.c, igen.h,
 	ld-cache.c, ld-cache.h, ld-decode.c, ld-decode.h, ld-insn.c,
 	ld-insn.h, lf.c, lf.h, misc.c, misc.h, table.c, table.h: Copy in
 	from the ../ppc directory.

	* filter_host.c, filter_host.h: Copy in from the ../ppc directory
 	renaming from filter_filename.[hc]
