Patchwork [02/11] target-mips: add new HFLAGs for JALX and 16/32-bit delay slots

login
register
mail settings
Submitter Nathan Froyd
Date Nov. 23, 2009, 8:50 p.m.
Message ID <1259009409-2755-3-git-send-email-froydnj@codesourcery.com>
Download mbox | patch
Permalink /patch/39103/
State New
Headers show

Comments

Nathan Froyd - Nov. 23, 2009, 8:50 p.m.
We create separate masks for the "basic" branch hflags and the
"extended" branch hflags and define MIPS_HFLAG_BMASK as the logical or
of those two.  This is done to avoid churning the codebase in lots of

Patch

different places.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
---
 target-mips/cpu.h |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/target-mips/cpu.h b/target-mips/cpu.h
index e8febe6..9413be0 100644
--- a/target-mips/cpu.h
+++ b/target-mips/cpu.h
@@ -441,11 +441,17 @@  struct CPUMIPSState {
      * the delay slot, record what type of branch it is so that we can
      * resume translation properly.  It might be possible to reduce
      * this from three bits to two.  */
-#define MIPS_HFLAG_BMASK  0x1C00
+#define MIPS_HFLAG_BMASK_BASE  0x1C00
 #define MIPS_HFLAG_B      0x0400 /* Unconditional branch               */
 #define MIPS_HFLAG_BC     0x0800 /* Conditional branch                 */
 #define MIPS_HFLAG_BL     0x0C00 /* Likely branch                      */
 #define MIPS_HFLAG_BR     0x1000 /* branch to register (can't link TB) */
+    /* Extra flags about the current pending branch.  */
+#define MIPS_HFLAG_BMASK_EXT 0xE000
+#define MIPS_HFLAG_BDS16  0x2000 /* branch requires 16-bit delay slot  */
+#define MIPS_HFLAG_BDS32  0x4000 /* branch requires 32-bit delay slot  */
+#define MIPS_HFLAG_BX     0x8000 /* branch exchange execution mode     */
+#define MIPS_HFLAG_BMASK  (MIPS_HFLAG_BMASK_BASE | MIPS_HFLAG_BMASK_EXT)
     target_ulong btarget;        /* Jump / branch target               */
     target_ulong bcond;          /* Branch condition (if needed)       */