# 1 "arch/arm/kernel/relocate_kernel.S"
# 1 "/home/davem/work/linaro/linux-thumb2//"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "./include/generated/autoconf.h" 1
# 1 "<command-line>" 2
# 1 "/home/davem/work/linaro/linux-thumb2/arch/arm/include/asm/unified.h" 1
# 24 "/home/davem/work/linaro/linux-thumb2/arch/arm/include/asm/unified.h"
 .syntax unified
# 1 "<command-line>" 2
# 1 "arch/arm/kernel/relocate_kernel.S"




# 1 "/home/davem/work/linaro/linux-thumb2/arch/arm/include/asm/kexec.h" 1
# 6 "arch/arm/kernel/relocate_kernel.S" 2

 .globl relocate_new_kernel
relocate_new_kernel:

 ldr r0,kexec_indirection_page
 ldr r1,kexec_start_address





 cmp r0, #0
 beq 2f

0:
 ldr r3, [r0],#4


 tst r3,#1,0
 beq 1f
 bic r4,r3,#1
 b 0b
1:

 tst r3,#2,0
 beq 1f
 bic r0,r3,#2
 b 0b
1:


 tst r3,#4,0
 beq 1f
 b 2f

1:

 tst r3,#8,0
 beq 0b
 bic r3,r3,#8
 mov r6,#1024
9:
 ldr r5,[r3],#4
 str r5,[r4],#4
 subs r6,r6,#1
 bne 9b
 b 0b

2:

 mov lr,r1
 mov r0,#0
 ldr r1,kexec_mach_type
 ldr r2,kexec_boot_atags
 mov pc,lr

 .globl kexec_start_address
kexec_start_address:
 .long 0x0

 .globl kexec_indirection_page
kexec_indirection_page:
 .long 0x0

 .globl kexec_mach_type
kexec_mach_type:
 .long 0x0


 .globl kexec_boot_atags
kexec_boot_atags:
 .long 0x0

relocate_new_kernel_end:

 .globl relocate_new_kernel_size
relocate_new_kernel_size:
 .long relocate_new_kernel_end - relocate_new_kernel
