diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-08-03 12:50:20 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-08-03 12:50:20 -0700 |
commit | c31ca59e25f82879644088c97fe9cffbaa292786 (patch) | |
tree | eb1652fb3fe83d5aa2c943ec4e072ec6d775e424 /arch/ia64/kernel/pal.S | |
parent | fd60ae404f104f12369e654af9cf03b1f1047661 (diff) | |
parent | e44e41d0c832ebbda7311a1fe43584d844026357 (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
[IA64] fix show_mem for VIRTUAL_MEM_MAP+FLATMEM
[IA64] align high endpoint of VIRTUAL_MEM_MAP
[PATCH] Fix RAID5 + IA64 compile
[IA64] Don't alloc empty frame in ia64_switch_mode_phys
[IA64] Do not assume output registers be reservered.
[IA64] add platform check to snsc driver init
[IA64] sparse cleanups
[IA64] Fix breakage in simscsi.c
[IA64] Format /proc/pal/*/version_info correctly
Diffstat (limited to 'arch/ia64/kernel/pal.S')
-rw-r--r-- | arch/ia64/kernel/pal.S | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/ia64/kernel/pal.S b/arch/ia64/kernel/pal.S index 5018c7f2e7a..ebaf1e685f5 100644 --- a/arch/ia64/kernel/pal.S +++ b/arch/ia64/kernel/pal.S @@ -217,12 +217,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked) .body ;; ld8 loc2 = [loc2] // loc2 <- entry point - mov out0 = in0 // first argument - mov out1 = in1 // copy arg2 - mov out2 = in2 // copy arg3 - mov out3 = in3 // copy arg3 - ;; - mov loc3 = psr // save psr + mov loc3 = psr // save psr ;; mov loc4=ar.rsc // save RSE configuration dep.z loc2=loc2,0,61 // convert pal entry point to physical @@ -236,18 +231,23 @@ GLOBAL_ENTRY(ia64_pal_call_phys_stacked) ;; andcm r16=loc3,r16 // removes bits to clear from psr br.call.sptk.many rp=ia64_switch_mode_phys -.ret6: + + mov out0 = in0 // first argument + mov out1 = in1 // copy arg2 + mov out2 = in2 // copy arg3 + mov out3 = in3 // copy arg3 mov loc5 = r19 mov loc6 = r20 + br.call.sptk.many rp=b7 // now make the call -.ret7: + mov ar.rsc=0 // put RSE in enforced lazy, LE mode mov r16=loc3 // r16= original psr mov r19=loc5 mov r20=loc6 br.call.sptk.many rp=ia64_switch_mode_virt // return to virtual mode -.ret8: mov psr.l = loc3 // restore init PSR + mov psr.l = loc3 // restore init PSR mov ar.pfs = loc1 mov rp = loc0 ;; |