aboutsummaryrefslogtreecommitdiff
path: root/x86_64
diff options
context:
space:
mode:
Diffstat (limited to 'x86_64')
-rw-r--r--x86_64/Makefrag.am5
-rw-r--r--x86_64/spl.S6
2 files changed, 6 insertions, 5 deletions
diff --git a/x86_64/Makefrag.am b/x86_64/Makefrag.am
index 7e0ef25b..008ac58f 100644
--- a/x86_64/Makefrag.am
+++ b/x86_64/Makefrag.am
@@ -202,13 +202,14 @@ endif
# Platform specific parts.
#
+KERNEL_MAP_BASE=0xffffffff80000000
+
if PLATFORM_at
# For now simply keep all the kernel virtual space in the last 2G.
# We could use a more elaborate schema if needed (e.g. reserving a
# larger area for directmap or the kernel heap)), I think only the
# test/bss/data sections need to be placed here kere because of
# -mcmodel=kernel
-KERNEL_MAP_BASE=0xffffffff80000000
gnumach_LINKFLAGS += \
--defsym _START_MAP=$(_START_MAP) \
--defsym _START=$(_START_MAP) \
@@ -221,8 +222,6 @@ AM_CCASFLAGS += \
endif
if PLATFORM_xen
-KERNEL_MAP_BASE=0x40000000
-
libkernel_a_SOURCES += \
x86_64/xen_locore.S \
x86_64/xen_boothdr.S \
diff --git a/x86_64/spl.S b/x86_64/spl.S
index 27bc39ea..e4f87d85 100644
--- a/x86_64/spl.S
+++ b/x86_64/spl.S
@@ -198,7 +198,8 @@ splx_cli:
je 1f /* yes, all done */
movl %edx,CX(EXT(curr_ipl),%eax) /* set ipl */
#ifdef MACH_XEN
- movl EXT(int_mask)(,%edx,4),%eax
+ movl EXT(int_mask),%eax
+ movl (%eax,%edx,4),%eax
/* get int mask */
XEN_SETMASK() /* program xen evts with new mask */
#endif
@@ -228,7 +229,8 @@ spl:
cmpl $SPL7,%edx /* spl7? */
je EXT(spl7) /* yes, handle specially */
#ifdef MACH_XEN
- movl EXT(int_mask)(,%edx,4),%eax
+ movl EXT(int_mask),%eax
+ movl (%eax,%edx,4),%eax
/* get int mask */
#endif
cli /* disable interrupts */