← Back to team overview

t-kernel-zh team mailing list archive

[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