From: Mike Frysinger Date: Sun, 24 Dec 2023 10:21:30 +0000 (-0500) Subject: sim: frv: fix cmpb uninitialized variable usage X-Git-Tag: binutils-2_42~322 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f793be444cc72d818064b0c9b98ecd25f781a38d;p=thirdparty%2Fbinutils-gdb.git 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 --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 {