Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(578)

Unified Diff: src/ppc/disasm-ppc.cc

Issue 2619763003: PPC: Implement VSX instructions (Closed)
Patch Set: Fixed native assembler code Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ppc/constants-ppc.h ('k') | src/ppc/simulator-ppc.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ppc/disasm-ppc.cc
diff --git a/src/ppc/disasm-ppc.cc b/src/ppc/disasm-ppc.cc
index c0a02a8b9c55d2552626e7cf33f6cdef48b07610..1bffc9885ece3f2be6e7ed1bae1513520068de09 100644
--- a/src/ppc/disasm-ppc.cc
+++ b/src/ppc/disasm-ppc.cc
@@ -82,6 +82,7 @@ class Decoder {
void DecodeExt3(Instruction* instr);
void DecodeExt4(Instruction* instr);
void DecodeExt5(Instruction* instr);
+ void DecodeExt6(Instruction* instr);
const disasm::NameConverter& converter_;
Vector<char> out_buffer_;
@@ -1073,6 +1074,28 @@ void Decoder::DecodeExt5(Instruction* instr) {
Unknown(instr); // not used by V8
}
+void Decoder::DecodeExt6(Instruction* instr) {
+ switch (instr->Bits(10, 3) << 3) {
+#define DECODE_XX3_INSTRUCTIONS(name, opcode_name, opcode_value) \
+ case opcode_name: { \
+ Format(instr, #name" 'Dt, 'Da, 'Db"); \
+ return; \
+ }
+ XX3_OPCODE_LIST(DECODE_XX3_INSTRUCTIONS)
+#undef DECODE_XX3_INSTRUCTIONS
+ }
+ switch (instr->Bits(10, 2) << 2) {
+#define DECODE_XX2_INSTRUCTIONS(name, opcode_name, opcode_value) \
+ case opcode_name: { \
+ Format(instr, #name" 'Dt, 'Db"); \
+ return; \
+ }
+ XX2_OPCODE_LIST(DECODE_XX2_INSTRUCTIONS)
+ }
+#undef DECODE_XX3_INSTRUCTIONS
+ Unknown(instr); // not used by V8
+}
+
#undef VERIFIY
// Disassemble the instruction at *instr_ptr into the output buffer.
@@ -1360,6 +1383,10 @@ int Decoder::InstructionDecode(byte* instr_ptr) {
DecodeExt5(instr);
break;
}
+ case EXT6: {
+ DecodeExt6(instr);
+ break;
+ }
#if V8_TARGET_ARCH_PPC64
case LD: {
switch (instr->Bits(1, 0)) {
« no previous file with comments | « src/ppc/constants-ppc.h ('k') | src/ppc/simulator-ppc.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698