[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