mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
Merge pull request #1723 from npwoods/dasmstream_powerpc
Changed the PowerPC disassembler to use 'std::ostream &' internally
This commit is contained in:
commit
721d5687f3
@ -835,7 +835,7 @@ static int Simplified(uint32_t op, uint32_t vpc, char *signed16, char *mnem, cha
|
||||
return 1;
|
||||
}
|
||||
|
||||
offs_t ppc_dasm_one(char *buffer, uint32_t pc, uint32_t op)
|
||||
offs_t ppc_dasm_one(std::ostream &stream, uint32_t pc, uint32_t op)
|
||||
{
|
||||
char signed16[12];
|
||||
uint32_t disp;
|
||||
@ -858,11 +858,11 @@ offs_t ppc_dasm_one(char *buffer, uint32_t pc, uint32_t op)
|
||||
*/
|
||||
|
||||
if( Simplified(op, pc, signed16, mnem, oprs) ) {
|
||||
buffer += sprintf(buffer, "%s", mnem);
|
||||
util::stream_format(stream, "%s", mnem);
|
||||
for( j = strlen(mnem); j < 10; j++ ) {
|
||||
buffer += sprintf(buffer, " ");
|
||||
util::stream_format(stream, " ");
|
||||
}
|
||||
buffer += sprintf(buffer, "%s", oprs);
|
||||
util::stream_format(stream, "%s", oprs);
|
||||
return 4 | flags;
|
||||
}
|
||||
|
||||
@ -1156,19 +1156,28 @@ offs_t ppc_dasm_one(char *buffer, uint32_t pc, uint32_t op)
|
||||
else if (itab[i].flags & FL_SO)
|
||||
flags |= DASMFLAG_STEP_OUT;
|
||||
|
||||
buffer += sprintf(buffer, "%s", mnem);
|
||||
util::stream_format(stream, "%s", mnem);
|
||||
for( j = strlen(mnem); j < 10; j++ ) {
|
||||
buffer += sprintf(buffer, " ");
|
||||
util::stream_format(stream, " ");
|
||||
}
|
||||
buffer += sprintf(buffer, "%s", oprs);
|
||||
util::stream_format(stream, "%s", oprs);
|
||||
return 4 | flags;
|
||||
}
|
||||
}
|
||||
|
||||
sprintf(buffer, "?");
|
||||
util::stream_format(stream, "?");
|
||||
return 4 | flags;
|
||||
}
|
||||
|
||||
offs_t ppc_dasm_one(char *buffer, uint32_t pc, uint32_t op)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = ppc_dasm_one(stream, pc, op);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE( powerpc )
|
||||
{
|
||||
uint32_t op = *(uint32_t *)oprom;
|
||||
|
@ -1234,7 +1234,6 @@ void ppc_device::device_reset()
|
||||
|
||||
offs_t ppc_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern offs_t ppc_dasm_one(char *buffer, uint32_t pc, uint32_t op);
|
||||
uint32_t op = *(uint32_t *)oprom;
|
||||
op = big_endianize_int32(op);
|
||||
return ppc_dasm_one(buffer, pc, op);
|
||||
|
@ -475,6 +475,9 @@ enum
|
||||
#define G_TO(op) ((op & M_TO) >> (31 - 10))
|
||||
#define G_XO(op) ((op & M_XO) >> (31 - 30))
|
||||
|
||||
extern offs_t ppc_dasm_one(std::ostream &stream, uint32_t pc, uint32_t op);
|
||||
extern offs_t ppc_dasm_one(char *buffer, uint32_t pc, uint32_t op);
|
||||
|
||||
|
||||
|
||||
#endif /* __PPCCOM_H__ */
|
||||
|
@ -25,8 +25,6 @@
|
||||
|
||||
using namespace uml;
|
||||
|
||||
extern offs_t ppc_dasm_one(char *buffer, uint32_t pc, uint32_t op);
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user