Index: src/mips/disasm-mips.cc |
diff --git a/src/mips/disasm-mips.cc b/src/mips/disasm-mips.cc |
index b7ceb2b1153d0f6b03b31f500c1902a37e7ef6cd..7df5c4175fda90f8a7737887009dc33014ff9675 100644 |
--- a/src/mips/disasm-mips.cc |
+++ b/src/mips/disasm-mips.cc |
@@ -1,4 +1,4 @@ |
-// Copyright 2010 the V8 project authors. All rights reserved. |
+// Copyright 2011 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -33,7 +33,7 @@ |
// |
// NameConverter converter; |
// Disassembler d(converter); |
-// for (byte_* pc = begin; pc < end;) { |
+// for (byte* pc = begin; pc < end;) { |
// v8::internal::EmbeddedVector<char, 256> buffer; |
// byte* prev_pc = pc; |
// pc += d.InstructionDecode(buffer, pc); |
@@ -85,7 +85,7 @@ class Decoder { |
// Writes one disassembled instruction into 'buffer' (0-terminated). |
// Returns the length of the disassembled machine instruction in bytes. |
- int InstructionDecode(byte_* instruction); |
+ int InstructionDecode(byte* instruction); |
private: |
// Bottleneck functions to print into the out_buffer. |
@@ -103,6 +103,8 @@ class Decoder { |
void PrintFd(Instruction* instr); |
void PrintSa(Instruction* instr); |
void PrintSd(Instruction* instr); |
+ void PrintSs1(Instruction* instr); |
+ void PrintSs2(Instruction* instr); |
void PrintBc(Instruction* instr); |
void PrintCc(Instruction* instr); |
void PrintFunction(Instruction* instr); |
@@ -212,13 +214,29 @@ void Decoder::PrintSa(Instruction* instr) { |
} |
-// Print the integer value of the rd field, (when it is not used as reg). |
+// Print the integer value of the rd field, when it is not used as reg. |
void Decoder::PrintSd(Instruction* instr) { |
int sd = instr->RdValue(); |
out_buffer_pos_ += OS::SNPrintF(out_buffer_ + out_buffer_pos_, "%d", sd); |
} |
+// Print the integer value of the rd field, when used as 'ext' size. |
+void Decoder::PrintSs1(Instruction* instr) { |
+ int ss = instr->RdValue(); |
+ out_buffer_pos_ += OS::SNPrintF(out_buffer_ + out_buffer_pos_, "%d", ss + 1); |
+} |
+ |
+ |
+// Print the integer value of the rd field, when used as 'ins' size. |
+void Decoder::PrintSs2(Instruction* instr) { |
+ int ss = instr->RdValue(); |
+ int pos = instr->SaValue(); |
+ out_buffer_pos_ += |
+ OS::SNPrintF(out_buffer_ + out_buffer_pos_, "%d", ss - pos + 1); |
+} |
+ |
+ |
// Print the integer value of the cc field for the bc1t/f instructions. |
void Decoder::PrintBc(Instruction* instr) { |
int cc = instr->FBccValue(); |
@@ -242,7 +260,7 @@ void Decoder::PrintUImm16(Instruction* instr) { |
// Print 16-bit signed immediate value. |
void Decoder::PrintSImm16(Instruction* instr) { |
- int32_t imm = ((instr->Imm16Value())<<16)>>16; |
+ int32_t imm = ((instr->Imm16Value()) << 16) >> 16; |
out_buffer_pos_ += OS::SNPrintF(out_buffer_ + out_buffer_pos_, "%d", imm); |
} |
@@ -298,15 +316,15 @@ void Decoder::PrintInstructionName(Instruction* instr) { |
// complexity of FormatOption. |
int Decoder::FormatRegister(Instruction* instr, const char* format) { |
ASSERT(format[0] == 'r'); |
- if (format[1] == 's') { // 'rs: Rs register |
+ if (format[1] == 's') { // 'rs: Rs register. |
int reg = instr->RsValue(); |
PrintRegister(reg); |
return 2; |
- } else if (format[1] == 't') { // 'rt: rt register |
+ } else if (format[1] == 't') { // 'rt: rt register. |
int reg = instr->RtValue(); |
PrintRegister(reg); |
return 2; |
- } else if (format[1] == 'd') { // 'rd: rd register |
+ } else if (format[1] == 'd') { // 'rd: rd register. |
int reg = instr->RdValue(); |
PrintRegister(reg); |
return 2; |
@@ -320,15 +338,15 @@ int Decoder::FormatRegister(Instruction* instr, const char* format) { |
// complexity of FormatOption. |
int Decoder::FormatFPURegister(Instruction* instr, const char* format) { |
ASSERT(format[0] == 'f'); |
- if (format[1] == 's') { // 'fs: fs register |
+ if (format[1] == 's') { // 'fs: fs register. |
int reg = instr->FsValue(); |
PrintFPURegister(reg); |
return 2; |
- } else if (format[1] == 't') { // 'ft: ft register |
+ } else if (format[1] == 't') { // 'ft: ft register. |
int reg = instr->FtValue(); |
PrintFPURegister(reg); |
return 2; |
- } else if (format[1] == 'd') { // 'fd: fd register |
+ } else if (format[1] == 'd') { // 'fd: fd register. |
int reg = instr->FdValue(); |
PrintFPURegister(reg); |
return 2; |
@@ -345,12 +363,12 @@ int Decoder::FormatFPURegister(Instruction* instr, const char* format) { |
// characters that were consumed from the formatting string. |
int Decoder::FormatOption(Instruction* instr, const char* format) { |
switch (format[0]) { |
- case 'c': { // 'code for break or trap instructions |
+ case 'c': { // 'code for break or trap instructions. |
ASSERT(STRING_STARTS_WITH(format, "code")); |
PrintCode(instr); |
return 4; |
} |
- case 'i': { // 'imm16u or 'imm26 |
+ case 'i': { // 'imm16u or 'imm26. |
if (format[3] == '1') { |
ASSERT(STRING_STARTS_WITH(format, "imm16")); |
if (format[5] == 's') { |
@@ -370,13 +388,13 @@ int Decoder::FormatOption(Instruction* instr, const char* format) { |
return 5; |
} |
} |
- case 'r': { // 'r: registers |
+ case 'r': { // 'r: registers. |
return FormatRegister(instr, format); |
} |
- case 'f': { // 'f: FPUregisters |
+ case 'f': { // 'f: FPUregisters. |
return FormatFPURegister(instr, format); |
} |
- case 's': { // 'sa |
+ case 's': { // 'sa. |
switch (format[1]) { |
case 'a': { |
ASSERT(STRING_STARTS_WITH(format, "sa")); |
@@ -388,6 +406,17 @@ int Decoder::FormatOption(Instruction* instr, const char* format) { |
PrintSd(instr); |
return 2; |
} |
+ case 's': { |
+ if (format[2] == '1') { |
+ ASSERT(STRING_STARTS_WITH(format, "ss1")); /* ext size */ |
+ PrintSs1(instr); |
+ return 3; |
+ } else { |
+ ASSERT(STRING_STARTS_WITH(format, "ss2")); /* ins size */ |
+ PrintSs2(instr); |
+ return 3; |
+ } |
+ } |
} |
} |
case 'b': { // 'bc - Special for bc1 cc field. |
@@ -432,29 +461,29 @@ void Decoder::Unknown(Instruction* instr) { |
void Decoder::DecodeTypeRegister(Instruction* instr) { |
switch (instr->OpcodeFieldRaw()) { |
- case COP1: // Coprocessor instructions |
+ case COP1: // Coprocessor instructions. |
switch (instr->RsFieldRaw()) { |
case BC1: // bc1 handled in DecodeTypeImmediate. |
UNREACHABLE(); |
break; |
case MFC1: |
- Format(instr, "mfc1 'rt, 'fs"); |
+ Format(instr, "mfc1 'rt, 'fs"); |
break; |
case MFHC1: |
- Format(instr, "mfhc1 'rt, 'fs"); |
+ Format(instr, "mfhc1 'rt, 'fs"); |
break; |
case MTC1: |
- Format(instr, "mtc1 'rt, 'fs"); |
+ Format(instr, "mtc1 'rt, 'fs"); |
break; |
// These are called "fs" too, although they are not FPU registers. |
case CTC1: |
- Format(instr, "ctc1 'rt, 'fs"); |
+ Format(instr, "ctc1 'rt, 'fs"); |
break; |
case CFC1: |
- Format(instr, "cfc1 'rt, 'fs"); |
+ Format(instr, "cfc1 'rt, 'fs"); |
break; |
case MTHC1: |
- Format(instr, "mthc1 'rt, 'fs"); |
+ Format(instr, "mthc1 'rt, 'fs"); |
break; |
case D: |
switch (instr->FunctionFieldRaw()) { |
@@ -480,7 +509,7 @@ void Decoder::DecodeTypeRegister(Instruction* instr) { |
Format(instr, "neg.d 'fd, 'fs"); |
break; |
case SQRT_D: |
- Format(instr, "sqrt.d 'fd, 'fs"); |
+ Format(instr, "sqrt.d 'fd, 'fs"); |
break; |
case CVT_W_D: |
Format(instr, "cvt.w.d 'fd, 'fs"); |
@@ -592,134 +621,134 @@ void Decoder::DecodeTypeRegister(Instruction* instr) { |
case SPECIAL: |
switch (instr->FunctionFieldRaw()) { |
case JR: |
- Format(instr, "jr 'rs"); |
+ Format(instr, "jr 'rs"); |
break; |
case JALR: |
- Format(instr, "jalr 'rs"); |
+ Format(instr, "jalr 'rs"); |
break; |
case SLL: |
if ( 0x0 == static_cast<int>(instr->InstructionBits())) |
Format(instr, "nop"); |
else |
- Format(instr, "sll 'rd, 'rt, 'sa"); |
+ Format(instr, "sll 'rd, 'rt, 'sa"); |
break; |
case SRL: |
if (instr->RsValue() == 0) { |
- Format(instr, "srl 'rd, 'rt, 'sa"); |
+ Format(instr, "srl 'rd, 'rt, 'sa"); |
} else { |
if (mips32r2) { |
- Format(instr, "rotr 'rd, 'rt, 'sa"); |
+ Format(instr, "rotr 'rd, 'rt, 'sa"); |
} else { |
Unknown(instr); |
} |
} |
break; |
case SRA: |
- Format(instr, "sra 'rd, 'rt, 'sa"); |
+ Format(instr, "sra 'rd, 'rt, 'sa"); |
break; |
case SLLV: |
- Format(instr, "sllv 'rd, 'rt, 'rs"); |
+ Format(instr, "sllv 'rd, 'rt, 'rs"); |
break; |
case SRLV: |
if (instr->SaValue() == 0) { |
- Format(instr, "srlv 'rd, 'rt, 'rs"); |
+ Format(instr, "srlv 'rd, 'rt, 'rs"); |
} else { |
if (mips32r2) { |
- Format(instr, "rotrv 'rd, 'rt, 'rs"); |
+ Format(instr, "rotrv 'rd, 'rt, 'rs"); |
} else { |
Unknown(instr); |
} |
} |
break; |
case SRAV: |
- Format(instr, "srav 'rd, 'rt, 'rs"); |
+ Format(instr, "srav 'rd, 'rt, 'rs"); |
break; |
case MFHI: |
- Format(instr, "mfhi 'rd"); |
+ Format(instr, "mfhi 'rd"); |
break; |
case MFLO: |
- Format(instr, "mflo 'rd"); |
+ Format(instr, "mflo 'rd"); |
break; |
case MULT: |
- Format(instr, "mult 'rs, 'rt"); |
+ Format(instr, "mult 'rs, 'rt"); |
break; |
case MULTU: |
- Format(instr, "multu 'rs, 'rt"); |
+ Format(instr, "multu 'rs, 'rt"); |
break; |
case DIV: |
- Format(instr, "div 'rs, 'rt"); |
+ Format(instr, "div 'rs, 'rt"); |
break; |
case DIVU: |
- Format(instr, "divu 'rs, 'rt"); |
+ Format(instr, "divu 'rs, 'rt"); |
break; |
case ADD: |
- Format(instr, "add 'rd, 'rs, 'rt"); |
+ Format(instr, "add 'rd, 'rs, 'rt"); |
break; |
case ADDU: |
- Format(instr, "addu 'rd, 'rs, 'rt"); |
+ Format(instr, "addu 'rd, 'rs, 'rt"); |
break; |
case SUB: |
- Format(instr, "sub 'rd, 'rs, 'rt"); |
+ Format(instr, "sub 'rd, 'rs, 'rt"); |
break; |
case SUBU: |
- Format(instr, "sub 'rd, 'rs, 'rt"); |
+ Format(instr, "subu 'rd, 'rs, 'rt"); |
break; |
case AND: |
- Format(instr, "and 'rd, 'rs, 'rt"); |
+ Format(instr, "and 'rd, 'rs, 'rt"); |
break; |
case OR: |
if (0 == instr->RsValue()) { |
- Format(instr, "mov 'rd, 'rt"); |
+ Format(instr, "mov 'rd, 'rt"); |
} else if (0 == instr->RtValue()) { |
- Format(instr, "mov 'rd, 'rs"); |
+ Format(instr, "mov 'rd, 'rs"); |
} else { |
- Format(instr, "or 'rd, 'rs, 'rt"); |
+ Format(instr, "or 'rd, 'rs, 'rt"); |
} |
break; |
case XOR: |
- Format(instr, "xor 'rd, 'rs, 'rt"); |
+ Format(instr, "xor 'rd, 'rs, 'rt"); |
break; |
case NOR: |
- Format(instr, "nor 'rd, 'rs, 'rt"); |
+ Format(instr, "nor 'rd, 'rs, 'rt"); |
break; |
case SLT: |
- Format(instr, "slt 'rd, 'rs, 'rt"); |
+ Format(instr, "slt 'rd, 'rs, 'rt"); |
break; |
case SLTU: |
- Format(instr, "sltu 'rd, 'rs, 'rt"); |
+ Format(instr, "sltu 'rd, 'rs, 'rt"); |
break; |
case BREAK: |
Format(instr, "break, code: 'code"); |
break; |
case TGE: |
- Format(instr, "tge 'rs, 'rt, code: 'code"); |
+ Format(instr, "tge 'rs, 'rt, code: 'code"); |
break; |
case TGEU: |
- Format(instr, "tgeu 'rs, 'rt, code: 'code"); |
+ Format(instr, "tgeu 'rs, 'rt, code: 'code"); |
break; |
case TLT: |
- Format(instr, "tlt 'rs, 'rt, code: 'code"); |
+ Format(instr, "tlt 'rs, 'rt, code: 'code"); |
break; |
case TLTU: |
- Format(instr, "tltu 'rs, 'rt, code: 'code"); |
+ Format(instr, "tltu 'rs, 'rt, code: 'code"); |
break; |
case TEQ: |
- Format(instr, "teq 'rs, 'rt, code: 'code"); |
+ Format(instr, "teq 'rs, 'rt, code: 'code"); |
break; |
case TNE: |
- Format(instr, "tne 'rs, 'rt, code: 'code"); |
+ Format(instr, "tne 'rs, 'rt, code: 'code"); |
break; |
case MOVZ: |
- Format(instr, "movz 'rd, 'rs, 'rt"); |
+ Format(instr, "movz 'rd, 'rs, 'rt"); |
break; |
case MOVN: |
- Format(instr, "movn 'rd, 'rs, 'rt"); |
+ Format(instr, "movn 'rd, 'rs, 'rt"); |
break; |
case MOVCI: |
if (instr->Bit(16)) { |
- Format(instr, "movt 'rd, 'rs, 'Cc"); |
+ Format(instr, "movt 'rd, 'rs, 'bc"); |
} else { |
- Format(instr, "movf 'rd, 'rs, 'Cc"); |
+ Format(instr, "movf 'rd, 'rs, 'bc"); |
} |
break; |
default: |
@@ -729,10 +758,10 @@ void Decoder::DecodeTypeRegister(Instruction* instr) { |
case SPECIAL2: |
switch (instr->FunctionFieldRaw()) { |
case MUL: |
- Format(instr, "mul 'rd, 'rs, 'rt"); |
+ Format(instr, "mul 'rd, 'rs, 'rt"); |
break; |
case CLZ: |
- Format(instr, "clz 'rd, 'rs"); |
+ Format(instr, "clz 'rd, 'rs"); |
break; |
default: |
UNREACHABLE(); |
@@ -742,7 +771,7 @@ void Decoder::DecodeTypeRegister(Instruction* instr) { |
switch (instr->FunctionFieldRaw()) { |
case INS: { |
if (mips32r2) { |
- Format(instr, "ins 'rt, 'rs, 'sd, 'sa"); |
+ Format(instr, "ins 'rt, 'rs, 'sa, 'ss2"); |
} else { |
Unknown(instr); |
} |
@@ -750,7 +779,7 @@ void Decoder::DecodeTypeRegister(Instruction* instr) { |
} |
case EXT: { |
if (mips32r2) { |
- Format(instr, "ext 'rt, 'rs, 'sd, 'sa"); |
+ Format(instr, "ext 'rt, 'rs, 'sa, 'ss1"); |
} else { |
Unknown(instr); |
} |
@@ -785,16 +814,16 @@ void Decoder::DecodeTypeImmediate(Instruction* instr) { |
case REGIMM: |
switch (instr->RtFieldRaw()) { |
case BLTZ: |
- Format(instr, "bltz 'rs, 'imm16u"); |
+ Format(instr, "bltz 'rs, 'imm16u"); |
break; |
case BLTZAL: |
- Format(instr, "bltzal 'rs, 'imm16u"); |
+ Format(instr, "bltzal 'rs, 'imm16u"); |
break; |
case BGEZ: |
- Format(instr, "bgez 'rs, 'imm16u"); |
+ Format(instr, "bgez 'rs, 'imm16u"); |
break; |
case BGEZAL: |
- Format(instr, "bgezal 'rs, 'imm16u"); |
+ Format(instr, "bgezal 'rs, 'imm16u"); |
break; |
default: |
UNREACHABLE(); |
@@ -802,90 +831,90 @@ void Decoder::DecodeTypeImmediate(Instruction* instr) { |
break; // Case REGIMM. |
// ------------- Branch instructions. |
case BEQ: |
- Format(instr, "beq 'rs, 'rt, 'imm16u"); |
+ Format(instr, "beq 'rs, 'rt, 'imm16u"); |
break; |
case BNE: |
- Format(instr, "bne 'rs, 'rt, 'imm16u"); |
+ Format(instr, "bne 'rs, 'rt, 'imm16u"); |
break; |
case BLEZ: |
- Format(instr, "blez 'rs, 'imm16u"); |
+ Format(instr, "blez 'rs, 'imm16u"); |
break; |
case BGTZ: |
- Format(instr, "bgtz 'rs, 'imm16u"); |
+ Format(instr, "bgtz 'rs, 'imm16u"); |
break; |
// ------------- Arithmetic instructions. |
case ADDI: |
- Format(instr, "addi 'rt, 'rs, 'imm16s"); |
+ Format(instr, "addi 'rt, 'rs, 'imm16s"); |
break; |
case ADDIU: |
- Format(instr, "addiu 'rt, 'rs, 'imm16s"); |
+ Format(instr, "addiu 'rt, 'rs, 'imm16s"); |
break; |
case SLTI: |
- Format(instr, "slti 'rt, 'rs, 'imm16s"); |
+ Format(instr, "slti 'rt, 'rs, 'imm16s"); |
break; |
case SLTIU: |
- Format(instr, "sltiu 'rt, 'rs, 'imm16u"); |
+ Format(instr, "sltiu 'rt, 'rs, 'imm16u"); |
break; |
case ANDI: |
- Format(instr, "andi 'rt, 'rs, 'imm16x"); |
+ Format(instr, "andi 'rt, 'rs, 'imm16x"); |
break; |
case ORI: |
- Format(instr, "ori 'rt, 'rs, 'imm16x"); |
+ Format(instr, "ori 'rt, 'rs, 'imm16x"); |
break; |
case XORI: |
- Format(instr, "xori 'rt, 'rs, 'imm16x"); |
+ Format(instr, "xori 'rt, 'rs, 'imm16x"); |
break; |
case LUI: |
- Format(instr, "lui 'rt, 'imm16x"); |
+ Format(instr, "lui 'rt, 'imm16x"); |
break; |
// ------------- Memory instructions. |
case LB: |
- Format(instr, "lb 'rt, 'imm16s('rs)"); |
+ Format(instr, "lb 'rt, 'imm16s('rs)"); |
break; |
case LH: |
- Format(instr, "lh 'rt, 'imm16s('rs)"); |
+ Format(instr, "lh 'rt, 'imm16s('rs)"); |
break; |
case LWL: |
- Format(instr, "lwl 'rt, 'imm16s('rs)"); |
+ Format(instr, "lwl 'rt, 'imm16s('rs)"); |
break; |
case LW: |
- Format(instr, "lw 'rt, 'imm16s('rs)"); |
+ Format(instr, "lw 'rt, 'imm16s('rs)"); |
break; |
case LBU: |
- Format(instr, "lbu 'rt, 'imm16s('rs)"); |
+ Format(instr, "lbu 'rt, 'imm16s('rs)"); |
break; |
case LHU: |
- Format(instr, "lhu 'rt, 'imm16s('rs)"); |
+ Format(instr, "lhu 'rt, 'imm16s('rs)"); |
break; |
case LWR: |
- Format(instr, "lwr 'rt, 'imm16s('rs)"); |
+ Format(instr, "lwr 'rt, 'imm16s('rs)"); |
break; |
case SB: |
- Format(instr, "sb 'rt, 'imm16s('rs)"); |
+ Format(instr, "sb 'rt, 'imm16s('rs)"); |
break; |
case SH: |
- Format(instr, "sh 'rt, 'imm16s('rs)"); |
+ Format(instr, "sh 'rt, 'imm16s('rs)"); |
break; |
case SWL: |
- Format(instr, "swl 'rt, 'imm16s('rs)"); |
+ Format(instr, "swl 'rt, 'imm16s('rs)"); |
break; |
case SW: |
- Format(instr, "sw 'rt, 'imm16s('rs)"); |
+ Format(instr, "sw 'rt, 'imm16s('rs)"); |
break; |
case SWR: |
- Format(instr, "swr 'rt, 'imm16s('rs)"); |
+ Format(instr, "swr 'rt, 'imm16s('rs)"); |
break; |
case LWC1: |
- Format(instr, "lwc1 'ft, 'imm16s('rs)"); |
+ Format(instr, "lwc1 'ft, 'imm16s('rs)"); |
break; |
case LDC1: |
- Format(instr, "ldc1 'ft, 'imm16s('rs)"); |
+ Format(instr, "ldc1 'ft, 'imm16s('rs)"); |
break; |
case SWC1: |
- Format(instr, "swc1 'ft, 'imm16s('rs)"); |
+ Format(instr, "swc1 'ft, 'imm16s('rs)"); |
break; |
case SDC1: |
- Format(instr, "sdc1 'ft, 'imm16s('rs)"); |
+ Format(instr, "sdc1 'ft, 'imm16s('rs)"); |
break; |
default: |
UNREACHABLE(); |
@@ -897,10 +926,10 @@ void Decoder::DecodeTypeImmediate(Instruction* instr) { |
void Decoder::DecodeTypeJump(Instruction* instr) { |
switch (instr->OpcodeFieldRaw()) { |
case J: |
- Format(instr, "j 'imm26"); |
+ Format(instr, "j 'imm26"); |
break; |
case JAL: |
- Format(instr, "jal 'imm26"); |
+ Format(instr, "jal 'imm26"); |
break; |
default: |
UNREACHABLE(); |
@@ -909,7 +938,7 @@ void Decoder::DecodeTypeJump(Instruction* instr) { |
// Disassemble the instruction at *instr_ptr into the output buffer. |
-int Decoder::InstructionDecode(byte_* instr_ptr) { |
+int Decoder::InstructionDecode(byte* instr_ptr) { |
Instruction* instr = Instruction::At(instr_ptr); |
// Print raw instruction bytes. |
out_buffer_pos_ += OS::SNPrintF(out_buffer_ + out_buffer_pos_, |
@@ -944,15 +973,13 @@ int Decoder::InstructionDecode(byte_* instr_ptr) { |
namespace disasm { |
-using v8::internal::byte_; |
- |
-const char* NameConverter::NameOfAddress(byte_* addr) const { |
+const char* NameConverter::NameOfAddress(byte* addr) const { |
v8::internal::OS::SNPrintF(tmp_buffer_, "%p", addr); |
return tmp_buffer_.start(); |
} |
-const char* NameConverter::NameOfConstant(byte_* addr) const { |
+const char* NameConverter::NameOfConstant(byte* addr) const { |
return NameOfAddress(addr); |
} |
@@ -968,12 +995,12 @@ const char* NameConverter::NameOfXMMRegister(int reg) const { |
const char* NameConverter::NameOfByteCPURegister(int reg) const { |
- UNREACHABLE(); // MIPS does not have the concept of a byte register |
+ UNREACHABLE(); // MIPS does not have the concept of a byte register. |
return "nobytereg"; |
} |
-const char* NameConverter::NameInCode(byte_* addr) const { |
+const char* NameConverter::NameInCode(byte* addr) const { |
// The default name converter is called for unknown code. So we will not try |
// to access any memory. |
return ""; |
@@ -990,25 +1017,25 @@ Disassembler::~Disassembler() {} |
int Disassembler::InstructionDecode(v8::internal::Vector<char> buffer, |
- byte_* instruction) { |
+ byte* instruction) { |
v8::internal::Decoder d(converter_, buffer); |
return d.InstructionDecode(instruction); |
} |
// The MIPS assembler does not currently use constant pools. |
-int Disassembler::ConstantPoolSizeAt(byte_* instruction) { |
+int Disassembler::ConstantPoolSizeAt(byte* instruction) { |
return -1; |
} |
-void Disassembler::Disassemble(FILE* f, byte_* begin, byte_* end) { |
+void Disassembler::Disassemble(FILE* f, byte* begin, byte* end) { |
NameConverter converter; |
Disassembler d(converter); |
- for (byte_* pc = begin; pc < end;) { |
+ for (byte* pc = begin; pc < end;) { |
v8::internal::EmbeddedVector<char, 128> buffer; |
buffer[0] = '\0'; |
- byte_* prev_pc = pc; |
+ byte* prev_pc = pc; |
pc += d.InstructionDecode(buffer, pc); |
fprintf(f, "%p %08x %s\n", |
prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start()); |