~ubuntu-branches/ubuntu/oneiric/virtualbox/oneiric-updates

« back to all changes in this revision

Viewing changes to src/recompiler/target-i386/translate.c

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2011-09-02 11:50:47 UTC
  • mfrom: (3.1.4 sid)
  • Revision ID: package-import@ubuntu.com-20110902115047-kfhmsikrpydgyoji
Tags: 4.1.2-dfsg-1ubuntu1
* Merge from Debian unstable, remaining changes:
  - Add Apport hook.
    - debian/virtualbox.files/source_virtualbox.py
    - debian/virtualbox.install
  - Drop *-source packages.
  - Add vboxguest modalias the to the package control field.

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
#define CODE64(s) ((s)->code64)
57
57
#define REX_X(s) ((s)->rex_x)
58
58
#define REX_B(s) ((s)->rex_b)
 
59
# ifdef VBOX
 
60
#  define IS_LONG_MODE(s)   ((s)->lma)
 
61
# endif
59
62
/* XXX: gcc generates push/pop in some opcodes, so we cannot use them */
60
63
#if 1
61
64
#define BUGGY_64(x) NULL
66
69
#define CODE64(s) 0
67
70
#define REX_X(s) 0
68
71
#define REX_B(s) 0
 
72
# ifdef VBOX
 
73
#  define IS_LONG_MODE(s)   0
 
74
# endif
69
75
#endif
70
76
 
71
77
//#define MACRO_TEST   1
7289
7295
        /* For Intel SYSENTER is valid on 64-bit */
7290
7296
        if (CODE64(s) && cpu_single_env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1)
7291
7297
#else
7292
 
            /** @todo: make things right */
7293
 
        if (CODE64(s))
 
7298
        if (   !(cpu_single_env->cpuid_features & CPUID_SEP)
 
7299
            || (   IS_LONG_MODE(s)
 
7300
                && CPUMGetGuestCpuVendor(cpu_single_env->pVM) != CPUMCPUVENDOR_INTEL))
7294
7301
#endif
7295
7302
            goto illegal_op;
7296
7303
        if (!s->pe) {
7307
7314
        /* For Intel SYSEXIT is valid on 64-bit */
7308
7315
        if (CODE64(s) && cpu_single_env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1)
7309
7316
#else
7310
 
        /** @todo: make things right */
7311
 
        if (CODE64(s))
 
7317
        if (   !(cpu_single_env->cpuid_features & CPUID_SEP)
 
7318
            || (   IS_LONG_MODE(s)
 
7319
                && CPUMGetGuestCpuVendor(cpu_single_env->pVM) != CPUMCPUVENDOR_INTEL))
7312
7320
#endif
7313
7321
            goto illegal_op;
7314
7322
        if (!s->pe) {