@@ -53,7 +53,7 @@ setup_build_dir() {
5353# Main
5454#
5555
56- supported=" ARM"
56+ supported=" ARM, PPC "
5757
5858if [ $# -ne 3 ] || [ " $1 " = " -h" ] || [ " $1 " = " --help" ]; then
5959 echo " $0 <arch> <path-llvm-project> <llvm-release-commit>"
@@ -99,12 +99,15 @@ $tblgen --printerLang=CCS --gen-subtarget -I "$llvm_root/llvm/include/" -I "$llv
9999echo " [*] Generate Mapping tables..."
100100$tblgen --printerLang=CCS --gen-asm-matcher -I " $llvm_root /llvm/include/" -I " $llvm_root /llvm/lib/Target/$llvm_target_dir /" " $llvm_root /llvm/lib/Target/$llvm_target_dir /$arch .td"
101101
102- echo " [*] Generate System Register tables..."
103- $tblgen --printerLang=CCS --gen-searchable-tables -I " $llvm_root /llvm/include/" -I " $llvm_root /llvm/lib/Target/$llvm_target_dir /" " $llvm_root /llvm/lib/Target/$llvm_target_dir /$arch .td"
104- sed -i " s/##ARCH##/$arch /g" __ARCH__GenCSSystemRegisterEnum.inc
105- sed -i " s/##ARCH##/$arch /g" __ARCH__GenSystemRegister.inc
106- cp __ARCH__GenCSSystemRegisterEnum.inc $arch " GenCSSystemRegisterEnum.inc"
107- cp __ARCH__GenSystemRegister.inc $arch " GenSystemRegister.inc"
102+ has_sys_reg_tables=" ARM"
103+ if echo " $has_sys_reg_tables " | grep -q -w " $arch " ; then
104+ echo " [*] Generate System Register tables..."
105+ $tblgen --printerLang=CCS --gen-searchable-tables -I " $llvm_root /llvm/include/" -I " $llvm_root /llvm/lib/Target/$llvm_target_dir /" " $llvm_root /llvm/lib/Target/$llvm_target_dir /$arch .td"
106+ sed -i " s/##ARCH##/$arch /g" __ARCH__GenCSSystemRegisterEnum.inc
107+ sed -i " s/##ARCH##/$arch /g" __ARCH__GenSystemRegister.inc
108+ cp __ARCH__GenCSSystemRegisterEnum.inc $arch " GenCSSystemRegisterEnum.inc"
109+ cp __ARCH__GenSystemRegister.inc $arch " GenSystemRegister.inc"
110+ fi
108111
109112if find -- " ../vendor/tree-sitter-cpp/" -prune -type d -empty | grep -q ' ^' ; then
110113 echo " [*] Clone tree-sitter-cpp..."
@@ -132,7 +135,7 @@ cd $llvm_root
132135llvm_release_tag=$( git describe --tag $llvm_release_commit )
133136cd " $cs_root /suite/auto-sync/build"
134137
135- cs_arch_dir=" $cs_root /arch/$arch /"
138+ cs_arch_dir=" $cs_root /arch/$llvm_target_dir /"
136139cs_inc_dir=" $cs_root /include/capstone"
137140
138141into_arch_main_header=$arch " GenCSInsnEnum.inc " $arch " GenCSFeatureEnum.inc " $arch " GenCSRegEnum.inc " $arch " GenCSSystemRegisterEnum.inc"
@@ -143,7 +146,7 @@ for f in $into_arch_main_header; do
143146 ../PatchMainHeader.py --header " $main_header " --inc " $f "
144147done
145148
146- for f in $( ls | grep " \.inc" ) ; do
149+ for f in $( ls | grep " $arch .* \.inc" ) ; do
147150 if ! echo $into_arch_main_header | grep -q -w $f ; then
148151 sed -i " s/LLVM-commit: <commit>/LLVM-commit: $llvm_release_commit /g" $f
149152 sed -i " s/LLVM-tag: <tag>/LLVM-tag: $llvm_release_tag /g" $f
168171echo " [*] Apply patches to inc files"
169172
170173cd $cs_root
171- p_dir=" $cs_root /suite/auto-sync/inc_patches"
174+ p_dir=" $cs_root /suite/auto-sync/inc_patches/ $arch "
172175for f in $( ls $p_dir ) ; do
173176 echo " [*] Apply $f "
174177 git apply " $p_dir /$f "
0 commit comments