Esempio n. 1
0
INLINE UINT16 read_word_unaligned(UINT32 address)
{
	if (address & 1)
		return program_read_byte_32le(address) | program_read_byte_32le(address+1)<<8;
	else
		return program_read_word_32le(address);
}
Esempio n. 2
0
INLINE UINT16 RWORD(offs_t addr)
{
	UINT16 data;
	if (addr & 1) fprintf(stderr, "Unaligned word read @ %06X, PC=%06X\n", addr, dsp32.PC);
	data = program_read_word_32le(addr);
	return data;
}
Esempio n. 3
0
INLINE UINT16 READWORD(offs_t address)
{
	/* aligned reads are easy */
	if (!(address & 1))
		return program_read_word_32le(address);

	/* misaligned reads are tricky */
	return program_read_dword_32le(address & ~3) >> (address & 3);
}
Esempio n. 4
0
INLINE UINT16 arm7_cpu_read16( int addr )
{
    if(addr&3)
    {
        int val = addr & 3;
        if(val != 2)
            LOG(("%08x: MISALIGNED half word read @ %08x:\n",R15,addr));
    }

    /*Handle through normal 32 bit handler ( for 32 bit cpu ) */
    return program_read_word_32le(addr);
}