Commit Graph

47 Commits

Author SHA1 Message Date
Mike Frysinger
086d7dbb2e sim: ppc: unify igen filter modules
The common igen code was forked from the ppc long ago.  The filter
module is still pretty similar in API, so we can unfork them with
a little bit of effort.

The filter.c module is still here because of the unique it_is API.
The common igen code doesn't seem to have an equiv API as this only
operates on two strings and not an actual filter object, and it's
easy enough to leave behind to unfork the rest.
2024-01-03 03:37:13 -05:00
Mike Frysinger
7811c75893 sim: ppc: unify igen line number output modules
The common igen code was forked from the ppc long ago.  The lf module
is still pretty similar in API, so we can unfork them with a little
bit of effort.

Some of the generated ppc code is now slightly different, but that's
because of fixes the common igen code has gained, but not the ppc igen
code (e.g. fixing of #line numbers).

The ppc code retains lf_print__c_code because the common igen code
rewrote the logic to a new table.c API.  Let's delay that in the ppc
code to at least unfork all this code.
2024-01-03 03:32:08 -05:00
Mike Frysinger
9ddac092a8 sim: ppc: rework igen error to match common
Switch to an ERROR macro and tweak the error signature to match the
common igen version in preparation for merging the two implementations.
2024-01-01 17:39:09 -05:00
Mike Frysinger
9b6e0cb3ba sim: ppc: rename igen max_insn_bit_size
We want to avoid conflicts with the common igen enums.  This should
get migrated over to the common parsing logic, but for now, switch
the name to avoid redefinition.
2024-01-01 17:30:53 -05:00
Mike Frysinger
179bd7a89d sim: ppc: drop build-config.h usage
This header is only used by the igen tool, and none of the igen code
depends on the configure-time checks.  Delete the logic to simplify
to prepare for moving it to the local.mk code.
2024-01-01 15:59:11 -05:00
Mike Frysinger
866a2ad35b sim: ppc: igen: fix -G handling
We weren't using the enable_p flag to see whether the option should
be enabled or disabled, and we weren't breaking out when done parsing.
2023-12-21 21:04:44 -05:00
Mike Frysinger
c96b63a2e9 sim: ppc: fix -Wmisleading-indentation warnings
Fix building with -Wmisleading-indentation.
2023-12-04 23:38:55 -05:00
Tsukasa OI
dd6c5a9217 sim, sim/{m32c,ppc,rl78}: Use getopt_long
Because of a Libiberty hack, getopt on GNU libc (2.25 or earlier) is
currently unusable on sim, causing a regression on CentOS 7.

This is caused as follows:

1.  If HAVE_DECL_GETOPT is defined (getopt declaration with known prototype
    is detected while configuration), a declaration of getopt in
    "include/getopt.h" is suppressed.
    The author started to define HAVE_DECL_GETOPT in sim with the commit
    340aa4f687 ("sim: Check known getopt definition existence").
2.  GNU libc (2.25 or earlier)'s <unistd.h> includes <getopt.h> with a
    special purpose macro defined to declare only getopt function but due
    to include path (not tested while configuration), it causes <unistd.h>
    to include Libiberty's "include/getopt.h".
3.  If both 1. and 2. are satisfied, despite that <unistd.h> tries to
    declare getopt by including <getopt.h>, "include/getopt.h" does not do
    so, causing getopt function undeclared.

Getting rid of "include/getopt.h" (e.g. renaming this header file) is the
best solution to avoid hacking but as a short-term solution, this commit
replaces getopt with getopt_long under sim/.
2022-10-29 05:39:52 +00:00
Andrew Burgess
744875dfdc sim/ppc: fix warnings related to printf format strings
This commit is a follow on to:

  commit 182421c9d2
  Date:   Tue Oct 11 15:02:08 2022 +0100

      sim/ppc: fixes for arguments to printf style functions

where commit 182421c9d2 addressed issues with printf format
arguments that were causing the compiler to give an error, this commit
addresses issues that caused the compiler to emit a warning.

This commit is mostly either changing the format string to match the
argument, or in some cases, excess, unused arguments are removed.
2022-10-19 14:32:22 +01:00
Mike Frysinger
c26c6bc0a5 sim: ppc: use silent build rules here too
The ppc codebase is unique and doesn't leverage common/, so have to
add silent rules to it specifically.
2021-10-31 05:26:57 -04:00
Mike Frysinger
a49dd19e81 sim: ppc: avoid "PAGE_SIZE" name
This define is used for a particular target and depends on the
simulated CPU hardware.  It has no relation to the host CPU that
the sim is running on.  So rename the common "PAGE_SIZE" here to
better reflect its usage and avoid conflicts with system headers.
2021-06-17 19:05:59 -04:00
Mike Frysinger
be2bc30f9c sim: ppc: clean up various warnings
A random grab bag of minor fixes to enable -Werror for this port.

Cast address vars to long when the format was using %l.
Use %zu with sizeof operations.
Add const to a bunch of strings.
Trim unused variables.
Fix sizeof call to calculate target storage and not the pointer itself.
2021-05-15 11:00:00 -04:00
Mike Frysinger
3d52735bab sim: include stdlib.h for atoi()
Make sure the files using atoi() include stdlib.h for its prototype.
These files were relying on it being included implicitly by others
which isn't guaranteed, and newer toolchains produce warnings.
2021-01-04 20:17:37 -05:00
Joel Brobecker
51b318dec8 [sim] Update old contact info in GPL license notices
sim/ChangeLog:

        Update old contact info in GPL license notices.
2012-12-19 07:18:22 +00:00
Joel Brobecker
3fd725ef34 Update sim copyright headers from GPLv2-or-later to GPLv3-or-later.
gdb/sim/ChangeLog:

        Update the non-FSF-copyrighted files in sim to GPLv3 or later.
2012-12-19 07:12:02 +00:00
Nathan Froyd
68a3e151da * configure.ac: If build != host, create a separate build-config.h
file desecribing the build machine.
	* configure: Regenerate.
	* lf.c: Include build-config.h instead of config.h.
	* dgen.c: Likewise.
	* igen.c: Likewise.
	* misc.c: Likewise.
	* misc.h: Likewise.
	* filter.c: Likewise.
	* table.c: Likewise.
2009-11-14 02:22:32 +00:00
Andrew Cagney
d81bb16ac0 2003-06-19 Andrew Cagney <cagney@redhat.com>
* ld-insn.h: Update copyright.
	(cache_fields): Define.
	(insn_table_fields): Add insn_field_6 and insn_field_7.
	(load_insn_table): Pass in the "cache_rules".
	* ld-insn.c: Update copyright.
	(load_insn_table): Add parameter "cache_rules".  Handle "cache",
	"computed" and "scratch" fields.
	(main): Pass "cache_rules" to load_insn_table.
	* ld-cache.h: Update copyright.
	(append_cache_table): Declare.
	* ld-cache.c: Update copyright.
	(append_cache_table): New function.
	(load_cache_table): Call.
	* gen-model.c: Include "ld-cache.h".
	* gen-itable.c: Include "ld-cache.h".
	* igen.c: Move #include "ld-cache.h" to earlier.  Update
	copyright.
	(main): Permit a NULL "cache_rules".  Pass address of
	"cache_rules" to load_insn_table.
	* Makefile.in (tmp-ld-insn): Add "ld-cache.o".
	(tmp-igen): Do not include ppc-cache-rules.
	(gen-itable.o, gen-model.o): Add "ld-cache.h".
	* ppc-cache-rules: Delete file.
	* ppc-instructions: Add cache rules.
2003-06-20 03:59:33 +00:00
Andrew Cagney
8d64d0fdca 2003-06-19 Andrew Cagney <cagney@redhat.com>
* Makefile.in (ICACHE_CFLAGS, SEMANTICS_CFLAGS): Delete.
	(SIM_FPU_FLAGS): Define.
	(icache.o): Delete explicit compile command.
	(semantics.o, idecode.o): Delete explicit compile command.
	(NOWARN_CFLAGS, STD_CFLAGS): Append SIM_FPU_CFLAGS.
	* gen-support.c (gen_support_c): Generate #include of
	"sim-inline.h" and "sim-fpu.h", but conditional on
	HAVE_COMMON_FPU.
	* gen-idecode.c (gen_idecode_c): Ditto.
	* igen.c (gen_icache_c, gen_semantics_c): Wrap #include of
	"sim-inline.h" and "sim-fpu.h" in HAVE_COMMON_FPU conditional.
	Move to before "support.h".
	* Makefile.in, gen-support.c, gen-idecode.c, igen.c: Update
	copyright.
2003-06-19 18:42:30 +00:00
Matthew Green
43c4bab055 * Makefile.in (tmp-igen): Pass -I $(srcdir) to igen.
* igen.c (main): Change -I to add include paths for :include:
files.
Implement -G as per sim/igen, with just gen-icache=N support.
Call load_insn_table() with the built include path.

* ld-insn.c (parse_include_entry): New. Load an :include: file.
(load_insn_table): New `includes' argument.  Look for :include:
entries and call parse_include_entry() for them.
(main): Adjust load_insn_table() call.
* ld-insn.h (model_include_fields): New enum.
(load_insn_table): Update prototype.
* table.c (struct _open_table, struct _table): Rework
structures to handle included files.
(table_push): Move the guts of table_open() here.

* table.c (struct _open table, struct table): Make table object an
indirect ptr to the current table file.
(current_line, new_table_entry, next_line): Make file arg type
open_table.
(table_open): Use table_push.
(table_entry_read): Point variable file at current table, at eof, pop
last open table.

* misc.h (NZALLOC): New macro. From sim/igen.

* table.h, table.c (table_push): New function.
2002-01-12 10:21:12 +00:00
Matthew Green
d29d5195ca * support sim-fpu.c for correct FP emulation.
* Makefile.in (LIB_OBJ): Add @sim_fpu@.
	(ICACHE_CFLAGS, SEMANTICS_CFLAGS): New variables.
	(icache.o, semantics.o): Add new ICACHE_FLAGS & SEMANTICS_FLAGS.
	(sim-fpu.o, sim-bits.o, tconfig.h): New targets.
	* configure.in: Rename INLINE_LOCALS to PSIM_INLINE_LOCALS.  Add a
	check for sim/common/sim-fpu.c.  Output sim_fpu and sim_fpu_cflags.
	* configure: Regenerate.
	* device.h (device_find_integer_array_property): Match function definition.
	* gen-icache.c (print_icache_internal_function_declaration): Rename
	INLINE_ICACHE to PSIM_INLINE_ICACHE.
	* gen-idecode.c (print_idecode_run_function_header): Rename INLINE_IDECODE
	to PSIM_INLINE_IDECODE.
	* gen-semantics.c (print_semantic_function_header): Rename
	EXTERN_SEMANTICS to PSIM_EXTERN_SEMANTICS.
	* gen-support.c (print_support_function_name): Rename INLINE_SUPPORT to
	PSIM_INLINE_SUPPORT.
	* igen.c (print_function_name): Also escape `(' and `)'.
	(gen_semantics_h): Rename EXTERN_SEMANTICS to PSIM_EXTERN_SEMANTICS.
	(gen_semantics_c): Likewise.  Also output includes for "sim-fpu.h"
	* inline.h (INLINE_SIM_ENDIAN): Renamed INLINE_PSIM_ENDIAN.
	(EXTERN_SIM_ENDIAN): Renamed EXTERN_PSIM_ENDIAN.
	(STATIC_INLINE_SIM_ENDIAN): Renamed STATIC_INLINE_PSIM_ENDIAN.
	(INLINE_LOCALS): Renamed PSIM_INLINE_LOCALS.
	(EXTERN_SUPPORT): Renamed PSIM_EXTERN_SUPPORT.
	(INLINE_SUPPORT): Renamed PSIM_INLINE_SUPPORT.
	(EXTERN_SEMANTICS): Renamed PSIM_EXTERN_SEMANTICS.
	(INLINE_SEMANTICS): Renamed PSIM_INLINE_SEMANTICS.
	(EXTERN_IDECODE): Renamed PSIM_EXTERN_IDECODE.
	(INLINE_IDECODE): Renamed PSIM_INLINE_IDECODE.
	(EXTERN_ICACHE): Renamed PSIM_EXTERN_ICACHE.
	(INLINE_ICACHE): Renamed PSIM_INLINE_ICACHE.
	* options.c (options_inline): Fix names.
	* sim-endian-n.h: Change INLINE_SIM_ENDIAN to INLINE_PSIM_ENDIAN.
	* sim-endian.h: Likewise.
	* sim-main.h: New file.
	* std-config.h: Rename INLINE_LOCALS to PSIM_INLINE_LOCALS.
2001-12-14 00:22:13 +00:00
Stan Shebs
7a292a7adf import gdb-19990422 snapshot 1999-04-26 18:34:20 +00:00
Stan Shebs
c906108c21 Initial creation of sourceware repository 1999-04-16 01:35:26 +00:00
Stan Shebs
071ea11e85 Initial creation of sourceware repository 1999-04-16 01:34:07 +00:00
Michael Meissner
5c04f4f7fc January 23rd merge 1997-01-27 21:34:50 +00:00
Michael Meissner
30c87b55ec New simulator changes from Andrew 1996-07-23 15:42:42 +00:00
Michael Meissner
8a1d8a0b60 update from andrew 1996-03-23 15:02:42 +00:00
Michael Meissner
f2181eff5f Sort instruction names; Add igen -R option; count # of CRs that mtcrf moved 1995-11-25 01:35:14 +00:00
Michael Meissner
45525d8d6d Fix warnings to everything can be compiled with -Wall; Redo model specific changes once again to speed things up 1995-11-24 16:44:37 +00:00
Michael Meissner
4a0351ab45 Add floating point model specific support; Redo method model specific support is done; Add remaining floating add/subtract-multiply 1995-11-21 21:41:25 +00:00
Michael Meissner
4220dcd698 checkpoint ppc simulator 1995-11-17 19:17:58 +00:00
Michael Meissner
84bbbc3577 Delete old functional_unit support; Add --enable-sim-model-issue; Monitor branch prediction success 1995-11-16 21:42:27 +00:00
Michael Meissner
867b71685a fix bug in last checkin 1995-11-16 19:25:47 +00:00
Michael Meissner
845ff5a45f more functional unit changes 1995-11-16 19:02:52 +00:00
Michael Meissner
80948f392b More model specific changes 1995-11-15 22:53:59 +00:00
Michael Meissner
39c324612d make inline model use static when inlining. 1995-11-14 11:34:01 +00:00
Michael Meissner
f35df46cc3 make inline model use static when inlining. 1995-11-14 11:25:34 +00:00
Michael Meissner
fe439e0f18 fix more warnings 1995-11-14 10:52:24 +00:00
Michael Meissner
ac79ccd41d Fix warnings and dependency 1995-11-14 09:52:29 +00:00
Michael Meissner
1dc7c0ed84 checkpoint 1995-11-13 16:07:30 +00:00
Michael Meissner
eb4ef19775 Add model-functions support 1995-11-13 01:27:21 +00:00
Michael Meissner
28816f45f5 Add support for setting model name and other things 1995-11-12 14:20:39 +00:00
Michael Meissner
a31140524a Tons of changes to allow model specific information in the instruction file. 1995-11-10 22:49:05 +00:00
Michael Meissner
ba62bb1c74 Turn on INLINES if using GCC to compile simulator; Print more stuff if requests -t trace; If !WITH_ASSERT, do not check whether illegal bits in instruction are set 1995-11-09 19:50:51 +00:00
Michael Meissner
c5addc193d General cleanup; add -t options support to print all options 1995-11-09 02:35:15 +00:00
Michael Meissner
c494cadde6 Use autoconf correctly; provide more stats with -I 1995-11-02 20:21:35 +00:00
Michael Meissner
a983c8f080 Andrew's latest changes & print all instruction counts if -I 1995-11-02 14:27:18 +00:00
Michael Meissner
c143ef6296 Lots of changes 1995-11-01 19:32:38 +00:00