1 /* Common target dependent code for GDB on ARM systems.
3 Copyright (C) 1988-2015 Free Software Foundation, Inc.
5 This file is part of GDB.
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 #include "common-defs.h"
26 thumb_insn_size (unsigned short inst1
)
28 if ((inst1
& 0xe000) == 0xe000 && (inst1
& 0x1800) != 0)
37 bitcount (unsigned long val
)
40 for (nbits
= 0; val
!= 0; nbits
++)
41 val
&= val
- 1; /* Delete rightmost 1-bit in val. */
48 condition_true (unsigned long cond
, unsigned long status_reg
)
50 if (cond
== INST_AL
|| cond
== INST_NV
)
56 return ((status_reg
& FLAG_Z
) != 0);
58 return ((status_reg
& FLAG_Z
) == 0);
60 return ((status_reg
& FLAG_C
) != 0);
62 return ((status_reg
& FLAG_C
) == 0);
64 return ((status_reg
& FLAG_N
) != 0);
66 return ((status_reg
& FLAG_N
) == 0);
68 return ((status_reg
& FLAG_V
) != 0);
70 return ((status_reg
& FLAG_V
) == 0);
72 return ((status_reg
& (FLAG_C
| FLAG_Z
)) == FLAG_C
);
74 return ((status_reg
& (FLAG_C
| FLAG_Z
)) != FLAG_C
);
76 return (((status_reg
& FLAG_N
) == 0) == ((status_reg
& FLAG_V
) == 0));
78 return (((status_reg
& FLAG_N
) == 0) != ((status_reg
& FLAG_V
) == 0));
80 return (((status_reg
& FLAG_Z
) == 0)
81 && (((status_reg
& FLAG_N
) == 0)
82 == ((status_reg
& FLAG_V
) == 0)));
84 return (((status_reg
& FLAG_Z
) != 0)
85 || (((status_reg
& FLAG_N
) == 0)
86 != ((status_reg
& FLAG_V
) == 0)));
This page took 0.087889 seconds and 5 git commands to generate.