Commit de5ecd28 authored by David Mosberger's avatar David Mosberger

ia64: Move local per-CPU area to the last page of the address space.

	This makes it possible to address CPU-local variables via
	an addl (instead of addl/ld8 or movl).  Suggsted by John Worley.

	This doesn't buy us much at the moment, since GCC cannot take
	advantage of it, but hopefully GCC will support this type of
	addressing some day.
parent 3483a9c3
......@@ -688,7 +688,7 @@ GLOBAL_ENTRY(ia64_leave_syscall)
mov b7=r0 // clear b7
;;
(pUStk) st1 [r14]=r3
movl r17=THIS_CPU(ia64_phys_stacked_size_p8)
addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0
;;
mov r16=ar.bsp // get existing backing store pointer
srlz.i // ensure interruption collection is off
......@@ -841,7 +841,7 @@ GLOBAL_ENTRY(ia64_leave_kernel)
shr.u r18=r19,16 // get byte size of existing "dirty" partition
;;
mov r16=ar.bsp // get existing backing store pointer
movl r17=THIS_CPU(ia64_phys_stacked_size_p8)
addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0
;;
ld4 r17=[r17] // r17 = cpu_data->phys_stacked_size_p8
(pKStk) br.cond.dpnt skip_rbs_switch
......
......@@ -165,7 +165,7 @@ ENTRY(fsys_gettimeofday)
.altrp b6
.body
add r9=TI_FLAGS+IA64_TASK_SIZE,r16
movl r3=THIS_CPU(cpu_info)
addl r3=THIS_CPU(cpu_info),r0
mov.m r31=ar.itc // put time stamp into r31 (ITC) == now (35 cyc)
#ifdef CONFIG_SMP
......@@ -177,7 +177,7 @@ ENTRY(fsys_gettimeofday)
movl r19=xtime // xtime is a timespec struct
ld8 r10=[r10] // r10 <- __per_cpu_offset[0]
movl r21=THIS_CPU(cpu_info)
addl r21=THIS_CPU(cpu_info),r0
;;
add r10=r21, r10 // r10 <- &cpu_data(time_keeper_id)
tbit.nz p8,p0 = r2, IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT_BIT
......
......@@ -20,9 +20,9 @@
#include <asm/percpu.h>
/* 0xa000000000000000 - 0xa000000000000000+PERCPU_PAGE_SIZE remain unmapped */
#define PERCPU_ADDR (0xa000000000000000 + PERCPU_PAGE_SIZE)
#define GATE_ADDR (0xa000000000000000 + 2*PERCPU_PAGE_SIZE)
#define GATE_ADDR (0xa000000000000000 + PERCPU_PAGE_SIZE)
#define KERNEL_START 0xa000000100000000
#define PERCPU_ADDR (-PERCPU_PAGE_SIZE)
#ifndef __ASSEMBLY__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment