Browse Source

[xcc, sim] replaced ble/bleu with bge/bgeu

This will simplify control logic (since every branch has a logical inverse)
cs250
Andrew Waterman 16 years ago
parent
commit
1583b7a9e2
  1. 14
      riscv/execute.h
  2. 2
      riscv/insns/bge.h
  3. 2
      riscv/insns/bgeu.h
  4. 2
      riscv/insns/ble.h
  5. 2
      riscv/insns/bleu.h

14
riscv/execute.h

@ -438,24 +438,24 @@ switch((insn.bits >> 0x19) & 0x7f)
#include "insns/bne.h"
break;
}
case 0x2:
case 0x4:
{
#include "insns/blt.h"
break;
}
case 0x3:
case 0x5:
{
#include "insns/bltu.h"
#include "insns/bge.h"
break;
}
case 0x4:
case 0x6:
{
#include "insns/ble.h"
#include "insns/bltu.h"
break;
}
case 0x5:
case 0x7:
{
#include "insns/bleu.h"
#include "insns/bgeu.h"
break;
}
default:

2
riscv/insns/bge.h

@ -0,0 +1,2 @@
if(sreg_t(cmp_trunc(RA)) >= sreg_t(cmp_trunc(RB)))
npc = BRANCH_TARGET;

2
riscv/insns/bgeu.h

@ -0,0 +1,2 @@
if(cmp_trunc(RA) >= cmp_trunc(RB))
npc = BRANCH_TARGET;

2
riscv/insns/ble.h

@ -1,2 +0,0 @@
if(sreg_t(cmp_trunc(RA)) <= sreg_t(cmp_trunc(RB)))
npc = BRANCH_TARGET;

2
riscv/insns/bleu.h

@ -1,2 +0,0 @@
if(cmp_trunc(RA) <= cmp_trunc(RB))
npc = BRANCH_TARGET;
Loading…
Cancel
Save