source: svn/trunk/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/asm/branch.h @ 2

Last change on this file since 2 was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 794 bytes
Line 
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License.  See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1996, 1997, 1998, 2001 by Ralf Baechle
7 */
8#ifndef _ASM_BRANCH_H
9#define _ASM_BRANCH_H
10
11#include <asm/ptrace.h>
12
13static inline int delay_slot(struct pt_regs *regs)
14{
15        return regs->cp0_cause & CAUSEF_BD;
16}
17
18static inline unsigned long exception_epc(struct pt_regs *regs)
19{
20        if (!delay_slot(regs))
21                return regs->cp0_epc;
22
23        return regs->cp0_epc + 4;
24}
25
26extern int __compute_return_epc(struct pt_regs *regs);
27
28static inline int compute_return_epc(struct pt_regs *regs)
29{
30        if (!delay_slot(regs)) {
31                regs->cp0_epc += 4;
32                return 0;
33        }
34
35        return __compute_return_epc(regs);
36}
37
38#endif /* _ASM_BRANCH_H */
Note: See TracBrowser for help on using the repository browser.