summaryrefslogtreecommitdiff
path: root/deps/v8/src/diagnostics/ppc/disasm-ppc.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2021-06-08 14:04:59 +0200
committerMichaël Zasso <targos@protonmail.com>2021-06-10 11:10:13 +0200
commita7cbf19a82c75e9a65e90fb8ba4947e2fc52ef39 (patch)
treedadfaa9c63c5d8db997b7c7aacc313b04131157c /deps/v8/src/diagnostics/ppc/disasm-ppc.cc
parent8834ec9f5c522f7d800d85b245a9806418515b7c (diff)
downloadnode-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.cc31
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");