@@ -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,10 +71,29 @@ 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
AC_MSG_RESULT ( [ $zicbop] )
74
89
if test "x$rvv" = "xyes"; then
75
- CFLAGS+=" -march=rv64gcv"
76
- CCASFLAGS+=" -march=rv64gcv"
90
+ if test "x$zicbop" = "xyes"; then
91
+ CFLAGS+=" -march=rv64gcv_zicbop"
92
+ CCASFLAGS+=" -march=rv64gcv_zicbop"
93
+ else
94
+ CFLAGS+=" -march=rv64gcv"
95
+ CCASFLAGS+=" -march=rv64gcv"
96
+ fi
77
97
fi
78
98
AC_MSG_RESULT ( [ $rvv] )
79
99
;;
0 commit comments