From: Jan Vrany Date: Wed, 8 Dec 2021 10:46:49 +0000 (+0000) Subject: ppc: use "trap" ("tw, 31, 0, 0") as breakpoint instruction X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=44f3c3c212f9b568a6b3cff0444b6750e3d8680f;p=binutils-gdb.git ppc: use "trap" ("tw, 31, 0, 0") as breakpoint instruction Power ISA 3.0 B spec [1], sections 3.3.11 "Fixed-Point Trap Instructions" and section C.6 "Trap Mnemonics" specify "tw, 31, 0, 0" (encoded as 0x7fe00008) as canonical unconditional trap instruction. This commit changes the breakpoint instruction used by GDB from "tw 12, r2, r2" to unconditional "trap". [1]: https://openpowerfoundation.org/?resource_lib=power-isa-version-3-0 --- diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 87a494e0bb8..43880fa4426 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -824,8 +824,8 @@ rs6000_fetch_pointer_argument (struct frame_info *frame, int argi, /* Sequence of bytes for breakpoint instruction. */ -constexpr gdb_byte big_breakpoint[] = { 0x7d, 0x82, 0x10, 0x08 }; -constexpr gdb_byte little_breakpoint[] = { 0x08, 0x10, 0x82, 0x7d }; +constexpr gdb_byte big_breakpoint[] = { 0x7f, 0xe0, 0x00, 0x08 }; +constexpr gdb_byte little_breakpoint[] = { 0x08, 0x00, 0xe0, 0x7f }; typedef BP_MANIPULATION_ENDIAN (little_breakpoint, big_breakpoint) rs6000_breakpoint;