binutils-gdb/sim
Dimitar Dimitrov fcd5cdd5ae sim: pru: Fix emulation of carry bit
The PRU architecture documentation [1] was used for the initial GNU
simulator implementation.  But recently [2] TI confirmed the carry
behaviour was wrongly documented.  In reality, the PRU carry behaves
like the carry in ARM processors.

This patch fixes simulator to align with latest recommendations from TI.

The new carry.s test was also validated to pass on real hardware -
a BeaglePlay board [3].  That test is a bit long because TI still
has not released official updates for the PRU documents.  And I wanted
to ensure simulator handles all edge cases exactly as the real hardware
does.

[1] https://www.ti.com/lit/pdf/spruij2
[2] https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1244359/sk-am64b-am64x-pru-assembler-how-works-this-bloody-carry
[3] https://www.beagleboard.org/boards/beagleplay

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2023-12-28 09:09:13 +02:00
..
aarch64 sim: aarch64: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
arm sim: arm: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
avr sim: avr: fix -Wimplicit-fallthrough warnings 2023-12-21 01:59:22 -05:00
bfin sim: bfin: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
bpf sim: bpf: fix -Wunused-variable warnings 2023-12-19 05:51:10 -05:00
common sim: common: pull in newlib extensions for Linux compatibility 2023-12-26 22:53:31 -05:00
cr16 sim: cr16: add missing break statement 2023-12-21 01:41:49 -05:00
cris sim: cris: rvdummy: delete unused variable 2023-12-24 05:26:49 -05:00
d10v sim: d10v: fix -Wunused-but-set-variable warnings 2023-12-07 21:41:27 -07:00
erc32 sim: erc32: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
example-synacor sim: modules.c: fix generation after recent refactors 2023-01-15 20:55:48 -05:00
frv sim: cgen: regenerate decode tables 2023-12-24 04:07:32 -05:00
ft32 sim: ft32: fix -Wunused-variable warnings 2023-12-19 05:51:10 -05:00
h8300 sim: h8300: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
igen sim: igen: do not reindent literal semantics output 2023-12-14 22:33:47 -05:00
iq2000 sim: cgen: regenerate decode tables 2023-12-24 04:07:32 -05:00
lm32 sim: cgen: regenerate decode tables 2023-12-24 04:07:32 -05:00
m4 sim: warnings: rework individual flag disable into dedicated vars 2023-12-23 01:21:23 -05:00
m32c sim: m32c: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
m32r sim: cgen: regenerate decode tables 2023-12-24 04:07:32 -05:00
m68hc11 sim: m68hc11: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
mcore sim: mcore: fix Wimplicit-fallthrough warnings 2023-12-21 01:59:23 -05:00
microblaze sim: microblaze: fix -Wunused-variable warnings 2023-12-19 05:51:10 -05:00
mips sim: mips: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
mn10300 sim: signal: mark signal callback funcs as noreturn since they don't return 2023-12-21 01:59:22 -05:00
moxie sim: moxie: fix -Wunused-variable warnings 2023-12-19 05:51:11 -05:00
msp430 sim: msp430: fix -Wunused-variable warnings 2023-12-19 05:51:11 -05:00
or1k sim: cgen: regenerate decode tables 2023-12-24 04:07:32 -05:00
ppc sim: ppc: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
pru sim: pru: Fix emulation of carry bit 2023-12-28 09:09:13 +02:00
riscv sim: riscv: fix -Wshadow=local warnings 2023-12-22 23:29:19 -05:00
rl78 sim: rl78: fix -Wimplicit-fallthrough warnings 2023-12-21 01:59:23 -05:00
rx sim: rx: fix -Wimplicit-fallthrough warnings 2023-12-21 01:59:23 -05:00
sh sim: sh: refine pwsb & pwad nops 2023-12-24 04:00:04 -05:00
testsuite sim: pru: Fix emulation of carry bit 2023-12-28 09:09:13 +02:00
v850 sim: v850: fix -Wunused-variable warnings 2023-12-19 05:51:11 -05:00
.gitignore sim: drop unused gentmap & nltvals.def logic 2021-11-28 13:24:00 -05:00
aclocal.m4 sim: smp: make option available again 2022-12-25 02:13:30 -05:00
arch-subdir.mk.in sim: build: drop support for creating libsim.a in subdirs 2023-01-10 01:15:26 -05:00
ChangeLog-2021 sim: rename ChangeLog files to ChangeLog-2021 2021-08-17 20:27:36 -04:00
config.h.in sim: build: stop probing system extensions (ourselves) 2023-01-16 04:22:10 -05:00
configure sim: warnings: rework individual flag disable into dedicated vars 2023-12-23 01:21:23 -05:00
configure.ac sim: warnings: enable only for development builds 2023-12-04 23:45:27 -05:00
COPYING sim: clarify license text via COPYING file 2021-11-06 01:44:06 -04:00
gdbinit.in sim: gdbinit: hoist setup to common code 2022-02-21 13:57:33 -05:00
MAINTAINERS sim: Update mailing list address 2022-09-01 10:15:09 -04:00
Makefile.am sim: warnings: enable only for development builds 2023-12-04 23:45:27 -05:00
Makefile.in sim: warnings: rework individual flag disable into dedicated vars 2023-12-23 01:21:23 -05:00
README-HACKING sim: build: delete Make-common.in logic 2023-01-13 17:34:53 -05:00