[binutils-gdb] sim: frv: fix cmpb uninitialized variable usage
Michael Frysinger
vapier@sourceware.org
Mon Jan 1 15:57:15 GMT 2024
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f793be444cc72d818064b0c9b98ecd25f781a38d
commit f793be444cc72d818064b0c9b98ecd25f781a38d
Author: Mike Frysinger <vapier@gentoo.org>
Date: Sun Dec 24 05:21:30 2023 -0500
sim: frv: fix cmpb uninitialized variable usage
This code sets up the cc variable based on the comparison of other
registers, but it does so incrementally with bit operations, and it
never initializes the cc variable. Initialize it to 0 which the
cmpba insn is already doing.
Diff:
---
cpu/frv.cpu | 1 +
sim/frv/sem.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/cpu/frv.cpu b/cpu/frv.cpu
index cdb169eddc1..d2fe7c602cc 100644
--- a/cpu/frv.cpu
+++ b/cpu/frv.cpu
@@ -4266,6 +4266,7 @@
"cmpb$pack $GRi,$GRj,$ICCi_1"
(+ pack (GRk-null) OP_00 GRi ICCi_1 OPE2_0C GRj)
(sequence ((QI cc))
+ (set cc 0)
(set-n cc (eq (and GRi #xff000000) (and GRj #xff000000)))
(set-z cc (eq (and GRi #x00ff0000) (and GRj #x00ff0000)))
(set-v cc (eq (and GRi #x0000ff00) (and GRj #x0000ff00)))
diff --git a/sim/frv/sem.c b/sim/frv/sem.c
index 20ac47be764..cf47aff7c39 100644
--- a/sim/frv/sem.c
+++ b/sim/frv/sem.c
@@ -3055,6 +3055,7 @@ SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
{
QI tmp_cc;
+ tmp_cc = 0;
if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
tmp_cc = ANDQI (tmp_cc, 7);
} else {
More information about the Binutils-cvs
mailing list