Really fix the bbo/bbz instructions.

This commit is contained in:
Michael Meissner 1997-05-08 23:04:22 +00:00
parent 08168809b8
commit c3cad878c9
2 changed files with 6 additions and 3 deletions

View File

@ -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.

View File

@ -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;