OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [sw/] [utils/] [or32-idecode/] [or32-dis.c] - Diff between revs 28 and 29

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 28 Rev 29
Line 296... Line 296...
                  or32_print_register (*++s, opcode->encoding, insn);
                  or32_print_register (*++s, opcode->encoding, insn);
                  break;
                  break;
 
 
                case 'N':
                case 'N':
                  addr = or32_extract ('N', opcode->encoding, insn) << 2;
                  addr = or32_extract ('N', opcode->encoding, insn) << 2;
 
                  int32_t int32_addr = (int32_t) addr; // Must use explicitly sized bariable here
                  long signed_addr = (signed long) addr;
                  //printf("int32_addr: %d ", int32_addr);
                  if (signed_addr >= 0)
                  if (int32_addr >= 0)
                    printf("(+0x%x)", addr);
                    printf("(+0x%x)", int32_addr);
                  else
                  else
                    {
                    {
                      addr = 0xffffffff - addr + 1;
                      int32_addr = (~int32_addr) + 1;
                      printf("(-0x%x)", addr);
                      printf("(-0x%x)", int32_addr);
                    }
                    }
                  /* Calulate the correct address.  */
                  /* Calulate the correct address.  */
                  //addr = memaddr + EXTEND28 (addr);
                  //addr = memaddr + EXTEND28 (addr);
 
 
                  //(*info->print_address_func)
                  //(*info->print_address_func)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.