Commit Graph

5169 Commits

Author SHA1 Message Date
Mike Frysinger
a70dcdebbd sim: common: pull in newlib extensions for Linux compatibility
Since newlib allows people to opt-in to extra errno names, pull them
into our table too.  The values don't conflict with each other -- the
newlib names & values are distinct from newlib's Linux compatibility.
2023-12-26 22:53:31 -05:00
Mike Frysinger
59b6dbff95 sim: cris: rvdummy: delete unused variable 2023-12-24 05:26:49 -05:00
Mike Frysinger
9e6855c7cb sim: cgen: mark cgen_rtx_error noreturn
Since this function never returns, mark it as such to fix some unused
variable warnings in error code paths.

For example, cris triggers:
sim/cris/semcrisv10f-switch.c:3558:11: error:
	variable 'tmp_newval' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]

Even though it has an "else" path that calls this error function.
2023-12-24 05:09:28 -05:00
Mike Frysinger
aea0b94653 sim: cgen: regenerate decode tables
Integrate some changes from upstream cgen that tightened up the
generated output.  Shouldn't be any functional changes here.
2023-12-24 04:07:32 -05:00
Mike Frysinger
43fbcdcd03 sim: sh: refine pwsb & pwad nops
Since these insns don't do anything and are effectively ignored,
return early to avoid doing any common processing at the end as
that requires initializing variables like "res" with something.
2023-12-24 04:00:04 -05:00
Mike Frysinger
fed277fe15 sim: sh: fix plds Dz,MACL implementation
The plds Dz,MACL insn stores the Dz bit into MACL.  The current code
was storing the "res" variable into Dz and then into MACL, but not
setting "res" to anything.  Delete that logic and make it match the
existing plds Dz,MACH insn.
2023-12-24 03:56:00 -05:00
Mike Frysinger
4da6be3f1a sim: warnings: rework individual flag disable into dedicated vars
The -Wshadow=local is too new for some compilers, so move it to a var
that we test at configure time.
2023-12-23 01:21:23 -05:00
Mike Frysinger
62544b0cf1 sim: sh: fix -Wshadow=local warnings
Rename the var to avoid shadowing & clobbering the higher context.
2023-12-22 23:29:19 -05:00
Mike Frysinger
f0fcc327e3 sim: riscv: fix -Wshadow=local warnings
Inline the one usage of sd in these macros to avoid possible shadowing.
2023-12-22 23:29:19 -05:00
Mike Frysinger
5cc45e2384 sim: ppc: fix -Wshadow=local warnings
Use a local name in the macro to avoid shadowing wherever it's used.
2023-12-22 23:29:19 -05:00
Mike Frysinger
d31fd3f617 sim: mips: fix -Wshadow=local warnings
Delete redundant decls when the existing scope has the same var and
type available for use.
2023-12-22 23:29:19 -05:00
Mike Frysinger
c6f30b8791 sim: m68hc11: fix -Wshadow=local warnings
Delete redundant decls when the existing scope has the same var and
type available for use.
2023-12-22 23:29:19 -05:00
Mike Frysinger
e4e3a80911 sim: m32c: fix -Wshadow=local warnings
These decoders declare a lot of common variables for use by substeps,
and then shadows a few because of how the opc generator is implemented.
Easiest way around it is to rename the per-substep vars as needed as
anything more would require substantial changes to the opc logic.
2023-12-22 23:29:19 -05:00
Mike Frysinger
2d351bda2f sim: iq2000: fix -Wshadow=local warnings
Delete redundant decls.
2023-12-22 23:29:19 -05:00
Mike Frysinger
a42661395e sim: h8300: fix -Wshadow=local warnings
Delete conflicting decls when the existing scope has vars of the same
name & type for this exact use.
2023-12-22 23:29:19 -05:00
Mike Frysinger
9b5e6c1e48 sim: frv: fix -Wshadow=local warnings
Delete redundant decls, and rename conflicting vars.
2023-12-22 23:29:19 -05:00
Mike Frysinger
a4531a4010 sim: erc32: fix -Wshadow=local warnings
Rename shadowed vars with different types to avoid confusion.
2023-12-22 23:29:19 -05:00
Mike Frysinger
87271996ea sim: cris: disable -Wshadow=local in generated mloop files
The mloop files include CGEN generated switch files which have some
nested assignments that expand into repeated shadowed variables.
Fixing this looks fairly non-trivial as it appears to be interplay
between the common CGEN code and how this particular set of cris
insns are defined.  Disable the warning instead.

