diff options
Diffstat (limited to 'results/classifier/zero-shot/118/architecture/1790')
| -rw-r--r-- | results/classifier/zero-shot/118/architecture/1790 | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/results/classifier/zero-shot/118/architecture/1790 b/results/classifier/zero-shot/118/architecture/1790 new file mode 100644 index 000000000..647ca44c2 --- /dev/null +++ b/results/classifier/zero-shot/118/architecture/1790 @@ -0,0 +1,89 @@ +architecture: 0.981 +register: 0.894 +performance: 0.860 +graphic: 0.821 +boot: 0.809 +semantic: 0.738 +device: 0.730 +TCG: 0.709 +arm: 0.707 +debug: 0.680 +mistranslation: 0.585 +assembly: 0.543 +ppc: 0.530 +network: 0.505 +vnc: 0.500 +x86: 0.499 +PID: 0.491 +files: 0.488 +risc-v: 0.474 +VMM: 0.455 +i386: 0.438 +peripherals: 0.433 +socket: 0.425 +user-level: 0.405 +permissions: 0.396 +virtual: 0.366 +hypervisor: 0.216 +kernel: 0.162 +KVM: 0.068 +-------------------- +arm: 0.958 +TCG: 0.864 +boot: 0.835 +debug: 0.762 +kernel: 0.489 +architecture: 0.476 +assembly: 0.220 +files: 0.161 +register: 0.111 +semantic: 0.089 +performance: 0.024 +user-level: 0.021 +PID: 0.019 +hypervisor: 0.017 +device: 0.015 +VMM: 0.010 +KVM: 0.008 +virtual: 0.008 +risc-v: 0.007 +socket: 0.005 +vnc: 0.004 +ppc: 0.004 +peripherals: 0.003 +permissions: 0.002 +network: 0.002 +graphic: 0.001 +x86: 0.001 +mistranslation: 0.001 +i386: 0.001 + +[AARCH64] STGP instruction is not writing the value of the second register to memory +Description of problem: +My application is built with Clang 16 and the option -fsanitize=memtag-stack. +It means the the MTE protection is activated for the stack. +The local variables are tagged and the compiler is often using the STGP instruction "Store Allocation Tag and Pair of registers" in order to transfer the value of two 64-bit registers to memory. +The following instruction was not working as expected: + 18004: 69000895 stgp x21, x2, [x4] +The value of the second register x2 is not transferred to the memory. +Only x21 is written. + +I think that the issue is in trans_STGP(). +We don't call finalize_memop_pair() like we do for in the general trans_STP(). + +``` +diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c +index 7d0c8f79a7..f599f3e136 100644 +--- a/target/arm/tcg/translate-a64.c ++++ b/target/arm/tcg/translate-a64.c +@@ -3034,6 +3034,8 @@ static bool trans_STGP(DisasContext *s, arg_ldstpair *a) + + tcg_rt = cpu_reg(s, a->rt); + tcg_rt2 = cpu_reg(s, a->rt2); ++ mop = a->sz + 1; ++ mop = finalize_memop_pair(s, mop); + + assert(a->sz == 3); +``` + +With this fix, my OS (Kinibi) is now able to boot. |