Really fix the bbo/bbz instructions.
This commit is contained in:
parent
08168809b8
commit
c3cad878c9
@ -3,7 +3,8 @@ Thu May 8 11:57:47 1997 Michael Meissner <meissner@cygnus.com>
|
||||
* insns (jsr,bsr): For non-allulled calls, set r31 so that the
|
||||
return address does not reexecute the instruction in the delay
|
||||
slot.
|
||||
(bbo,bbz): Reverse bit number.
|
||||
(bbo,bbz): Complement bit number to reverse the one's complement
|
||||
that the assembler is required to do.
|
||||
|
||||
* misc.c (tic80_trace_*): Change format slightly to accomidate
|
||||
real large decimal values.
|
||||
|
@ -107,7 +107,8 @@ void::function::do_and:signed32 *rDest, signed32 Source1, signed32 Source2
|
||||
instruction_address::function::do_bbo:instruction_address nia, int bitnum, unsigned32 source, int annul, unsigned32 offset
|
||||
int jump_p;
|
||||
unsigned32 target = cia.ip + 4 * offset;
|
||||
if (MASKED32 (source, 32 - bitnum, 32 - bitnum))
|
||||
bitnum = (~ bitnum) & 0x1f;
|
||||
if (MASKED32 (source, bitnum, bitnum))
|
||||
{
|
||||
if (annul)
|
||||
nia.ip = -1;
|
||||
@ -131,7 +132,8 @@ instruction_address::function::do_bbo:instruction_address nia, int bitnum, unsig
|
||||
instruction_address::function::do_bbz:instruction_address nia, int bitnum, unsigned32 source, int annul, unsigned32 offset
|
||||
int jump_p;
|
||||
unsigned32 target = cia.ip + 4 * offset;
|
||||
if (!MASKED32 (source, 32 - bitnum, 32 - bitnum))
|
||||
bitnum = (~ bitnum) & 0x1f;
|
||||
if (!MASKED32 (source, bitnum, bitnum))
|
||||
{
|
||||
if (annul)
|
||||
nia.ip = -1;
|
||||
|
Loading…
Reference in New Issue
Block a user