From 22f732aa4e7218086a68e1b9ce1d174fea2e9363 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sat, 20 Jul 2024 16:50:32 -0700 Subject: [PATCH] ARM 32-bit: centralize definition of bkpt, bkpt_th opcodes modified: stub/src/arch/arm/v4a/macros.S modified: stub/src/arm.v4a-linux.elf-so_entry.S modified: stub/src/arm.v4a-linux.elf-so_fold.S modified: stub/src/arm.v4a-linux.shlib-init.S modified: stub/src/arm.v4t-linux.shlib-init.S modified: stub/src/arm.v5a-darwin.macho-entry.S --- src/stub/src/arch/arm/v4a/macros.S | 3 +++ src/stub/src/arm.v4a-linux.elf-so_entry.S | 2 -- src/stub/src/arm.v4a-linux.elf-so_fold.S | 1 - src/stub/src/arm.v4a-linux.shlib-init.S | 2 -- src/stub/src/arm.v4t-linux.shlib-init.S | 2 -- src/stub/src/arm.v5a-darwin.macho-entry.S | 2 -- 6 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/stub/src/arch/arm/v4a/macros.S b/src/stub/src/arch/arm/v4a/macros.S index bdf0bac4..eac83dcf 100644 --- a/src/stub/src/arch/arm/v4a/macros.S +++ b/src/stub/src/arch/arm/v4a/macros.S @@ -34,6 +34,9 @@ .section \name,"ax" .endm +#define bkpt .long 0xe7f001f0 /* reserved instr; Linux GNU eabi breakpoint */ +#define bkpt_th .short 0xde01 /* reserved instr; Linux GNU eabi breakpoint */ + /* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */ #define PUSH stmdb sp!, #define POP ldmia sp!, diff --git a/src/stub/src/arm.v4a-linux.elf-so_entry.S b/src/stub/src/arm.v4a-linux.elf-so_entry.S index 4d533087..68cc2663 100644 --- a/src/stub/src/arm.v4a-linux.elf-so_entry.S +++ b/src/stub/src/arm.v4a-linux.elf-so_entry.S @@ -35,8 +35,6 @@ NBPW= 4 #include "arch/arm/v5a/macros.S" #define DEBUG 0 -#define bkpt .long 0xe7f001f0 /* reserved instr; Linux GNU eabi breakpoint */ -#define bkpt_th .short 0xde01 /* reserved instr; Linux GNU eabi breakpoint */ // As of 2023-02-04, "gcc (Debian 10.2.1-6) 10.2.1 20210110" assembles 0xbe10 for: // asm("bkpt #0x10"); // and a RaspberryPi v2 (32-bit only) running Linux executes as an infinite loop diff --git a/src/stub/src/arm.v4a-linux.elf-so_fold.S b/src/stub/src/arm.v4a-linux.elf-so_fold.S index 1bb3745e..02e0290e 100644 --- a/src/stub/src/arm.v4a-linux.elf-so_fold.S +++ b/src/stub/src/arm.v4a-linux.elf-so_fold.S @@ -30,7 +30,6 @@ #define ARM_OLDABI 1 #include "arch/arm/v4a/macros.S" #include "MAX_ELF_HDR.S" -#define bkpt .long 0xe7f001f0 /* reserved instr "udf #0x10"; Linux GNU eabi breakpoint */ NBPW= 4 sz_Elf32_Ehdr = 13*4 diff --git a/src/stub/src/arm.v4a-linux.shlib-init.S b/src/stub/src/arm.v4a-linux.shlib-init.S index 2f45a3f6..0dfabb93 100644 --- a/src/stub/src/arm.v4a-linux.shlib-init.S +++ b/src/stub/src/arm.v4a-linux.shlib-init.S @@ -32,8 +32,6 @@ #define ARM_OLDABI 1 #include "arch/arm/v5a/macros.S" -#define bkpt .long 0xe7f001f0 /* reserved instr; Linux GNU eabi breakpoint */ -#define bkpt_th .short 0xde01 /* reserved instr; Linux GNU eabi breakpoint */ sz_Elf32_Ehdr = 13*4 sz_Elf32_Phdr = 8*4 diff --git a/src/stub/src/arm.v4t-linux.shlib-init.S b/src/stub/src/arm.v4t-linux.shlib-init.S index 34fd8d83..fdd7f2fc 100644 --- a/src/stub/src/arm.v4t-linux.shlib-init.S +++ b/src/stub/src/arm.v4t-linux.shlib-init.S @@ -33,8 +33,6 @@ NBPW= 4 #define ARM_OLDABI 1 #include "arch/arm/v5a/macros.S" -#define bkpt .long 0xe7f001f0 /* reserved instr; Linux GNU eabi breakpoint */ -#define bkpt_th .short 0xde01 /* reserved instr; Linux GNU eabi breakpoint */ sz_Elf32_Ehdr = 13*NBPW sz_Elf32_Phdr = 8*NBPW diff --git a/src/stub/src/arm.v5a-darwin.macho-entry.S b/src/stub/src/arm.v5a-darwin.macho-entry.S index 8e6ab0a7..44ebda26 100644 --- a/src/stub/src/arm.v5a-darwin.macho-entry.S +++ b/src/stub/src/arm.v5a-darwin.macho-entry.S @@ -50,8 +50,6 @@ NBPW= 4 #include "arch/arm/v5a/macros.S" -#define bkpt .long 0xe1200070 - sz_b_info= 12 sz_unc= 0 sz_cpr= 4