summaryrefslogtreecommitdiffstats
path: root/libpdbg/p9chip.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2018-05-03 16:26:53 +1000
committerAlistair Popple <alistair@popple.id.au>2018-05-16 11:50:15 +1000
commite4d2de6e3aff2821ba7a44ad1b286e4ef7a7b50b (patch)
treec3d640a62c78f60fef127d18d26abb54c9d34326 /libpdbg/p9chip.c
parentecb1e173ae91ee3b3d0b75917402c4d003a88c0f (diff)
downloadpdbg-e4d2de6e3aff2821ba7a44ad1b286e4ef7a7b50b.tar.gz
pdbg-e4d2de6e3aff2821ba7a44ad1b286e4ef7a7b50b.zip
libpdbg/p9chip.c: disable ramming LSU opcodes
These are too easy to cause checkstops, and there's a better alternative. Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Diffstat (limited to 'libpdbg/p9chip.c')
-rw-r--r--libpdbg/p9chip.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libpdbg/p9chip.c b/libpdbg/p9chip.c
index 97456a8..339d2f0 100644
--- a/libpdbg/p9chip.c
+++ b/libpdbg/p9chip.c
@@ -310,6 +310,11 @@ out:
static int p9_ram_instruction(struct thread *thread, uint64_t opcode, uint64_t *scratch)
{
if ((opcode & OPCODE_MASK) == LD_OPCODE) {
+ printf("RAM LSU opcodes are disabled for POWER9 because exceptions will checkstop. Use ADU instead.\n");
+ return 1;
+ }
+
+ if ((opcode & OPCODE_MASK) == LD_OPCODE) {
/*
* Loads must be rammed twice, the value of the second used.
* A fault should still be returned though. Unfortunately
OpenPOWER on IntegriCloud