diff options
Diffstat (limited to 'qemu/roms/SLOF/rtas/rtas_entry.S')
-rw-r--r-- | qemu/roms/SLOF/rtas/rtas_entry.S | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/qemu/roms/SLOF/rtas/rtas_entry.S b/qemu/roms/SLOF/rtas/rtas_entry.S deleted file mode 100644 index 424137bf5..000000000 --- a/qemu/roms/SLOF/rtas/rtas_entry.S +++ /dev/null @@ -1,72 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2004, 2008 IBM Corporation - * All rights reserved. - * This program and the accompanying materials - * are made available under the terms of the BSD License - * which accompanies this distribution, and is available at - * http://www.opensource.org/licenses/bsd-license.php - * - * Contributors: - * IBM Corporation - initial implementation - *****************************************************************************/ - -#include <rtas.h> - - -/* -Function: - Input: - r3: rtas parm structure - r4: base address - Output: - -Decription: Main entry point, called from OS. Second parameter is not - used. - -*/ - .globl rtas_entry -rtas_entry: - mfmsr r11 # Get MSR to enable 64-bit mode - mr r7,r11 - rotldi r11,r11,1 - ori r11,r11,1 # Always enable 64-bit mode flag - rotldi r11,r11,63 - mtmsrd r11 # Switch to 64-bit mode - isync - - mr r9,r1 # save old stack pointer - mflr r10 # save link register - bcl 20,31,.over # branch to over -.base: - .align 3 -..got: .quad _got-.base -..stack: .quad .stack+RTAS_STACKSIZE-0x60-.base -.over: - mflr r8 # gpr 8 is the base - ld r1,..stack-.base(r8) # load new stack pointer - add r1,r1,r8 # add base - std r2,64(r1) # save toc - ld r2,..got-.base(r8) # load got pointer - std r7,72(r1) # save original msr - std r10,80(r1) # save link register - std r9,0(r1) # save stack pointer - add r2,r2,r8 # add base - - bl save_regs_r3_r12 - bl .rtas_call - bl restore_regs_r3_r12 - -rtas_return: - ld r11,72(r1) # restore msr value - ld r0,80(r1) # restore link register value - ld r2,64(r1) # restore toc - ld r1,0(r1) # get old stack - mtmsrd r11 # restore msr (32 bit ?) - isync - mtlr r0 - blr - - - - .globl .stack - .lcomm .stack,RTAS_STACKSIZE |