modified from 95q4
[deliverable/binutils-gdb.git] / sim / ppc / ChangeLog
CommitLineData
b51e5b4f
MM
1Fri Nov 10 06:39:46 1995 Michael Meissner <meissner@tiktok.cygnus.com>
2
3 * configure.in (--enable-sim-inline): If gcc is found and
4 --enable-sim-inline is not specified, defaine DEFAULT_INLINE to 1,
5 not 2.
6 * configure: Regenerate.
7
ba62bb1c
MM
8Thu Nov 9 12:22:15 1995 Michael Meissner <meissner@tiktok.cygnus.com>
9
2bc7869d
MM
10 * configure.in: If --silent, don't output information messages.
11 * configure: Regenerate.
12
ba62bb1c 13 * configure.in (--enable-sim-alignment): Fix typo in specifing non
23a994ee 14 strict alignment.
ba62bb1c
MM
15 (--enable-sim-switch): Make default on.
16 (--enable-sim-duplicate): Make default on.
17 (--enable-sim-smp): Make default 0.
18 (--enable-sim-mon): Don't set sim_float if not set.
19 (--enable-sim-inline): If gcc is found and --enable-sim-inline is
20 not specified, define DEFAULT_INLINE to be 2.
21 (all --enable-sim-* rules): Echo rules set to non empty to file
22 descriptor 6.
23 * configure: Regenerate.
24
25 * options.c (options_env): Fix typo if WITH_ENV is 0.
26 (print_options): Print GCC compiler version if available and
27 date/time options was compiled. If OPCODE_RULES, IGEN_FLAGS,
28 and/or DGEN_FLAGS are defined, print them.
29
30 * Makefile.in (all link actions): Pass SIM_CFLAGS as well as
31 CFLAGS.
32 (options.o): Compile options.o with OPCODE_RULES, IGEN_FLAGS, and
33 DGEN_FLAGS defined, so they can be printed out.
34
35 * igen.c (lf_print_c_validate): Check for WITH_ASSERT, so that
36 this test can be compiled away if the user really wants a fast
37 simulator by not doing assertion failures.
38
73c4941b
MM
39Wed Nov 8 13:19:47 1995 Michael Meissner <meissner@tiktok.cygnus.com>
40
c5addc19
MM
41 * options.c: New file to print out all of the WITH_ options.
42 * options.h: New include file to declare print_options.
43 * debug.h (trace_options): Add trace_opts to call print_options.
44 * debug.c (trace_description): Add trace_opts support.
45 * main.c (main): If user requested options, print them.
46 * sim_calls.c (sim_open): Ditto.
47
48 * igen.c (opcode_field_new): Add void to make it a proper prototype.
49
50 * emul_generic.c (emul_enter_call): Make printf_filtered arguments
51 type correct.
52 * emul_netbsd.c (do_kill): Ditto.
53 * registers.c (registers_dump): Ditto.
54 * vm.c (om_translate_effective_to_real): Ditto.
55 * vm_n.h (vm_data_map_read_N): Ditto.
56 (vm_data_map_write_N): Ditto.
57 * devices.h (DTRACE_INIT): Ditto.
58 (DTRACE_{ATTACH,DETACH}_ADDRESS): Ditto.
59 (DTRACE_IO_{READ,WRITE}_BUFFER): Ditto.
60 (DTRACE_DMA_{READ,WRITE}_BUFFER): Ditto.
61 * devices.c (update_for_binary_section): Ditto.
62 (write_stack_arguments): Ditto.
63 (stack_ioctl_callback): Ditto.
64 * device_tree.c (device_tree_add_passthrough): Ditto.
65 (device_tree_{add,find}_device): Ditto.
66 (device_tree_{add,find}_integer): Ditto.
67 (device_tree_find_{string,boolean}): Ditto.
68 (device_tree_init{,_device}): Ditto.
69 (device_tree_dump): Ditto.
70 * sim_calls.c (sim_{read,write}): Ditto.
71 (sim_{fetch,store}_register): Ditto.
72 (sim_stop_reason): Ditto.
73
74 * sim_callbacks.h (printf_filtered): Declare with attribute
75 printf, so we can enable format checks.
76
77 * devices.c (console_io_{read,write}_buffer_callback): Cast swtich
78 argument to int, since ANSI doesn't allow long switch values.
79 * emul_netbsd.c (do___sysctl): Ditto.
80
81 * emul_netbsd.c (do___sysctl): Fix up printf call.
82
83 * corefile.c (core_translate): Don't do arithmetic with void *
84 pointers. Cast to char * first.
85
86 * function_unit.c (FUNC_{LOAD,STORE}): Rename from {LOAD,STORE}
87 and change all uses.
88
73c4941b
MM
89 * Makefile.in ({FUNC,MODEL,WARNING}_CFLAGS): New flags set by
90 configure --enable switches.
91 (CONFIG_CFLAGS): Include FUNC_CFLAGS and MODE_CFLAGS.
92 (.c.o): Include WARNING_CFLAGS.
93 (CPU_H): Include function_unit.h.
94 (LIB_OBJ): Include function_unit.o.
95 (BUILT_SRC_WO_CONFIG): Split from BUILT_SRC and do not include
96 config.h or ppc-config.h.
97 (BUILT_SRC): Include BUILT_SRC_WO_CONFIG, config.h and
98 ppc-config.h.
99 (filter_filename.o): Include config.h/ppc-config.h dependencies.
c5addc19
MM
100 (idecode.o, semantics.o, psim.o): Specify CC line without
101 WARNING_CFLAGS so that we don't get all of the unused variable
102 warnings that are generated.
73c4941b
MM
103 (function_unit.o): Add rule to build.
104 (main.o, sim_calls.o): Add function_unit.h, itable.h dependencies.
105 (mon.o): Include mon.c dependency.
106 (TAGS): Depend on BUILT_SRC.
107 (clean): Don't delete config.h or ppc-config.h
108
109 * basics.h (sim_callbacks.h): Move include after the include of
110 config.h and ppc-config.h.
111
112 * bits.{h,c} (ROTL32,ROTL64): Move these functions to bits.c. Add
113 support for BITS_INLINE to inline these. Add declarations to
114 bits.h.
115
116 * configure.in (--enable-sim-warnings): Add new option to specify
117 compiler warnings for all modules except idecode.o and semantics.o
118 which have lots of unused variables because they are machine
119 generated.
120 (--enable-sim-function-unit): New switch to configure whether
121 function unit support is compiled in or not.
122 (--enable-sim-{,default-}mode): New switches to control which cpu
123 model is used.
124 * configure: Regenerate.
125
126 * corefile.c (core_attach_address_callback): Delete unused
127 variable device_address.
128
129 * cpu.c (struct _cpu): Add function unit pointer field func_unit.
130 (cpu_create): If WITH_FUNCTION_UNIT, call function_unit_create.
131 (cpu_init): If WITH_FUNCTION_UNIT, call function_unit_init.
132 (cpu_halt): If WITH_FUNCTION_UNIT, call function_unit_halt.
133 (cpu_function_unit): New function to return func_unit field.
134
135 * cpu.h (function_unit.h): Include new include file.
136 (cpu_function_unit): Declare.
137
138 * debug.c (stdlib.h): Test HAVE_STDLIB_H, not HAVE_STDLIB.
139 (config.h): Include config.h.
140
141 * devices.c (icu_io_write_buffer_callback): Delete unused variable
142 system.
143
144 * emul_generic.c (emul_exit_call): Print out status value.
145
146 * emul_netbsd.c (do_read): Delete unused variable nr_moved.
147
148 * filter_filename.h (includes): Include config.h, ppc-config.h,
149 not basics.h.
150
151 * inline.c: Include bits.c if BITS_INLINE. Include
152 function_unit.c if FUNCTION_UNIT_INLINE.
153
154 * inline.h (INLINE_BITS): Define if BITS_INLINE.
155 (INLINE_FUNCTION_UNIT): Define if FUNCTION_UNIT_INLINE.
156
157 * interrupts.c (instruction_storage_interrupt): Delete unused
158 variable nia.
159
160 * lf.h (config.h): Include config.h.
161
162 * main.c (includes): Include function_unit.c. If HAVE_UNISTD_H,
163 include unistd.h.
164 (usage): Update for -m model, -i, and -I options.
165 (main): Delete unused variables stack_pointer and i. Add support
166 for -i, -m model arguments. Call psim_print_info with verbose ==
167 1 if -i, and verbose == 2 if -I.
168
169 * mon.c (stdio.h): Include stdio.h to pick up sprintf prototype.
170 (mon_issue): Call function_unit_issue if function units are
171 supported.
172 (mon_print_info): Take psim * argument. Print out information
173 from function_unit if available. Move read/write stats to always
174 print, instead of printing if verbose > 1. Fix up plural
175 vs. singular usage.
176
177 * mon.h (mon_print_info): Update prototype.
178
179 * psim.c (current_ppc_model): Add global variable.
180 (psim_print_info): Pass system argument to mon_print_info.
181
182 * sim_calls.c (function_unit.h): Include.
183 (sim_open): Add support for -i and -m model options. If -i call
184 psim_print_info with verbose == 1, if -I, with verbose == 2.
185 (sim_resume): Delete unused variable program_counter.
186
187 * std-config.h (WITH_FUNCTION_UNIT): Define.
188 (ppc_model): Add enumeration giving all PowerPC models currently
189 known about.
190 ({WITH,CURRENT}_PPC_MODEL): Define.
191 (FUNCTION_UNIT_INLINE): Define.
192
193 * table.c (config.h): Include config.h.
194
195 * vm.c (om_virtual_to_real): Print pte_word_{0,1} so the compiler
196 doesn't complain that they're unused.
197
198 * vm_n.h (vm_data_map_read_N): Delete unused variable rval.
199
200Mon Nov 6 23:15:54 1995 Andrew Cagney <cagney@highland.com.au>
201
202 * sim-endian.c (ppc-endian.c), sim-endian.h (ppc-endian.h):
203 renameed. These files are target independant.
204 * Makefile.in, basics.h: update for new name.
205
206 * sim-endian.h (SWAP_N), sim-endian.c (_SWAP_1): Rename existing
207 SWAP_<N> to _SWAP_<N> so that sim-endian.h can contain SWAP_N
208 macro's as required.
209
210 * sim-endian.c, sim-endian-n.h (new file): Move endian code into a
211 debugable header file.
212
213 * ppc-instructions (Byte-Reverse): Enable byte reverse
214 instructions using SWAP_N macros.
215
0934e520
MM
216Mon Nov 6 10:39:28 1995 Michael Meissner <meissner@tiktok.cygnus.com>
217
bea95815
MM
218 * Makefile.in (config.status): Remove references to config.make
219 and config.hdr.
220
0934e520
MM
221 * config.{make,hdr}: Delete, no longer used.
222 * build-psim: Ditto.
223
4dcb0cdd
MM
224Mon Nov 6 20:49:56 1995 Andrew Cagney <cagney@highland.com.au>
225
226 * sim_calls.c (sim_open): Fix parsing of `target sim' options.
227
228 * device_tree.c (device_tree_add_string): Wasn't saving the value
229 of the string being entered into the tree.
230
231 * psim.c (create_filed_device_tree): Not terminating string device
232 names with a null.
233
234 * psim.c (psim_create): Use `env' instead of
235 `environment-architecture' to be consistent with configure.
236 Reconize user/uea, virtual/vea and operating/oea.
237
01860b7e
FF
238Sat Nov 4 12:29:45 1995 Fred Fish <fnf@cygnus.com>
239
240 * core.c: Rename to corefile.c
241 * core.h: Rename to corefile.h
242 * inline.c: Include corefile.h, renamed from core.h.
243 * cpu.h: Include corefile.h, renamed from core.h
244 * vm.c: Include corefile.h, renamed from core.h
245 * corefile.c: Include corefile.h rather than core.h
246 * README.psim (KNOWN PROBLEMS): Change core.* references to corefile.*
247 references.
248 * Makefile.in (CPU_H): Change core.h to corefile.h
249 (vm.o): Change dependency to corefile.h
250 (LIB_SRC): Change core.c to corefile.c.
251 (LIB_OBJ): Change core.o to corefile.o.
252 (corefile.o): Change dependencies to corefile.c, corefile.h.
253
056e975c
MM
254Fri Nov 3 11:37:24 1995 Michael Meissner <meissner@tiktok.cygnus.com>
255
256 * ppc-instructions (data cache instructions): Make all data cache
257 instructions nops instead of invalid instructions.
258
259 * Makefile.in (CONFIG_CFLAGS): Add ALIGNMENT_CFLAGS and
260 TIMEBASE_CFLAGS which weren't included.
261
a983c8f0
MM
262Thu Nov 2 08:54:04 1995 Michael Meissner <meissner@tiktok.cygnus.com>
263
e61900e6
MM
264 * Makefile.in: Uncomment built file dependencies.
265
c494cadd
MM
266 * configure.in: Rewrite --enable-sim switch handling to use the
267 autoconf builtins so it works correctly if the configure or
268 Makefile.in files are modified and make decides to rebuild
269 Makefile. Also document all of the --enable-sim switches
270 supported. Check whether getrusage and sys/resource.h are
271 supported.
272 * config.in: Regenerate.
273 * configure: Regenerate.
274 * Makefile.in: Add support for all of the variables set with
275 --enable-sim switches.
276
277 * Makefile.in (clean): make clean now removes all built sources as
278 well.
279
280 * cpu.c: Use HAVE_STRING_H, HAVE_STRINGS_H, HAVE_UNISTD_H,
281 HAVE_TIME_H, HAVE_SYS_TIMES_H, HAVE_SYS_RESOURCE_H defined in
282 the generated config.h.
283 * debug.c: Ditto.
284 * device_tree.c: Ditto.
285 * devices.c: Ditto.
286 * dgen.c: Ditto.
287 * emul_netbsd.c: Ditto.
288 * igen.c: Ditto.
289 * lf.c: Ditto.
290 * misc.c: Ditto.
291 * psim.c: Ditto.
292 * registers.c: Ditto.
293 * sim_calls.c: Ditt.
294 * table.c: Ditto.
295
296
a983c8f0
MM
297 * main.c (main): Call psim_print_info with verbose == 2.
298
299 * mon.c (mon_print_info): Align the cpu number and number of
300 instructions fields. Do not print an instruction category if the
c494cadd
MM
301 CPU did not execute any of those instructions. Print out number
302 of reads and writes. If getrusage is supported, print out number
303 of simulated instructins per second.
a983c8f0
MM
304
305 * configure.in: Add support for --enable-sim-opcode=stupid.
306 * configure: Regenerate.
307
308Wed Nov 1 23:46:59 1995 Andrew Cagney - aka Noid <cagney@highland.com.au>
309
310 * std-config (INLINE_DEVICE_TREE): Don't inline either of
311 device_tree.c or devices.c. There is no significant gain.
312
313 * configure.in, Makefile.in: add --enable-sim-icache=[0-9]* and
314 IGEN_ICACHE macro.
315
316Wed Nov 1 23:46:59 1995 Andrew Cagney - aka Noid <cagney@highland.com.au>
317
318 * igen.c (main), misc.h (target_a2i, i2target), misc.c: Add
319 functions to convert between target and igen internal bit numbers.
320 Make IO go through these functions. Add -b (bit size) and -h (high
321 bit nr) options to igen. Typical usage would be: ./igen -b 16 -h
322 15 for a 16 bit instruction format with the msb given a number 15.
323
324Wed Nov 1 22:17:32 1995 Andrew Cagney - aka Noid <cagney@highland.com.au>
325
326 * dgen.c (main): Was outputting optarg even when it was NULL.
327
328Tue Oct 31 23:48:33 1995 Andrew Cagney - aka Noid <cagney@highland.com.au>
329
330 * vm_n.h (vm_data_map_load_N, vm_data_map_store_n), debug.h,
331 debug.c: Add tracing of load/store unit (virtual) with -t
332 load-store.
333
334Tue Oct 31 21:44:01 1995 Andrew Cagney - aka Noid <cagney@highland.com.au>
335
336 * std-config.h (WITH_ENVIRONMENT): Add USER_ENVIRONMENT which does
337 not include things such as the time base and events.
338
339 * interrupt.c, sim_calls.c, cpu.h, vm.c, configure.in: Add UEA to
340 all environment switches for above.
341
342 * psim.c (psim_create): ditto - new device tree node name is
343 /options/environment-architecture with values user, virtual and
344 operating.
345
346Tue Oct 31 21:31:32 1995 Andrew Cagney - aka Noid <cagney@highland.com.au>
347
348 * ppc-opcode-stupid: Third example of use of opcode table - this
349 one expands all mtspr/mfspr and branch instructions. Appears to
350 give about a 10% gain in performance if everything enabled. Also
351 takes about 150mb of swap to build.
352
c143ef62
MM
353Wed Nov 1 10:49:48 1995 Michael Meissner <meissner@tiktok.cygnus.com>
354
355 * emul_netbsd.c (do_exit): Print arguments and close parenthesis
356 if tracing, since exit doesn't go through emul_exit_call.
357 (do_read): Print arguments if tracing.
358 (do_write): Ditto.
359 (do_open): Ditto.
360 (do_break): Ditto.
361 (do_kill): Ditto.
362 (do_dup): Ditto.
363 (do_sigprocmask): Replace trace with printing arguments if
364 tracing.
365 (do_ioctl): Print arguments if tracing.
366 (do_umask): Ditto.
367 (do_dup2): Ditto.
368 (do_fcntl): Ditto.
369 (do_gettimeofday): Ditto.
370 (do_getrusage): Ditto.
371 (do_fstatfs): Ditto.
372
373 * filter_filename.c: New file to provide filter_filename to strip
374 the directory prefix from a file.
375 * filter_filename.h: New include file to declare filter_filename.
376
377 * debug.h: Include filter_filename.h.
378 (TRACE,DTRACE,ERROR): Use filter_filename on __FILE__.
379
380 * misc.h: Include filter_filename.h.
381 (ASSERT): Use filter_filename on __FILE__.
382
383 * igen.c (lf_print_my_prefix): Use filter_filename on the filename
384 argument.
385
386 * Makefile.in: Add filter_filename support.
387
388 * ppc-instructions (dcbi, icbi): Make these NOPs rather than
389 invalid instructions.
390
391 * configure.in: Add support for more --enable-sim-* switches.
392 Use config.make and config.hdr to write to Makefile and config.h
393 respectively. Don't rewrite Makefile, just append to it.
394 * configure: Regenerate.
395 * config.{make,hdr}: New shell scripts.
396
397 * Makefile.in: Remove all variables set by configure.in.
398 (psim.o): Depend on $(BUILT_SRC) also.
399
400 * emul_netbsd.c (do_gettimeofday,do_getrusage): When comparing an
401 integer, use 0, not NULL.
402
4b935ed4
MM
403Tue Oct 31 15:20:04 1995 Michael Meissner <meissner@tiktok.cygnus.com>
404
405 * configure.in: Add support for --enable-sim-inline,
406 --enable-sim-bswap, --enable-sim-cflags, --enable-sim-complex,
407 --enable-sim-switch, --enable-sim-duplicate, --enable-sim-filter,
408 and --enable-sim-endian switch to control various Makefile
409 variables.
410 * configure: Regenerate from configure.in.
c143ef62
MM
411 * Makefile.in: Add various Make variables that the various
412 switches alter.
4b935ed4
MM
413
414 * std-config.h (DEFAULT_INLINE): Don't set this to 2 if using GCC
415 and optimizing by default.
416
c143ef62 417Fri Oct 27 19:26:27 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
418
419 * bits.h (ROTL32, ROTL64): Were functions, made them macros, now
420 make them functions again. Appears 2.6.3 is confused by just a
421 macro.
422
c143ef62 423Thu Oct 26 18:31:58 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
424
425 * ppc-endian.c (SWAP_8): Fix 8 byte swap!
426
427 * psim.c (psim_create): Not correctly checking that runtime
428 configuration of things like ENDIAN, ENVIRONMENT and ALIGNMENT
429 matched the compiled in ones.
430
431 * debug.h (ITRACE), igen.c: Tidy up more tracing flags -
432 trace_semantics is now different to trace_idecode, the former
433 checks the cache.
434
c143ef62 435Tue Oct 24 21:54:13 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
436
437 * ppc-instructions (mtsrin): Missing instruction
438 * ppc-instructions (mfsrin): Missing instruction
439 * ppc-instructions (eieio): Missing instruction
440
c143ef62 441Tue Oct 24 20:55:29 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
442
443 * build-psim: New shell script - see internals for usage,
444 simplifies the process of building custom simulators.
445
c143ef62 446Mon Oct 23 23:48:59 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
447
448 * std-config.h (SEMANTICS_INLINE): Tidy up notes on each of the
449 INLINE macros. Make SEMANTICS_INLINE == 1 if DEFAULT_INLINE == 2.
450 Don't use DEFAULT_INLINE to define REGISTERS_INLINE DEVICES_INLINE
451 DEVICE_TREE_INLINE or INTERRUPTS_INLINE as none of these are on
452 the instruction or data critical paths.
453
454 * FIXME: need to set up OS_EMUL_INLINE/EMUL_GENERIC_INLINE but
455 not on critical path.
456
457 * FIXME: devices.c/emul_netbsd.c would benefit (slightly) from
458 the inclusion of device_tree.c/emul_generic.c.
459
c143ef62 460Mon Oct 23 00:31:50 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
461
462 * os_emul.[hc], emul_generic.[hc], emul_netbsd.[hc]: replace
463 system.[hc]. Start of suport for multiple emulations and
464 emulation state (os_emul object).
465
466 * emul_generic.[hc]: Start of code to implement proper system call
467 tracing (from spy).
468
c143ef62 469Sun Oct 22 21:33:51 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
470
471 * cpu.h, cpu.c (cpu_init): New function, zero the registers before
472 the processor is started. Fixes problem of registers being
473 undefined when restarting from within gdb.
474
475 * cpu.h, cpu.c (cpu_flush_icache): New function, flushes the
476 instruction cache (if present). Fixes problem of cpu caching gdb
477 breakpoint instructions.
478
479 FIXME: PSIM sometimes aborts calling error(), it should instead
480 call sim_error() say which takes care of housekeeping such as
481 saving the CIA before calling error.
482
483 * NOTE: cpu_flush_cache() instead of cpu_synchronize_context() is
484 used when restarting a simulation because the latter has the
485 unwanted side effect (well I as a kernel hacker think it is) of
486 performing an isync when the instruction stream doesn't contain
487 one.
488
c143ef62 489Sun Oct 22 19:27:48 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
490
491 * mon.h (new), mon.c (new), std-config.h (WITH_MON): Performance
492 monitoring module. Counts both instructions issued and
493 load/stores.
494
495 * NOTE: mon does not contain to count instruction loads as this
496 information is already available from the mon_issue() hook.
497
498 * FIXME: mon doesn't have access to register usage information.
499 This is needed if the user wants to monitor things like register
500 stalls.
501
502 * igen.c (lf_print_c_semantic), vm_n.h: Add counting code.
503
504 * psim.h, psim.c (psim_create), cpu.h, cpu.c (cpu_create): Attach
505 a common monitor to each of the cpus. Delete
506 cpu_increment_number_of_insns() and cpu_get_number_of_insns()
507 replaced by copied code in mon.[hc].
508
c143ef62 509Sun Oct 22 18:42:45 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
510
511 * sim_calls.c, main.c, psim.c (psim_create): always create
512 `WITH_SMP' cpus. The actual number of CPU's active in a
513 simulation run is taken from the device node: /init/smp (an
514 integer). WITH_SMP changed to 2 (remember to put it back to 0).
515
c143ef62 516Fri Oct 20 17:26:54 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
517
518 * system.c: More system call emulation. If code appears NetBSD
519 specific, make conditional to being compiled on a NetBSD system
520 (sigh).
521
c143ef62 522Wed Oct 18 23:02:20 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
523
524 * Makefile.in, gen.c(delete), igen.c(new), dgen.c(new),
525 lf.[ch](new), table.[ch](new): Split into two generators - igen
526 that outputs the instruction tables and dgen that outputs the spr
527 tables. Add -f (filter out) flag to igen to filter out certain
528 instructions (ex 64 bit ones) from the created tables. Include
529 $(LIBIBERTY_LIB) in link options in case host lacks some libc
530 functions.
531
532 * NOTE: igen, since it was originally written for the
533 PowerPC/RS6000, things the MSB is 0 and the LSB is 63{31}.
534
535 * Makefile.in, std-config.h, ppc-cache-rules(new),
536 ppc-opcode-complex(new), ppc-opcode-simple(new): (for igen) Create
537 cache-rule and opcode-rule tables from macros found std-config.h.
538 Delete corresponding macro's from std-config.h.
539
540 * FIXME: under this new igen scheme, when playing around with igen
541 options, you'll find that depenencies don't work very well.
542
543 * igen.c (gen_itable_c, gen_itable_h), Makefile.in: code to output
544 an table of all the instructions. Code to output a type
545 enumerating all the instructin names.
546
547 * igen.c(lf_print_c_semantic): Move call to increment instruction
548 counter so that it occures _after_ the instruction has been fully
549 validated, was double counting illegal/invalid instructions. Add
550 conditional so only compiled in when WITH_PROFILE enabled (enabled
551 by default).
552
553 * igen.c, cpu.h, cpu.c(cpu_increment_number_of_insns): Include
554 itable.h, count individual instruction types not just total,
555 adjust reporting functions to output this.
556
557 * ppc-instructions (64 bit Load Doubleword with Update Indexed):
558 Had 32./ instead of 31./
559
560 * ppc-instructions (64 bit Store Double Word Conditional Indexed):
561 bitrot - updated to use newer CR register operators.
562
563 * ppc-instructions (64bit Floating Convert from Integer
564 Doubleword): Correct call to Round_Float().
565
c143ef62 566Mon Oct 16 00:31:20 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
567
568 * basics.h: #include "sim_callbacks.h" earlier so that its
569 prototypes are declared in all other header files.
570
571 * bits.h, bits.c, idecode_expression.h (ROTL32, ROTL64): Update
572 doc in bits.h, remove dead code in bits.c, move ROTL32/ROTL64 into
573 bits.h.
574
575 * FIXME: the bits.h/bits.c macro's should be replaced with
576 (inline) c functions.
577
578 * cpu.c(cpu_add_commas), device_tree.h, device_tree.c(scand_*):
579 Add size of buffer argument to functions writing a string into a
580 buffer. Check for buffer overflow.
581
c143ef62 582Sun Oct 15 22:16:11 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
583
584 * devices.h, devices.c, debug.h, debug.c: add macro's for tracing
585 of each device. Make parameter names consistent so macros work.
586 Use macro's in device functions.
587
588 * device_tree.c, devices.h, devices.c: include path to device in a
589 devices node when creating it.
590
591 * device_tree.c, debug.h, debug.c: Add tracing of `device-tree'.
592
593 * core.c: add tracing of core-device, adjust parameter names in
594 core functions to be consistent with those in devices*.
595
c143ef62 596Sun Oct 15 20:33:20 1995 Andrew Cagney <cagney@highland.com.au>
5b4d72dd
MM
597
598 * debug.h, debug.c (trace_option): New function. Parses the trace
599 option, updating the trace array.
600
601 * debug.h, debug.c (trace_usage): New function. Outputs the list
602 of all possible trace options.
603
604 * sim_calls.c (sim_open), main.c (main): Use new trace_option() to
605 parse trace options specified with the simpler -t flag. Adjust
606 usage.
607
608 * FIXME: basic parsing of command line options is still duplicated
609 by main.c and sim_calls.c
610
22ddef46
MM
611Thu Oct 26 10:42:28 1995 Michael Meissner <meissner@tiktok.cygnus.com>
612
e89929cd
MM
613 * Makefile.in (clean): Delete *.i and *.out files.
614
22ddef46
MM
615 * ppc-endian.c (SWAP_n): Add SET argument to allow use of SWAP
616 macros for either assignment or return. Fix SWAP_8 to use a
617 union, and two SWAP_4's. Delete SWAP_N, since nobody uses it now.
618 (ENDIAN_N): Add SET argument to SWAP_n calls. Delete macro defs
619 that hardwired swapping on/off, let optimizer delete dead code.
620
621 * main.c (main): Add printf that we caught a signal and print out
622 the failing address.
623
64415b76
FF
624Thu Oct 19 21:43:39 1995 Fred Fish <fnf@fishfood.amigalib.com>
625
626 * Makefile.in: Remove tabs from otherwise empty line.
627 Confuses many non-GNU versions of "make".
628
629Wed Oct 18 08:51:25 1995 Michael Meissner <meissner@tiktok.cygnus.com>
630
631 * Makefile.in (clean): Delete files produced by gen.
632
5b0d3b14
MM
633Mon Oct 16 17:34:24 1995 Michael Meissner <meissner@tiktok.cygnus.com>
634
635 * gen.c (lf_print_c_semantic_function): Move counting # of
636 instructions here so it works with caching.
637 (gen_idecode_c): Move from here.
638
9aa8a788
MM
639Wed Oct 11 17:13:15 1995 Andrew Cagney <cagney@highland.com.au>
640
641 * gen.c, ppc-instructions, psim.c: Fix code for generating
642 cracking instruction cache. Delete the code that cached just the
643 result from doing an instruction lookup - this ran slower than no
644 cache at all.
645
a1fe883f
MM
646Fri Oct 13 09:58:43 1995 Michael Meissner <meissner@tiktok.cygnus.com>
647
9aa8a788
MM
648 * Makefile.in (gen.o): Include $(INLINE_CFLAGS).
649
a1fe883f
MM
650 * debug.h (ppc_trace): Rename from trace, to avoid a conflict with
651 TCL when gdb is linked with the simulator.
652 * debug.c (ppc_trace): Ditto.
653 * sim_calls.c (sim_open): Change trace -> ppc_trace.
654 * main.c (main): Ditto.
655
656 * cpu.c (cpu_add_commas): Remove extra static.
657
8e20a3ac
MM
658Thu Oct 12 11:35:53 1995 Michael Meissner <meissner@tiktok.cygnus.com>
659
9f5912cb
MM
660 * Makefile.in (psim.o): Now that inlines are turned on, make
661 psim.o depend on all sources.
662
663 * cpu.c (cpu_add_commas): New function to format a long with
664 commas.
665 (cpu_print_info): Use it to print number_of_insns.
666
a8958dd4
MM
667 * ppc-endian.c (SWAP_n): New macros to speed up byte swapping for
668 2, 4, and 8 bytes.
669 (ENDIAN_N): If both target and host byte orders are known, don't
670 bother testing CURRENT_{TARGET,HOST}_BYTE_ORDER.
671
672 * ppc-endian.h (target specific H2T_n/T2H_n macros): Remove #if 0
673 to allow target specific H2T_n/T2H_n macros to be used.
674 (htonl, ntohl): If compiled on a 486 by GCC and WITH_BSWAP is
675 non-zero, redefine the htonl/ntohl macros to use the BSWAP instead
676 of the 3 instruction sequence that runs on 386s.
677
678 * std-config.h (WITH_{HOST,TARGET}_BYTE_ORDER): Don't override if
679 specified on the compile line.
680 (WITH_BSWAP): If not defined, define as 0.
681
8e20a3ac
MM
682 * Makefile.in (INLINE_CFLAGS): Add -DDEFAULT_INLINE=2 to add
683 default inline support. Pass INLINE_CFLAGS when compiling.
684
685 * devices.{h,c} (unimp_device_ioctl): Use STATIC_DEVICES, not
686 INLINE_DEVICES since GCC doesn't like inline functions that
687 accept variable arguments.
688 (stack_ioctl_callback): Make function just static because GCC
689 doesn't like inline functions that accept variable arguments.
690
691 * devices.h (STATIC_DEVICES): Define as empty if not defined.
692
693 * inline.c: Correct pathnames of included C files to match current
694 implementation.
695
696 * inline.h (STATIC_DEVICES): If DEVICES_INLINE is defined to be
697 non-zero, define STATIC_DEVICES to be static.
698
699 * std-config.h (INLINE): If GNU C and optimizing, define this as
700 __inline__.
701 (DEFAULT_INLINE): If not defined, define as 0.
702 (ENDIAN_INLINE): If not defined, define as DEFAULT_INLINE.
703 ({CORE,VM,CPU,EVENTS,REGISTERS,INTERRUPTS}_INLINE): Ditto.
704 ({SPREG,IDECODE}_INLINE): Ditto.
705
c143ef62 706Wed Oct 11 17:13:15 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
707
708 * ppc-instructions: Initial cut of floating point suport added.
709 Of note include - use of host IEEE floating point instructions,
710 use of PowerPC manual pseudo code to handle the FPSCR. It is not
711 currently a pretty sight.
712
713 * memory_map.h, memory_map.c, memory_map_n.h, core.h, core.c:
714 merge into core.h, core.c, core_n.h. The type memory_map replaced
715 with core_map. This removes a level of pointer indirection when
716 translating an address.
717
718 * memory_map.h, memory_map.c, memory_map_n.h: delete.
719
720 * Makefile.in et.al (sorry): tweek to use new core, core_map and
721 core.h.
722
c143ef62 723Wed Oct 11 12:10:26 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
724
725 * sim_calls.c, main.c: Add -g (trace_gdb) option, add tracing to
726 most of the other functions in sim_calls.c.
727
728 * basics.h (CONCAT3), memory_map.c, memory_map_n.h, Makefile.in:
729 Add macros to better cover up `generic' code. Makes it possible
730 to step through the generic code!
731
732 * vm.c, vm_n.h, Makefile.in: ditto
733
c143ef62 734Tue Oct 10 15:42:59 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
735
736 * devices.h, devices.c, memory_map.h, memory_map.c: Changed
737 callback interface so that there is a read/write buffer but no
738 read/write_word. VEA default memory read/write handler sometimes
739 couldn't resolve an access and of those some were for a memory
740 fault and some were because gdb was making a bogus request.
741
742 * devices.h, devices.c, memory_map.h, memory_map.c, vm.h, vm.c:
743 eliminate transfer_mode (raw or cooked) parameter from read/write
744 buffer.
745
c143ef62 746Fri Oct 6 20:23:56 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
747
748 * ppc-instructions (fmul, fmuls): correct instruction format - had
749 FRB instead of FRC.
750
c143ef62 751Wed Oct 4 17:31:12 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
752
753 * psim.c, device_tree.h, device_tree.c, devices.c (printd_*,
754 scand_*): new functions to parse/print fields in device names
755 while hiding any machine dependency.
756
757 * devices.c, psim.c: Change the stack init code so that it is
758 handled by a device. Arguments passed across using a device ioctl
759 (hack).
760
761 * devices.h, devices.c: device ioctl callback changed to allow a
762 variable number of arguments. This gives greater flexability and
763 greater chance of bugs.
764
c143ef62 765Tue Oct 3 22:01:56 1995 Andrew Cagney <cagney@highland.com.au>
8e20a3ac
MM
766
767 * main.c (printf_filtered, error): Missing va_end() to close off
768 variable argument use.
769
770 * Makefile.in (tmp-gencode): comment out hack to get around some
771 versions of make not handling files being created as side-effects.
772
773 * gen.c (lf_open): Add -n (real_file_name) option. Specifies an
774 alternative file name to use in output files for things like #line
775 macros.
776
777 Makefile.in (tmp-gencode): Use gen -n so that debug info is
778 correct.
779
780 * Makefile.in (TARGETLIB): Use this instead of libsim.a in the
781 Makefile.
782
f46f3807
MM
783Sat Oct 7 22:40:59 1995 Michael Meissner <meissner@tiktok.cygnus.com>
784
785 * sim_calls.c (sim_set_callbacks): Define new function.
786
7ca054e8
MM
787Fri Oct 6 17:23:10 1995 Michael Meissner <meissner@tiktok.cygnus.com>
788
789 * psim.c (psim_print_info): Print exit status or signal number.
790
8eab189b
MM
791Mon Oct 2 11:46:37 1995 Michael Meissner <meissner@tiktok.cygnus.com>
792
344d5a23 793 * cpu.c (struct _cpu): Add number_of_insns field to trace how many
83d96c6e
MM
794 instructions are executed.
795 (cpu_increment_number_of_insns): New function to increment the
796 number of instructions issued.
797 (cpu_get_number_of_insns): New function to return the number of
798 instructions issued.
799 (cpu_print_info): New function to print cpu related information.
800 At present, print the number of instructions executed.
801
802 * gen_idecode_c: Emit call to cpu_increment_number_of_insns within
803 idecode_issue.
804
805 * psim.c (psim_print_info): New function to iterate over each of
806 the CPU's calling cpu_print_info.
807
808 * psim.h,cpu.h: Add new declarations.
809
8eab189b
MM
810 * sim_calls.c (sim_open): Add argument processing to add the same
811 switches main.c accepts for the standalone processor.
83d96c6e
MM
812 (sim_close): Call psim_print_info if -I.
813
8eab189b 814 * main.c (main): Add comment saying to update sim_calls.c when
83d96c6e 815 adding switches. Add -I to call psim_print_info when done.
e1aaf979 816 (usage): Update usage message.
8eab189b 817
d8d46596
MM
818Sun Oct 1 13:52:59 1995 Michael Meissner <meissner@tiktok.cygnus.com>
819
820 * main.c (printf_filtered): Correct to match new prototype.
821
9d3b4701
MM
822Sat Sep 30 20:47:05 1995 Michael Meissner <meissner@tiktok.cygnus.com>
823
824 * sim_callbacks.h (printf_filtered): Correct prototype.
825
4f35cbff
MM
826Thu Sep 21 16:26:49 1995 Michael Meissner <meissner@tiktok.cygnus.com>
827
9d3b4701
MM
828 * device_tree.c (OEA_MEMORY_SIZE): Define if not defined to
829 0x100000.
830 (clayton_memory_size): Define as OEA_MEMORY_SIZE.
831
4f35cbff
MM
832 * std-config.h (WITH_TRACE): Default to 1 now.
833
834 * psim.c (write_stack_arguments): Don't write any stack arguments
835 if OEA.
836
837 * main.c (main): Switch to using getopt. Make -p also set
9d3b4701
MM
838 trace_semantics. Make -a turn on all trace flags. Make -C turn
839 on console tracing.
4f35cbff
MM
840
841 * device_tree.c (create_option_device_node): Assume a program is
842 OEA if the start address is < 4096, not just == 0.
843
602677ad
ILT
844Wed Sep 20 13:36:06 1995 Ian Lance Taylor <ian@cygnus.com>
845
846 * Makefile.in (maintainer-clean): New synonym for realclean.
847
0384d2e3
MT
848Sun Sep 10 10:23:56 1995 Michael Tiemann <tiemann@axon.cygnus.com>
849
850 * registers.c (register_description): Add gdb synonyms for cr
851 (cnd) and msr (ps).
852
853Fri Sep 8 13:16:10 1995 Ian Lance Taylor <ian@cygnus.com>
854
855 * Makefile.in (install): Don't install in $(tooldir).
856
8b3797aa
MM
857 * configure.in: Call AC_CONFIG_HEADER. Don't try to use
858 bfd/hosts/*.h file or bfd/config/*.mh file. Call AC_PROG_CC and
859 AC_PROG_RANLIB. Substitute in values for CFLAGS, HDEFINES, AR,
860 and CC_FOR_BUILD. Call AC_CHECK_HEADERS for various header files.
861 Touch stamp.h if creating config.h.
862 * configure: Rebuild.
863 * config.in: New file, created by autoheader.
864 * Makefile.in (AR): Define as @AR@.
865 (CC): New variable, defined as @CC@.
866 (CFLAGS): Define as @CFLAGS@.
867 (CC_FOR_BUILD): New variable, defined as @CC_FOR_BUILD@.
868 (RANLIB): Define as @RANLIB@.
869 (HDEFINES, TDEFINES): New variables.
870 (@host_makefile_frag@): Remove.
871 (mostlyclean): Make the same as clean, not distclean.
872 (clean): Remove config.log.
873 (distclean): Remove config.h and stamp-h.
874 (Makefile): Don't depend upon @frags@. Just rebuild Makefile when
875 invoking config.status.
876 (config.h, stamp-h): New targets.
877 (gen, gen.o): Build with CC_FOR_BUILD, not CC.
878 (ppc-config.h): Rename from old config.h build.
879 * (basics.h,gen.c,ppc-endian.c,psim.c): Include ppc-config.h.
880
4f965b81
MM
881Fri Sep 8 09:51:03 1995 Michael Meissner <meissner@tiktok.cygnus.com>
882
883 * configure{,.in}: Don't include sysdep.h from bfd, since bfd no
884 longer provides it.
885 * basics.h (sysdep.h): Don't include it.
886 * Makefile.in (BASICS_H): Remove sysdep.h.
887
c143ef62 888Wed Sep 6 13:25:42 1995 Andrew Cagney <cagney@highland.com.au>
4f965b81
MM
889
890 * core.c (core_add_data): First growth of bss was being put at
891 wrong address (0) instead of &end.
892
893 * core.c (core_add_stack, core_add_data): Was not handling case
894 where bss/stack is grown across the current end-of-{bss,stack}.
895
c143ef62 896Wed Sep 6 00:46:10 1995 Andrew Cagney <cagney@highland.com.au>
4f965b81
MM
897
898 * system.c (system_call): Fix SYS_break - was aligning bss to a
899 page boundary instead of just an 8 byte one; On first call sbrk(0)
900 != sbrk(0).
901
902Thu Aug 24 14:48:54 1995 Michael Meissner <meissner@tiktok.cygnus.com>
903
904 * Makefile.in (install): Fix install rule.
905
cb7a6892
MM
906Tue Aug 22 09:31:18 1995 Michael Meissner <meissner@tiktok.cygnus.com>
907
908 * system.c (system_call): Add read support.
909
910 * main.c (main): -t sets trace_device_tree. Correct usage message
911 to current reality.
912
913 * device_tree.c (update_memory_node_for_section): Make tracing
914 output line up. If not code or readonly, assume that the section
915 is a data section and has read/write permissions. Add readonly
916 support.
917
918 * core.c (create_core_from_addresses): Print end address in traces
919 and make tracing output line up.
920
921 * Makefile.in: Rewrite from Makefile to work with the Cygnus
922 environment, and support compiling in a different directory than
923 the sources reside in.
924
925 * ppc-endian.h: Rename from endian.h so that it doesn't get
926 confused with /usr/include/sys/endian.h on Linux. Add Linux
927 endian support.
928
929 * ppc-endian.c: Rename to be consistant with ppc-endian.h.
930 Include ppc-endian.h, not endian.h.
931
932 * basics.h (sysdep.h): Include sysdep.h that configure makes.
933 Include ppc-endian.h, not endian.h.
934
935 * std-config.h: Rename from ppc-config. Put #ifndefs around most
936 configuration macros, so they can be overridden via CFLAGS. By
937 default, turn off tracing.
938
939 * configure.in: Clone from other simulator targets.
940 * configure: Generate via autoconf from configure.in.
941
c143ef62 942Sat Aug 19 09:05:32 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
943
944 * ppc-instructions: fix srawi (was geting XER[CA] real wrong).
945
946 * interrupts.c (data_storage_interrupt): allow stack to grow by
947 upto one MB per increment.
948
949 * ppc-instructions: divw was computing rA / rA not rA / rB
950
951 * main.c (main): really stupid. Wasn't exiting with correct status
952
c143ef62 953Fri Aug 18 00:38:01 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
954
955 * system.c (system_call): add system calls kill(2) and getpid(2).
956
957 * main.c (main): Check/return exit status when simulation
958 finishes.
959
c143ef62 960Thu Aug 17 14:29:18 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
961
962 * device_tree.c (create_option_device_node): Alignment rules (at
963 least for the moment) now are for strict alignment only for LE OEA
964 mode. (Because of compiler problems).
965
966 * system.c (system_call) SYS_exit: Wasn't exiting with correct status.
967
c143ef62 968Thu Aug 17 01:16:38 1995 Andrew Cagney <cagney@highland.com.au>
cb7a6892
MM
969
970 * vm.c (DEFINE_VM_DATA_MAP_WRITE_N): For miss aligned transfer
971 forgot to return.
972
973 * system.c (system_call): didn't page align break argument before
974 determining increment break increment.
975
976 * psim/ppc: Re-arange entire directory structure so that
977 everything lives in the one directory. While a pain for cleaning,
978 makes building across multiple architectures much simpler.
979
980 * devices.c, device_tree.c: Added code that provides a simple
981 illustration of how an interrupt control device could be
982 implemented.
983
984 * devices.c: Added code so that the dumb console device can read
985 (from stdin) as well as write to stdout.
986
This page took 0.074308 seconds and 4 git commands to generate.