sim: mn10300: delete unused memory code

Only one place used get_word/put_word, so inline the usage there.
All the rest is dead code so trim it.
This commit is contained in:
Mike Frysinger 2015-06-09 23:38:15 +08:00
parent 6449ed0d3a
commit 926b1cd8cf
4 changed files with 19 additions and 62 deletions

View File

@ -1,3 +1,14 @@
2015-06-11 Mike Frysinger <vapier@gentoo.org>
* interp.c (get_byte, get_half, get_word, put_byte, put_half,
put_word): Delete.
(sim_fetch_register): Inline put_word call.
(sim_store_register): Inline get_word call.
* mn10300_sim.h (struct _state): Delete mem member.
(OP, Simops, get_byte, get_half, get_word, put_byte, put_half,
put_word, map): Delete.
* op_utils.c (MEMPTR): Delete.
2015-06-11 Mike Frysinger <vapier@gentoo.org>
* interp.c (round_64, fpu_status_ok): Add static.

View File

@ -348,58 +348,18 @@ sim_create_inferior (SIM_DESC sd,
/* FIXME These would more efficient to use than load_mem/store_mem,
but need to be changed to use the memory map. */
uint8
get_byte (uint8 *x)
{
return *x;
}
uint16
get_half (uint8 *x)
{
uint8 *a = x;
return (a[1] << 8) + (a[0]);
}
uint32
get_word (uint8 *x)
{
uint8 *a = x;
return (a[3]<<24) + (a[2]<<16) + (a[1]<<8) + (a[0]);
}
void
put_byte (uint8 *addr, uint8 data)
{
uint8 *a = addr;
a[0] = data;
}
void
put_half (uint8 *addr, uint16 data)
{
uint8 *a = addr;
a[0] = data & 0xff;
a[1] = (data >> 8) & 0xff;
}
void
put_word (uint8 *addr, uint32 data)
{
uint8 *a = addr;
a[0] = data & 0xff;
a[1] = (data >> 8) & 0xff;
a[2] = (data >> 16) & 0xff;
a[3] = (data >> 24) & 0xff;
}
int
sim_fetch_register (SIM_DESC sd,
int rn,
unsigned char *memory,
int length)
{
put_word (memory, State.regs[rn]);
reg_t reg = State.regs[rn];
uint8 *a = memory;
a[0] = reg;
a[1] = reg >> 8;
a[2] = reg >> 16;
a[3] = reg >> 24;
return length;
}
@ -409,7 +369,8 @@ sim_store_register (SIM_DESC sd,
unsigned char *memory,
int length)
{
State.regs[rn] = get_word (memory);
uint8 *a = memory;
State.regs[rn] = (a[3] << 24) + (a[2] << 16) + (a[1] << 8) + a[0];
return length;
}

View File

@ -47,7 +47,6 @@ struct _state
reg_t fs[32]; /* FS0-31 */
dword fd[16]; /* FD0,2,...,30 */
} fpregs;
uint8 *mem; /* main memory */
/* All internal state modified by signal_exception() that may need to be
rolled back for passing moment-of-exception image back to gdb. */
@ -61,8 +60,6 @@ struct _state
};
extern struct _state State;
extern uint32 OP[4];
extern struct simops Simops[];
#define PC (State.regs[REG_PC])
#define SP (State.regs[REG_SP])
@ -197,15 +194,6 @@ dw2u64 (dword data)
/* Function declarations. */
uint32 get_word (uint8 *);
uint16 get_half (uint8 *);
uint8 get_byte (uint8 *);
void put_word (uint8 *, uint32);
void put_half (uint8 *, uint16);
void put_byte (uint8 *, uint8);
extern uint8 *map (SIM_ADDR addr);
INLINE_SIM_MAIN (void) genericAdd (unsigned32 source, unsigned32 destReg);
INLINE_SIM_MAIN (void) genericSub (unsigned32 source, unsigned32 destReg);
INLINE_SIM_MAIN (void) genericCmp (unsigned32 leftOpnd, unsigned32 rightOpnd);

View File

@ -188,9 +188,6 @@ do_syscall (void)
#define RETVAL State.regs[0] /* return value */
#define RETERR State.regs[1] /* return error code */
/* Turn a pointer in a register into a pointer into real memory. */
#define MEMPTR(x) (State.mem + x)
if ( FUNC == TARGET_SYS_exit )
{
/* EXIT - caller can look in PARM1 to work out the reason */