DavidSpickett created this revision.
Herald added subscribers: ctetreau, kristof.beyls.
Herald added a project: All.
DavidSpickett requested review of this revision.
Herald added subscribers: lldb-commits, alextsao1999.
Herald added a project: LLDB.

The Scalable Matrix Extension (SME) does not require extra options
beyond setting the cpu to "max".

https://qemu-project.gitlab.io/qemu/system/arm/cpu-features.html#sme-cpu-property-examples

SME depends on SVE, so that will be enabled too even if you don't ask
for it by name.

--sve --sme -> SVE and SME
--sme       -> SVE and SME
--sve       -> Only SVE


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D152519

Files:
  lldb/docs/use/qemu-testing.rst
  lldb/scripts/lldb-test-qemu/run-qemu.sh


Index: lldb/scripts/lldb-test-qemu/run-qemu.sh
===================================================================
--- lldb/scripts/lldb-test-qemu/run-qemu.sh
+++ lldb/scripts/lldb-test-qemu/run-qemu.sh
@@ -6,7 +6,8 @@
   echo -e "  --help\t\t\tDisplay this information."
   echo -e "  --arch {arm|arm64}\t\tSelects architecture QEMU system emulation."
   echo -e "  --sve\t\t\t\tEnables AArch64 SVE mode."
-  echo -e "  --mte\t\t\t\tEnables AArch64 MTE mode.\n"
+  echo -e "  --mte\t\t\t\tEnables AArch64 MTE mode."
+  echo -e "  --sme\t\t\t\tEnables AArch64 SME mode."
   echo -e "  --rootfs {path}\t\tPath of root file system image."
   echo -e "  --qemu {path}\t\t\tPath of pre-installed qemu-system-* 
executable."
   echo -e "  --kernel {path}\t\tPath of Linux kernel prebuilt image.\n"
@@ -50,6 +51,7 @@
     --qemu)     QEMU_BIN=$2; shift;;
     --sve)      SVE=1;;
     --mte)      MTE=1;;
+    --sme)      SME=1;;
     --help)     print_usage 0 ;;
     *)          invalid_arg "$1" ;;
   esac
@@ -104,16 +106,19 @@
   if [[ $MTE ]]; then
     echo "warning: --mte is supported by AArch64 targets only"
   fi
+  if [[ $SME ]]; then
+    echo "warning: --sme is supported by AArch64 targets only"
+  fi
 elif [[ "$ARCH" == "arm64" ]]; then
   QEMU_MACHINE=virt
   QEMU_SVE_MAX_VQ=4
   QEMU_CPU="cortex-a53"
 
-  if [[ $SVE ]] || [[ $MTE ]]; then
+  if [[ $SVE ]] || [[ $MTE ]] || [[ $SME ]]; then
     QEMU_CPU="max"
   fi
 
-  if [[ $SVE ]]; then
+  if [[ $SVE ]] || [[ $SME ]]; then
     QEMU_CPU="$QEMU_CPU,sve-max-vq=$QEMU_SVE_MAX_VQ"
   fi
   if [[ $MTE ]]; then
Index: lldb/docs/use/qemu-testing.rst
===================================================================
--- lldb/docs/use/qemu-testing.rst
+++ lldb/docs/use/qemu-testing.rst
@@ -93,8 +93,11 @@
 
 * --sve option will enable AArch64 SVE mode.
 
-* --mte option will enable AArch64 MTE (memory tagging) mode.
-  (can be used on its own or in addition to --sve)
+* --sme option will enable AArch64 SME mode (SME requires SVE, so this will 
also
+  be enabled).
+
+* --mte option will enable AArch64 MTE (memory tagging) mode
+  (can be used on its own or in addition to --sve).
 
 
 **Example:** Run QEMU Arm or AArch64 system emulation using run-qemu.sh


Index: lldb/scripts/lldb-test-qemu/run-qemu.sh
===================================================================
--- lldb/scripts/lldb-test-qemu/run-qemu.sh
+++ lldb/scripts/lldb-test-qemu/run-qemu.sh
@@ -6,7 +6,8 @@
   echo -e "  --help\t\t\tDisplay this information."
   echo -e "  --arch {arm|arm64}\t\tSelects architecture QEMU system emulation."
   echo -e "  --sve\t\t\t\tEnables AArch64 SVE mode."
-  echo -e "  --mte\t\t\t\tEnables AArch64 MTE mode.\n"
+  echo -e "  --mte\t\t\t\tEnables AArch64 MTE mode."
+  echo -e "  --sme\t\t\t\tEnables AArch64 SME mode."
   echo -e "  --rootfs {path}\t\tPath of root file system image."
   echo -e "  --qemu {path}\t\t\tPath of pre-installed qemu-system-* executable."
   echo -e "  --kernel {path}\t\tPath of Linux kernel prebuilt image.\n"
@@ -50,6 +51,7 @@
     --qemu)     QEMU_BIN=$2; shift;;
     --sve)      SVE=1;;
     --mte)      MTE=1;;
+    --sme)      SME=1;;
     --help)     print_usage 0 ;;
     *)          invalid_arg "$1" ;;
   esac
@@ -104,16 +106,19 @@
   if [[ $MTE ]]; then
     echo "warning: --mte is supported by AArch64 targets only"
   fi
+  if [[ $SME ]]; then
+    echo "warning: --sme is supported by AArch64 targets only"
+  fi
 elif [[ "$ARCH" == "arm64" ]]; then
   QEMU_MACHINE=virt
   QEMU_SVE_MAX_VQ=4
   QEMU_CPU="cortex-a53"
 
-  if [[ $SVE ]] || [[ $MTE ]]; then
+  if [[ $SVE ]] || [[ $MTE ]] || [[ $SME ]]; then
     QEMU_CPU="max"
   fi
 
-  if [[ $SVE ]]; then
+  if [[ $SVE ]] || [[ $SME ]]; then
     QEMU_CPU="$QEMU_CPU,sve-max-vq=$QEMU_SVE_MAX_VQ"
   fi
   if [[ $MTE ]]; then
Index: lldb/docs/use/qemu-testing.rst
===================================================================
--- lldb/docs/use/qemu-testing.rst
+++ lldb/docs/use/qemu-testing.rst
@@ -93,8 +93,11 @@
 
 * --sve option will enable AArch64 SVE mode.
 
-* --mte option will enable AArch64 MTE (memory tagging) mode.
-  (can be used on its own or in addition to --sve)
+* --sme option will enable AArch64 SME mode (SME requires SVE, so this will also
+  be enabled).
+
+* --mte option will enable AArch64 MTE (memory tagging) mode
+  (can be used on its own or in addition to --sve).
 
 
 **Example:** Run QEMU Arm or AArch64 system emulation using run-qemu.sh
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
  • [Lldb-commits] [PAT... David Spickett via Phabricator via lldb-commits

Reply via email to