uboot/arch/powerpc/lib/reloc.S
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2009 Wolfgang Denk <wd@denx.de>
   3 *
   4 * See file CREDITS for list of people who contributed to this
   5 * project.
   6 *
   7 * This program is free software; you can redistribute it and/or
   8 * modify it under the terms of the GNU General Public License as
   9 * published by the Free Software Foundation; either version 2 of
  10 * the License, or (at your option) any later version.
  11 *
  12 * This program is distributed in the hope that it will be useful,
  13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 * GNU General Public License for more details.
  16 *
  17 * You should have received a copy of the GNU General Public License
  18 * along with this program; if not, write to the Free Software
  19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  20 * MA 02111-1307 USA
  21 */
  22
  23#include <ppc_asm.tmpl>
  24
  25        .file   "reloc.S"
  26
  27        .text
  28#ifndef CONFIG_NAND_SPL
  29        /*
  30         * Function: relocate entries for one exception vector
  31         */
  32        .globl trap_reloc
  33        .type   trap_reloc, @function
  34trap_reloc:
  35        lwz     r0, 0(r7)               /* hdlr ...             */
  36        add     r0, r0, r3              /*  ... += dest_addr    */
  37        stw     r0, 0(r7)
  38
  39        lwz     r0, 4(r7)               /* int_return ...       */
  40        add     r0, r0, r3              /*  ... += dest_addr    */
  41        stw     r0, 4(r7)
  42
  43        lwz     r0, 8(r7)               /* transfer_to_handler ...*/
  44        add     r0, r0, r3              /*  ... += dest_addr    */
  45        stw     r0, 8(r7)
  46
  47        blr
  48        .size   trap_reloc, .-trap_reloc
  49#endif
  50