branch.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
- /*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996, 1997, 1998, 2001 by Ralf Baechle
- */
- #ifndef _ASM_BRANCH_H
- #define _ASM_BRANCH_H
- #include <asm/ptrace.h>
- static inline int delay_slot(struct pt_regs *regs)
- {
- return regs->cp0_cause & CAUSEF_BD;
- }
- static inline unsigned long exception_epc(struct pt_regs *regs)
- {
- if (!delay_slot(regs))
- return regs->cp0_epc;
- return regs->cp0_epc + 4;
- }
- extern int __compute_return_epc(struct pt_regs *regs);
- static inline int compute_return_epc(struct pt_regs *regs)
- {
- if (!delay_slot(regs)) {
- regs->cp0_epc += 4;
- return 0;
- }
- return __compute_return_epc(regs);
- }
- #endif /* _ASM_BRANCH_H */