aboutsummaryrefslogtreecommitdiff
path: root/target-i386/exec.h
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-17 12:44:31 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-17 12:44:31 +0000
commitb6abf97df19a3c632ca6977c2056f8a675f3f3f0 (patch)
tree04cd3e42bb8e0f2b567e720ed2865a5eb950b1b9 /target-i386/exec.h
parentc6e113f5680538a551f79df3ab19b69aed628521 (diff)
converted condition code supprot to TCG - converted shift ops to TCG
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4470 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386/exec.h')
-rw-r--r--target-i386/exec.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/target-i386/exec.h b/target-i386/exec.h
index 8f41b0daf3..8597e7953a 100644
--- a/target-i386/exec.h
+++ b/target-i386/exec.h
@@ -98,13 +98,6 @@ extern int loglevel;
#include "cpu.h"
#include "exec-all.h"
-typedef struct CCTable {
- int (*compute_all)(void); /* return all the flags */
- int (*compute_c)(void); /* return the C flag */
-} CCTable;
-
-extern CCTable cc_table[];
-
void cpu_x86_update_cr0(CPUX86State *env, uint32_t new_cr0);
void cpu_x86_update_cr3(CPUX86State *env, target_ulong new_cr3);
void cpu_x86_update_cr4(CPUX86State *env, uint32_t new_cr4);
@@ -129,6 +122,15 @@ void __hidden cpu_loop_exit(void);
void OPPROTO op_movl_eflags_T0(void);
void OPPROTO op_movl_T0_eflags(void);
+/* n must be a constant to be efficient */
+static inline target_long lshift(target_long x, int n)
+{
+ if (n >= 0)
+ return x << n;
+ else
+ return x >> (-n);
+}
+
#include "helper.h"
static inline void svm_check_intercept(uint32_t type)