aboutsummaryrefslogtreecommitdiff
path: root/src/target/armv8_opcodes.h
diff options
context:
space:
mode:
authorOmair Javaid <omair.javaid@linaro.org>2018-01-22 03:26:01 +0500
committerMatthias Welwarsky <matthias@welwarsky.de>2018-03-10 13:23:48 +0000
commita48264414e53d99ffe69df0687abf1effb13be22 (patch)
treef113994325915e9ee181c21d68aa159377a69b79 /src/target/armv8_opcodes.h
parentb4a01f8cdc943fe03a827513aad2f4df2d2a7399 (diff)
downloadriscv-openocd-a48264414e53d99ffe69df0687abf1effb13be22.zip
riscv-openocd-a48264414e53d99ffe69df0687abf1effb13be22.tar.gz
riscv-openocd-a48264414e53d99ffe69df0687abf1effb13be22.tar.bz2
Support AArch64 SIMD/FP registers read/write
This patch adds support in openOCD to read/write AArch64 SIMD/FP registers. This patch depends on a previous patch which adds support to generation of target xml by openOCD with nested architecture defined types. AArch64 SIMD/FP registers assumes various types and to support all types we implement them as architecture defined type aarch64v which in turn consists of various architecture defined types. This is compatible with AArch64-FPU target xml in GDB. Please refer to binutils-gdb/gdb/features/aarch64-fpu.xml Change-Id: I7ffb0c21b3c2e08f13720b765408b30aab2a9808 Signed-off-by: Omair Javaid <omair.javaid@linaro.org> Reviewed-on: http://openocd.zylin.com/4373 Tested-by: jenkins Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Diffstat (limited to 'src/target/armv8_opcodes.h')
-rw-r--r--src/target/armv8_opcodes.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/target/armv8_opcodes.h b/src/target/armv8_opcodes.h
index 987198a..3fda296 100644
--- a/src/target/armv8_opcodes.h
+++ b/src/target/armv8_opcodes.h
@@ -167,6 +167,14 @@
#define ARMV8_STRH_IP(Rd, Rn) (0x78002400 | (Rn << 5) | Rd)
#define ARMV8_STRW_IP(Rd, Rn) (0xb8004400 | (Rn << 5) | Rd)
+#define ARMV8_MOV_GPR_VFP(Rd, Rn, Index) (0x4e083c00 | (Index << 20) | (Rn << 5) | Rd)
+#define ARMV8_MOV_VFP_GPR(Rd, Rn, Index) (0x4e081c00 | (Index << 20) | (Rn << 5) | Rd)
+
+#define ARMV8_MRS_FPCR(Rt) (0xd53b4400 | (Rt))
+#define ARMV8_MRS_FPSR(Rt) (0xd53b4420 | (Rt))
+#define ARMV8_MSR_FPCR(Rt) (0xd51b4400 | (Rt))
+#define ARMV8_MSR_FPSR(Rt) (0xd51b4420 | (Rt))
+
#define ARMV8_SYS(System, Rt) (0xD5080000 | ((System) << 5) | Rt)
enum armv8_opcode {