In file included from sim/cris/mloop.in:286:
sim/cris/semcrisv10f-switch.c: In function ‘crisv10f_engine_run_full’:
sim/cris/semcrisv10f-switch.c:12383:8: error: declaration of ‘opval’ shadows a previous local [-Werror=shadow=local]
12383 |     SI opval = tmp_addr;
      |        ^~~~~
sim/cris/semcrisv10f-switch.c:12371:9: note: shadowed declaration is here
12371 |     USI opval = ({   SI tmp_addr;
      |         ^~~~~

And the code looks like:
	USI opval = ({
		...
			{
				SI opval = tmp_addr;
				...
			}
		...
	});

Since the CGEN code treats "opval" as an internal variable that the cpu
definitions don't have direct access to, the likelihood of this being a
real bug is low, so leave it be.  The warning is suppressed for more code
that is hand written (e.g. the mloop logic), but disabling for the entire
file is the easiest way to suppress while keeping it on everywhere else in
the sim.
2023-12-22 23:29:19 -05:00
Mike Frysinger
c99faa9291 sim: cris: fix -Wshadow=local warnings
Delete redundant local decls.
2023-12-22 23:29:19 -05:00
Mike Frysinger
ef382e84b7 sim: common: fix -Wshadow=local warnings
Rename shadowed vars with different types, and delete redundant decls.
2023-12-22 23:29:19 -05:00
Mike Frysinger
5f347a1106 sim: bfin: fix -Wshadow=local warnings
Rename the shadowed var to avoid confusion with the function argument
as to which address this code is using.
2023-12-22 23:29:19 -05:00
Mike Frysinger
8ce49cf102 sim: arm: fix -Wshadow=local warnings
Remove duplicate nested variable declarations, rename some to avoid
confusion when the type is different or the original value should be
retained, and fix some weirdness with nested enums in structs.
2023-12-22 23:29:19 -05:00
Mike Frysinger
2bf4edd2ea sim: aarch64: fix -Wshadow=local warnings
These functions have local vars named "val" of type float, and
then create nested vars named "val" of type double.  This is a
bit confusing and causes build time warnings.
2023-12-22 23:29:19 -05:00
Mike Frysinger
401b5b00ec sim: cgen: regenerate decode tables to avoid shadow warnings
Use latest cgen to regenerate the decode tables which has some shadow
warning fixes with "val" variables.
2023-12-22 10:53:49 -05:00
Mike Frysinger
4a517293bb sim: cris: regen cgen decoders to fix build warnings [PR sim/31181]
Bug: https://sourceware.org/PR31181
2023-12-22 10:44:39 -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
3744b73e3b sim: warnings: enable -Wreturn-type
Older versions of gcc support this warning flag.  We're already clean.
2023-12-21 20:59:16 -05:00
Mike Frysinger
fa113bd940 sim: warnings: fix -Wreturn-mismatch typo 2023-12-21 20:58:51 -05:00
Mike Frysinger
06bc778c13 sim: m32c: fix initial #line number in generated code
This emits #line 2 for the first line in the output when it should be 1.
2023-12-21 20:17:38 -05:00
Mike Frysinger
6003fe166d sim: mloop: add #line pragmas everywhere
This will make compiler diagnostics much better with generated code
so people can understand the original source file.
2023-12-21 20:16:26 -05:00
Mike Frysinger
c0e97c8525 sim: common: add $LINENO rewriting support to genmloop scripts
The generated mloop files can trigger compile time warnings.  It can
be difficult to see/understand where the original code is coming from
as all the diagnostics point to the generated output.  Using #line
pragmas, we can point people to the original source files.

Unfortunately, this code is written in POSIX shell, and that lacks
support for line number tracking.  The $LINENO variable, even when
available, can just be plain wrong.  For example, when using dash
and subshells, $LINENO can end up having negative values.  Add a
wrapper script that will uses awk to rewrite the $LINENO variable
to the right value to avoid all that.

Basically lineno.sh takes an input script, rewrites all uses of
$LINENO into the actual line number (and $0 into the original file
name), and then executes the temporary script.

This commit doesn't actually add #line pragmas to any files.  That
comes next.
2023-12-21 20:16:26 -05:00
Mike Frysinger
3a4ee62868 sim: warnings: enable -Wimplicit-fallthrough=5
It caught some legitimate bugs, so clearly it's helpful.
2023-12-21 01:59:23 -05:00
Mike Frysinger
849bdf4ead sim: sh: fix -Wimplicit-fallthrough warnings
These generate conditional insns where it tests, then fallsthru.
2023-12-21 01:59:23 -05:00
Mike Frysinger
85433eb331 sim: rx: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:23 -05:00
Mike Frysinger
e8aaac5fe6 sim: rl78: fix -Wimplicit-fallthrough warnings
Seems like this code was meant to fallthru.
2023-12-21 01:59:23 -05:00
Mike Frysinger
05b9feffff sim: riscv: fix -Wimplicit-fallthrough warnings 2023-12-21 01:59:23 -05:00
Mike Frysinger
92a9d946da sim: ppc: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:23 -05:00
Mike Frysinger
77b3c4f666 sim: or1k: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:23 -05:00
Mike Frysinger
28c06ff1a1 sim: mips: fix -Wimplicit-fallthrough warnings
Seems like these cases were meant to fallthru.
2023-12-21 01:59:23 -05:00
Mike Frysinger
80200ef6b4 sim: mcore: fix Wimplicit-fallthrough warnings
Seems like these decodes were intended to fallthru.
2023-12-21 01:59:23 -05:00
Mike Frysinger
452bfb00b5 sim: m68hc11: fix -Wimplicit-fallthrough warnings
Seems like these register operations intended on falling thru.
2023-12-21 01:59:22 -05:00
Mike Frysinger
aab7152186 sim: frv: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:22 -05:00
Mike Frysinger
fcad8e6ba7 sim: erc32: fix -Wimplicit-fallthrough warnings
Add the attribute where it seems to make sense.
2023-12-21 01:59:22 -05:00
Mike Frysinger
b356d0c5a0 sim: cris: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:22 -05:00
Mike Frysinger
f0e2dc75ce sim: bfin: fix -Wimplicit-fallthrough warnings
Add the attribute to places where we want to fall thru.
2023-12-21 01:59:22 -05:00
Mike Frysinger
639bab3ca6 sim: avr: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:22 -05:00
Mike Frysinger
beb9aecf12 sim: arm: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:22 -05:00
Mike Frysinger
5e6951299a sim: aarch64: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute, and add some
default abort calls when the compiler can't figure out that the set
of values were already fully enumerated in the switch statement.
2023-12-21 01:59:22 -05:00
Mike Frysinger
9362022e95 sim: common: fix -Wimplicit-fallthrough warnings
Replace some fall through comments with the attribute.
2023-12-21 01:59:22 -05:00
Mike Frysinger
29f1ffea25 sim: add ATTRIBUTE_FALLTHROUGH for local code
We'll replace various /* fall through */ comments so compilers can
actually understand what the code is doing.
2023-12-21 01:59:22 -05:00