Used command line to remove empty lines at end of file:
find . -type f -exec sed -i -e :a -e '/^\n*$/{$d;N;};/\n$/ba' {} \;
Change-Id: I816ac9666b6dbb7c7e47843672f0d5cc499766a3
Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr>
Reviewed-on: http://review.coreboot.org/10446
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
	
		
			
				
	
	
		
			126 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/*
 | 
						|
 * This file is part of the libpayload project.
 | 
						|
 *
 | 
						|
 * Copyright 2013 Google Inc.
 | 
						|
 *
 | 
						|
 * Redistribution and use in source and binary forms, with or without
 | 
						|
 * modification, are permitted provided that the following conditions
 | 
						|
 * are met:
 | 
						|
 * 1. Redistributions of source code must retain the above copyright
 | 
						|
 *    notice, this list of conditions and the following disclaimer.
 | 
						|
 * 2. Redistributions in binary form must reproduce the above copyright
 | 
						|
 *    notice, this list of conditions and the following disclaimer in the
 | 
						|
 *    documentation and/or other materials provided with the distribution.
 | 
						|
 * 3. The name of the author may not be used to endorse or promote products
 | 
						|
 *    derived from this software without specific prior written permission.
 | 
						|
 *
 | 
						|
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
						|
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
						|
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
						|
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
						|
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
						|
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
						|
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
						|
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
						|
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
						|
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
						|
 * SUCH DAMAGE.
 | 
						|
 */
 | 
						|
 | 
						|
	.text
 | 
						|
 | 
						|
	.align 6
 | 
						|
	.arm
 | 
						|
	.global exception_table
 | 
						|
exception_table:
 | 
						|
	b	1f
 | 
						|
	b	2f
 | 
						|
	b	3f
 | 
						|
	b	4f
 | 
						|
	b	5f
 | 
						|
	b	6f
 | 
						|
	b	7f
 | 
						|
	b	8f
 | 
						|
 | 
						|
1:
 | 
						|
	mov	sp, #0
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
/* Undefined Instruction (CAREFUL: the PC offset is specific to thumb mode!) */
 | 
						|
2:
 | 
						|
	sub	lr, lr, #2
 | 
						|
	mov	sp, #1
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
/* Software Interrupt (no PC offset necessary) */
 | 
						|
3:
 | 
						|
	mov	sp, #2
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
/* Prefetch Abort */
 | 
						|
4:
 | 
						|
	sub	lr, lr, #4
 | 
						|
	mov	sp, #3
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
/* Data Abort */
 | 
						|
5:
 | 
						|
	sub	lr, lr, #8
 | 
						|
	mov	sp, #4
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
/* (not used) */
 | 
						|
6:
 | 
						|
	mov	sp, #5
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
/* Interrupt */
 | 
						|
7:
 | 
						|
	sub	lr, lr, #4
 | 
						|
	mov	sp, #6
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
/* Fast Interrupt */
 | 
						|
8:
 | 
						|
	sub	lr, lr, #4
 | 
						|
	mov	sp, #7
 | 
						|
	b	exception_common
 | 
						|
 | 
						|
exception_common:
 | 
						|
	str	sp, exception_idx
 | 
						|
	ldr	sp, exception_state_ptr
 | 
						|
	stmia	sp!, { r0 - r12 }	/* Save regs from bottom to top */
 | 
						|
	stmia	sp, { sp, lr }^		/* Save banked SP/LR (no writeback) */
 | 
						|
	str	lr, [sp, #(4 * 2)]	/* Save PC to ®s[13] + 2 */
 | 
						|
	mrs	r0, SPSR
 | 
						|
	str	r0, [sp, #(4 * 3)]	/* Save SPSR to ®s[13] + 3 */
 | 
						|
	ldr	sp, exception_stack_end	/* Point SP to the stack for C code */
 | 
						|
	ldr	r0, exception_idx
 | 
						|
	blx	exception_dispatch
 | 
						|
	ldr	sp, exception_state_ptr
 | 
						|
	ldr	r0, [sp, #(4 * 16)]	/* Load SPSR from ®s[0] + 16... */
 | 
						|
	msr	SPSR_cxsf, r0		/* ...and get it out of the way */
 | 
						|
	ldmia	sp!, { r0 - r12 }	/* Restore regs from bottom to top */
 | 
						|
	ldmia	sp, { sp, lr }^		/* Restore SP/LR to banked location */
 | 
						|
	add	sp, sp, #8		/* Adjust SP (no writeback allowed) */
 | 
						|
	ldmia	sp!, { pc }^		/* Do exception return (mode switch) */
 | 
						|
 | 
						|
 | 
						|
	.align 2
 | 
						|
	.global exception_stack_end
 | 
						|
exception_stack_end:
 | 
						|
	.word 0
 | 
						|
	.global exception_state_ptr
 | 
						|
exception_state_ptr:
 | 
						|
	.word 0
 | 
						|
 | 
						|
exception_idx:
 | 
						|
	.word 0
 | 
						|
 | 
						|
	.thumb
 | 
						|
	.global set_vbar
 | 
						|
	.thumb_func
 | 
						|
set_vbar:
 | 
						|
	mcr	p15, 0, r0, c12, c0, 0
 | 
						|
	bx	lr
 |