On 03/01/2020 13:08, Gaurav Kohli wrote:
Hi,
I am trying latest gcc 9.1 version and executing below code with option
-mtrack-speculation -march=armv8.5-a
#include<stdio.h>
#include<stdlib.h>
#define limit 10
int arr[limit] = {0};
void main() {
int inp;
printf("enter inp\n");
scanf("%d\n",&inp);
if(inp < limit)
printf("val=%d\n",arr[inp]);
else
printf("crossing limit\n");
return;
}
But in disassembly only csel is generating, no csdb is coming:
40069c: 9a9fd1ef csel x15, x15, xzr, le
4006a0: b9401fe1 ldr w1, [sp, #28]
4006a4: b0000080 adrp x0, 411000
<__libc_start_main@GLIBC_2.17>
4006a8: 91012000 add x0, x0, #0x48
4006ac: 93407c21 sxtw x1, w1
4006b0: b8617800 ldr w0, [x0, x1, lsl #2]
4006b4: 2a0003e1 mov w1, w0
4006b8: 90000000 adrp x0, 400000 <_init-0x4a0>
4006bc: 911f8000 add x0, x0, #0x7e0
4006c0: 910003ee mov x14, sp
4006c4: 8a0f01ce and x14, x14, x15
4006c8: 910001df mov sp, x14
4006cc: 97ffff99 bl 400530 <printf@plt>
4006d0: f10003ff cmp sp, #0x0
4006d4: da9f03ef csetm x15, ne // ne = any
4006d8: 1400000b b 400704 <main+0xb8>
4006dc: 9a9fc1ef csel x15, x15, xzr, gt
Can someone please point, when cdsb will come?
Regards
Gaurav
As the manual says, -mtrack-speculation must be used in conjunction with
__builtin_speculation_safe_copy to annotate memory accesses that might
lead to potentially unsafe speculation. See the manual for more details.