summaryrefslogtreecommitdiffstats
path: root/target-i386/cpu.h
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-08 19:51:29 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-04-08 19:51:29 +0000
commita35f3ec76be8e0a5424349831127e538c6b91ef5 (patch)
tree0aa55bbc1484e75b39df5f307d2c0b0b7403f296 /target-i386/cpu.h
parent34c6f05032edb8c095426e0308b4a131a9265b44 (diff)
downloadhqemu-a35f3ec76be8e0a5424349831127e538c6b91ef5.zip
hqemu-a35f3ec76be8e0a5424349831127e538c6b91ef5.tar.gz
3DNow! instruction set emulation
(Michael Tross) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4180 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386/cpu.h')
-rw-r--r--target-i386/cpu.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 819db70..1c49b36 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -428,8 +428,9 @@ typedef union {
typedef union {
uint8_t _b[8];
- uint16_t _w[2];
- uint32_t _l[1];
+ uint16_t _w[4];
+ uint32_t _l[2];
+ float32 _s[2];
uint64_t q;
} MMXReg;
@@ -444,6 +445,7 @@ typedef union {
#define MMX_B(n) _b[7 - (n)]
#define MMX_W(n) _w[3 - (n)]
#define MMX_L(n) _l[1 - (n)]
+#define MMX_S(n) _s[1 - (n)]
#else
#define XMM_B(n) _b[n]
#define XMM_W(n) _w[n]
@@ -455,6 +457,7 @@ typedef union {
#define MMX_B(n) _b[n]
#define MMX_W(n) _w[n]
#define MMX_L(n) _l[n]
+#define MMX_S(n) _s[n]
#endif
#define MMX_Q(n) q
@@ -520,6 +523,7 @@ typedef struct CPUX86State {
int64_t i64;
} fp_convert;
+ float_status mmx_status; /* for 3DNow! float ops */
float_status sse_status;
uint32_t mxcsr;
XMMReg xmm_regs[CPU_NB_REGS];
OpenPOWER on IntegriCloud