| /************************************** |
| * |
| * copyright @ Motorola, 1999 |
| * |
| * |
| * This file contains two commonly used |
| * lower level utility routines. |
| * |
| * The utility routines are also in other |
| * Kahlua device driver libraries. The |
| * need to be linked in only once. |
| **************************************/ |
| |
| #include <ppc_asm.tmpl> |
| #include <ppc_defs.h> |
| |
| /********************************************************** |
| * function: load_runtime_reg |
| * |
| * input: r3 - value of eumbbar |
| * r4 - register offset in embedded utility space |
| * |
| * output: r3 - register content |
| **********************************************************/ |
| .text |
| .align 2 |
| .global load_runtime_reg |
| |
| load_runtime_reg: |
| |
| xor r5,r5,r5 |
| or r5,r5,r3 /* save eumbbar */ |
| |
| lwbrx r3,r4,r5 |
| sync |
| |
| bclr 20, 0 |
| |
| /**************************************************************** |
| * function: store_runtime_reg |
| * |
| * input: r3 - value of eumbbar |
| * r4 - register offset in embedded utility space |
| * r5 - new value to be stored |
| * |
| ****************************************************************/ |
| .text |
| .align 2 |
| .global store_runtime_reg |
| store_runtime_reg: |
| |
| xor r0,r0,r0 |
| |
| stwbrx r5, r4, r3 |
| sync |
| |
| bclr 20,0 |