diff options
author | Michaël Zasso <targos@protonmail.com> | 2021-06-08 14:04:59 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2021-06-10 11:10:13 +0200 |
commit | a7cbf19a82c75e9a65e90fb8ba4947e2fc52ef39 (patch) | |
tree | dadfaa9c63c5d8db997b7c7aacc313b04131157c /deps/v8/src/diagnostics/ppc/disasm-ppc.cc | |
parent | 8834ec9f5c522f7d800d85b245a9806418515b7c (diff) | |
download | node-new-a7cbf19a82c75e9a65e90fb8ba4947e2fc52ef39.tar.gz |
deps: update V8 to 9.1.269.36
PR-URL: https://github.com/nodejs/node/pull/38273
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Mary Marchini <oss@mmarchini.me>
Diffstat (limited to 'deps/v8/src/diagnostics/ppc/disasm-ppc.cc')
-rw-r--r-- | deps/v8/src/diagnostics/ppc/disasm-ppc.cc | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/deps/v8/src/diagnostics/ppc/disasm-ppc.cc b/deps/v8/src/diagnostics/ppc/disasm-ppc.cc index 37f8ddc040..9757c8901b 100644 --- a/deps/v8/src/diagnostics/ppc/disasm-ppc.cc +++ b/deps/v8/src/diagnostics/ppc/disasm-ppc.cc @@ -265,6 +265,11 @@ int Decoder::FormatOption(Instruction* instr, const char* format) { out_buffer_pos_ += SNPrintF(out_buffer_ + out_buffer_pos_, "%d", value); return 6; } + case 'F': { // FXM + uint8_t value = instr->Bits(19, 12); + out_buffer_pos_ += SNPrintF(out_buffer_ + out_buffer_pos_, "%d", value); + return 3; + } case 'U': { // UIM int32_t value = instr->Bits(20, 16); out_buffer_pos_ += SNPrintF(out_buffer_ + out_buffer_pos_, "%d", value); @@ -413,6 +418,16 @@ void Decoder::DecodeExt0(Instruction* instr) { PPC_VA_OPCODE_A_FORM_LIST(DECODE_VA_A_FORM__INSTRUCTIONS) #undef DECODE_VA_A_FORM__INSTRUCTIONS } + switch (EXT0 | (instr->BitField(9, 0))) { +// TODO(miladfarca): Fix RC indicator. +#define DECODE_VC_FORM__INSTRUCTIONS(name, opcode_name, opcode_value) \ + case opcode_name: { \ + Format(instr, #name " 'Vt, 'Va, 'Vb"); \ + return; \ + } + PPC_VC_OPCODE_LIST(DECODE_VC_FORM__INSTRUCTIONS) +#undef DECODE_VC_FORM__INSTRUCTIONS + } switch (EXT0 | (instr->BitField(10, 0))) { #define DECODE_VX_A_FORM__INSTRUCTIONS(name, opcode_name, opcode_value) \ case opcode_name: { \ @@ -790,7 +805,7 @@ void Decoder::DecodeExt2(Instruction* instr) { } // ?? are all of these xo_form? - switch (EXT2 | (instr->BitField(9, 1))) { + switch (EXT2 | (instr->BitField(10, 1))) { case CMP: { #if V8_TARGET_ARCH_PPC64 if (instr->Bit(21)) { @@ -1056,6 +1071,14 @@ void Decoder::DecodeExt2(Instruction* instr) { Format(instr, "mtvsrwz 'Xt, 'ra"); return; } + case LDBRX: { + Format(instr, "ldbrx 'rt, 'ra, 'rb"); + return; + } + case MTCRF: { + Format(instr, "mtcrf 'FXM, 'rs"); + return; + } #endif } @@ -1254,6 +1277,12 @@ void Decoder::DecodeExt5(Instruction* instr) { } void Decoder::DecodeExt6(Instruction* instr) { + switch (EXT6 | (instr->BitField(10, 2))) { + case XXBRQ: { + Format(instr, "xxbrq 'Xt, 'Xb"); + return; + } + } switch (EXT6 | (instr->BitField(10, 1))) { case XXSPLTIB: { Format(instr, "xxspltib 'Xt, 'IMM8"); |