diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-07-18 23:31:08 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-07-18 23:31:08 +0000 |
commit | e8f9b6396e79654ea5932f64131cafbe8caadfb1 (patch) | |
tree | 90cf8b3a2475a774369eda22247cab7874fd7bbf /arch/ia64/kernel/pal.S | |
parent | d4c419dfaa853f5db107973976d4215ae648e976 (diff) |
Merge with Linux 2.4.0-test5-pre2.
Diffstat (limited to 'arch/ia64/kernel/pal.S')
-rw-r--r-- | arch/ia64/kernel/pal.S | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/ia64/kernel/pal.S b/arch/ia64/kernel/pal.S index e6f44cfb6..147e2b8fe 100644 --- a/arch/ia64/kernel/pal.S +++ b/arch/ia64/kernel/pal.S @@ -74,14 +74,14 @@ GLOBAL_ENTRY(ia64_pal_call_static) mov loc3 = psr mov loc0 = rp UNW(.body) - adds r8 = .ret0-1b,r8 + adds r8 = 1f-1b,r8 ;; rsm psr.i mov b7 = loc2 mov rp = r8 ;; br.cond.sptk.few b7 -.ret0: mov psr.l = loc3 +1: mov psr.l = loc3 mov ar.pfs = loc1 mov rp = loc0 ;; @@ -116,8 +116,7 @@ GLOBAL_ENTRY(ia64_pal_call_stacked) mov b7 = loc2 ;; br.call.sptk.many rp=b7 // now make the call -.ret2: - mov psr.l = loc3 +.ret0: mov psr.l = loc3 mov ar.pfs = loc1 mov rp = loc0 ;; @@ -161,7 +160,7 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static) mov r31 = in3 // copy arg3 ;; mov loc3 = psr // save psr - adds r8 = .ret4-1b,r8 // calculate return address for call + adds r8 = 1f-1b,r8 // calculate return address for call ;; mov loc4=ar.rsc // save RSE configuration dep.z loc2=loc2,0,61 // convert pal entry point to physical @@ -176,15 +175,14 @@ GLOBAL_ENTRY(ia64_pal_call_phys_static) ;; andcm r16=loc3,r16 // removes bits to clear from psr br.call.sptk.few rp=ia64_switch_mode -.ret3: - mov rp = r8 // install return address (physical) +.ret1: mov rp = r8 // install return address (physical) br.cond.sptk.few b7 -.ret4: +1: mov ar.rsc=r0 // put RSE in enforced lazy, LE mode mov r16=loc3 // r16= original psr br.call.sptk.few rp=ia64_switch_mode // return to virtual mode - -.ret5: mov psr.l = loc3 // restore init PSR +.ret2: + mov psr.l = loc3 // restore init PSR mov ar.pfs = loc1 mov rp = loc0 |