t-kernel-zh team mailing list archive
-
t-kernel-zh team
-
Mailing list archive
-
Message #00014
[t-kernel arm9] t-monitor 模拟 arm11 指令
为了使对原来的代码修改达到最小化,使用了 __TRON_ARM_ARCH__
宏定义作为 ARM 指令版本的标识。
>From c61dd0fbf5d91378c20527604f081dba2da0ef33 Mon Sep 17 00:00:00 2001
From: DU HUANPENG <u74147@xxxxxxxxx>
Date: Wed, 6 Dec 2017 23:37:00 +0800
Subject: [PATCH] instruction emulator: srsdb
Signed-off-by: DU HUANPENG <u74147@xxxxxxxxx>
---
tkernel_source/monitor/hwdepend/tef_em1d/src/eitent.S | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/tkernel_source/monitor/hwdepend/tef_em1d/src/eitent.S b/tkernel_source/monitor/hwdepend/tef_em1d/src/eitent.S
index c37c818..2f7dfee 100644
--- a/tkernel_source/monitor/hwdepend/tef_em1d/src/eitent.S
+++ b/tkernel_source/monitor/hwdepend/tef_em1d/src/eitent.S
@@ -31,6 +31,17 @@
// see <sys/sysdepend/tef_em1d/sysinfo_depend.h>
#define N_INTVEC 256
+#if __TRON_ARM_ARCH__<6
+// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802b/Cihfdedi.html
+.macro srsdb sp, imm
+ sub sp, #8
+ str lr, [sp, #0]
+ mrs lr, spsr
+ str lr, [sp, #4]
+ ldr lr, [sp, #0]
+.endm
+#endif
+
/*
* EIT entry
*/
--
2.7.4
>From aa681720ac8dd5349043aec9cf486b56b00c4c78 Mon Sep 17 00:00:00 2001
From: DU HUANPENG <u74147@xxxxxxxxx>
Date: Wed, 6 Dec 2017 23:45:52 +0800
Subject: [PATCH] instruction emulator: rfefd, cps
Signed-off-by: DU HUANPENG <u74147@xxxxxxxxx>
---
tkernel_source/monitor/cmdsvc/src/armv6/monhdr.S | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/tkernel_source/monitor/cmdsvc/src/armv6/monhdr.S b/tkernel_source/monitor/cmdsvc/src/armv6/monhdr.S
index 6acee3e..8631b41 100644
--- a/tkernel_source/monitor/cmdsvc/src/armv6/monhdr.S
+++ b/tkernel_source/monitor/cmdsvc/src/armv6/monhdr.S
@@ -24,6 +24,29 @@
#include <sys/sysinfo.h>
#include "cpudep.h"
+#if __TRON_ARM_ARCH__ < 6
+// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802b/Cihfdedi.html
+.macro rfefd sp
+ ldr lr, [sp, #0]
+ msr spsr, lr
+ ldr lr, [sp, #4]
+ add sp, #8
+ movs pc, lr
+.endm
+// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802b/Cihfdedi.html
+.macro cps mode
+ mrs r3, cpsr
+ bic r3, #31
+ orr r3, \mode
+ msr cpsr, r3
+.endm
+.macro cpsid aif
+ mrs r2, cpsr
+ orr r2, #0xC000000
+ msr cpsr, r2
+.endm
+#endif
+
/*
* Monitor entry (registered as default handler)
* +---------------+
--
2.7.4