[coreboot] New patch to review for coreboot: 508fd01 Provide access to smaller registers in eregs

Patrick Georgi (patrick@georgi-clan.de) gerrit at coreboot.org
Fri Oct 5 19:52:08 CEST 2012


Patrick Georgi (patrick at georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1560

-gerrit

commit 508fd0158780293264c0ad879b6b34d3c6cd686f
Author: Patrick Georgi <patrick at georgi-clan.de>
Date:   Fri Aug 17 15:57:36 2012 +0200

    Provide access to smaller registers in eregs
    
    This is in preparation for sharing interrupt handlers
    between YABEL and x86emu.
    
    Change-Id: Iff92c1d899b8ada20972731944341805a49b6326
    Signed-off-by: Patrick Georgi <patrick at georgi-clan.de>
---
 src/arch/x86/include/arch/registers.h | 35 ++++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/src/arch/x86/include/arch/registers.h b/src/arch/x86/include/arch/registers.h
index bc1b681..d120a2a 100644
--- a/src/arch/x86/include/arch/registers.h
+++ b/src/arch/x86/include/arch/registers.h
@@ -20,8 +20,41 @@
 #ifndef __ARCH_REGISTERS_H
 #define __ARCH_REGISTERS_H
 
+#define __PACKED __attribute__((packed))
+
+#define DOWNTO8(A) \
+	union { \
+		struct { \
+			union { \
+				struct { \
+					uint8_t A##l; \
+					uint8_t A##h; \
+				} __PACKED; \
+				uint16_t A##x; \
+			} __PACKED; \
+			uint16_t h##A##x; \
+		} __PACKED; \
+		uint32_t e##A##x; \
+	} __PACKED;
+
+#define DOWNTO16(A) \
+	union { \
+		struct { \
+			uint16_t A; \
+			uint16_t h##A; \
+		} __PACKED; \
+		uint32_t e##A; \
+	} __PACKED;
+
 struct eregs {
-	uint32_t eax, ecx, edx, ebx, esp, ebp, esi, edi;
+	DOWNTO8(a);
+	DOWNTO8(c);
+	DOWNTO8(d);
+	DOWNTO8(b);
+	DOWNTO16(sp);
+	DOWNTO16(bp);
+	DOWNTO16(si);
+	DOWNTO16(di);
 	uint32_t vector;
 	uint32_t error_code;
 	uint32_t eip;




More information about the coreboot mailing list