@@ -38,6 +38,7 @@ AM_CONDITIONAL([CPU_PPC64LE], [test "$CPU" = "ppc64le"])
38
38
AM_CONDITIONAL([ CPU_RISCV64] , [ test "$CPU" = "riscv64"] )
39
39
AM_CONDITIONAL([ CPU_UNDEFINED] , [ test "x$CPU" = "x"] )
40
40
AM_CONDITIONAL([ HAVE_RVV] , [ false] )
41
+ AM_CONDITIONAL([ HAVE_ZICBOP] , [ false] )
41
42
42
43
# Check for programs
43
44
AC_PROG_CC_STDC
@@ -70,9 +71,28 @@ case "${CPU}" in
70
71
[ AC_DEFINE ( [ HAVE_RVV] , [ 0] , [ Disable RVV instructions] )
71
72
AM_CONDITIONAL([ HAVE_RVV] , [ false] ) rvv=no]
72
73
)
74
+ AC_MSG_CHECKING ( [ Zicbop support] )
75
+ AC_COMPILE_IFELSE (
76
+ [ AC_LANG_PROGRAM ( [ ] , [
77
+ __asm__ volatile(
78
+ ".option arch, +zicbop\n"
79
+ ".insn i 0x0F, 0, x0, x0, 0x010" ::: "memory"
80
+ );
81
+ ] ) ] ,
82
+ [ AC_DEFINE ( [ HAVE_ZICBOP] , [ 1] , [ Enable Zicbop instructions] )
83
+ AM_CONDITIONAL([ HAVE_ZICBOP] , [ true] ) zicbop=yes] ,
84
+ [ AC_DEFINE ( [ HAVE_ZICBOP] , [ 0] , [ Disable Zicbop instructions] )
85
+ AM_CONDITIONAL([ HAVE_ZICBOP] , [ false] ) zicbop=no]
86
+ )
87
+ AC_MSG_RESULT ( [ $zicbop] )
73
88
if test "x$rvv" = "xyes"; then
74
- CFLAGS+=" -march=rv64gcv"
75
- CCASFLAGS+=" -march=rv64gcv"
89
+ if test "x$zicbop" = "xyes"; then
90
+ CFLAGS+=" -march=rv64gcv_zicbop"
91
+ CCASFLAGS+=" -march=rv64gcv_zicbop"
92
+ else
93
+ CFLAGS+=" -march=rv64gcv"
94
+ CCASFLAGS+=" -march=rv64gcv"
95
+ fi
76
96
fi
77
97
AC_MSG_RESULT ( [ $rvv] )
78
98
;;
0 commit comments