|
From: | maobibo |
Subject: | Re: [PATCH] target/loongarch: Avoid shifting with bool type variable |
Date: | Sat, 14 Sep 2024 11:19:09 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 2024/9/14 上午10:58, Richard Henderson wrote:
yeap, you are right. Variable with 'bool' type can be used with left shifting and treated as 'int' type.On 9/13/24 18:43, Bibo Mao wrote:Variable env->cf[i] is defined as bool type, it cannot be used with leftshifting operation.Not true; it promotes to 'int'. But that isn't wide enough for the value that you're trying to construct.
I will refresh patch in the next version. Regards Bibo Mao
There is existing api read_fcc(), it can be used whendumping fp registers into coredump note segment. Resolves: Coverity CID 1561133 Signed-off-by: Bibo Mao <maobibo@loongson.cn>Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~--- target/loongarch/arch_dump.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/target/loongarch/arch_dump.c b/target/loongarch/arch_dump.c index 4986db970e..d9e1120333 100644 --- a/target/loongarch/arch_dump.c +++ b/target/loongarch/arch_dump.c@@ -97,11 +97,7 @@ static int loongarch_write_elf64_fprpreg(WriteCoreDumpFunction f, loongarch_note_init(¬e, s, "CORE", 5, NT_PRFPREG, sizeof(note.fpu));note.fpu.fcsr = cpu_to_dump64(s, env->fcsr0); - - for (i = 0; i < 8; i++) { - note.fpu.fcc |= env->cf[i] << (8 * i); - } - note.fpu.fcc = cpu_to_dump64(s, note.fpu.fcc); + note.fpu.fcc = cpu_to_dump64(s, read_fcc(env)); for (i = 0; i < 32; ++i) { note.fpu.fpr[i] = cpu_to_dump64(s, env->fpr[i].vreg.UD[0]); base-commit: 28ae3179fc52d2e4d870b635c4a412aab99759e7
[Prev in Thread] | Current Thread | [Next in Thread] |