entry.S (950B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * linux/arch/arm/vfp/entry.S 4 * 5 * Copyright (C) 2004 ARM Limited. 6 * Written by Deep Blue Solutions Limited. 7 */ 8#include <linux/init.h> 9#include <linux/linkage.h> 10#include <asm/thread_info.h> 11#include <asm/vfpmacros.h> 12#include <asm/assembler.h> 13#include <asm/asm-offsets.h> 14 15@ VFP entry point. 16@ 17@ r0 = instruction opcode (32-bit ARM or two 16-bit Thumb) 18@ r2 = PC value to resume execution after successful emulation 19@ r9 = normal "successful" return address 20@ r10 = this threads thread_info structure 21@ lr = unrecognised instruction return address 22@ IRQs enabled. 23@ 24ENTRY(do_vfp) 25 inc_preempt_count r10, r4 26 ldr r4, .LCvfp 27 ldr r11, [r10, #TI_CPU] @ CPU number 28 add r10, r10, #TI_VFPSTATE @ r10 = workspace 29 ldr pc, [r4] @ call VFP entry point 30ENDPROC(do_vfp) 31 32ENTRY(vfp_null_entry) 33 dec_preempt_count_ti r10, r4 34 ret lr 35ENDPROC(vfp_null_entry) 36 37 .align 2 38.LCvfp: 39 .word vfp_vector