ia64/xen-unstable

changeset 11621:f052ccc0cc26

[XEN] Fix 11607 to avoid bignum aritmetic in assembly file.
Signed-off-by: Keir Fraser <keir@xensource.com>
author kfraser@localhost.localdomain
date Mon Sep 25 14:11:22 2006 +0100 (2006-09-25)
parents e0db5a3a2ef6
children b7b653e36d20
files xen/arch/x86/boot/x86_32.S
line diff
     1.1 --- a/xen/arch/x86/boot/x86_32.S	Mon Sep 25 10:22:17 2006 +0100
     1.2 +++ b/xen/arch/x86/boot/x86_32.S	Mon Sep 25 14:11:22 2006 +0100
     1.3 @@ -221,17 +221,17 @@ nopaging_gdt_descr:
     1.4          .align PAGE_SIZE, 0
     1.5  /* NB. Rings != 0 get access up to MACH2PHYS_VIRT_END. This allows access to */
     1.6  /*     the machine->physical mapping table. Ring 0 can access all memory.    */
     1.7 -#define LIMIT(d) (((d) << 16)                                           \
     1.8 -                  | (((MACH2PHYS_VIRT_END - 1) >> 12) & 0xffff)         \
     1.9 -                  | (((MACH2PHYS_VIRT_END - 1) << 20) & (0xf << 48)))
    1.10 +#define GUEST_DESC(d)                                                   \
    1.11 +        .long ((MACH2PHYS_VIRT_END - 1) >> 12) & 0xffff,                \
    1.12 +              ((MACH2PHYS_VIRT_END - 1) >> 12) & (0xf << 16) | (d)
    1.13  ENTRY(gdt_table)
    1.14          .quad 0x0000000000000000     /* unused */
    1.15          .quad 0x00cf9a000000ffff     /* 0xe008 ring 0 4.00GB code at 0x0 */
    1.16          .quad 0x00cf92000000ffff     /* 0xe010 ring 0 4.00GB data at 0x0 */
    1.17 -        .quad LIMIT(0x00c0ba000000)  /* 0xe019 ring 1 3.xxGB code at 0x0 */
    1.18 -        .quad LIMIT(0x00c0b2000000)  /* 0xe021 ring 1 3.xxGB data at 0x0 */
    1.19 -        .quad LIMIT(0x00c0fa000000)  /* 0xe02b ring 3 3.xxGB code at 0x0 */
    1.20 -        .quad LIMIT(0x00c0f2000000)  /* 0xe033 ring 3 3.xxGB data at 0x0 */
    1.21 +        GUEST_DESC(0x00c0ba00)       /* 0xe019 ring 1 3.xxGB code at 0x0 */
    1.22 +        GUEST_DESC(0x00c0b200)       /* 0xe021 ring 1 3.xxGB data at 0x0 */
    1.23 +        GUEST_DESC(0x00c0fa00)       /* 0xe02b ring 3 3.xxGB code at 0x0 */
    1.24 +        GUEST_DESC(0x00c0f200)       /* 0xe033 ring 3 3.xxGB data at 0x0 */
    1.25          .quad 0x0000000000000000     /* unused                           */
    1.26          .fill 2*NR_CPUS,8,0          /* space for TSS and LDT per CPU    */
    1.27