[PATCH v2] gdb/arm: Include FType bit in EXC_RETURN pattern on v8m

Torbjorn SVENSSON torbjorn.svensson@foss.st.com
Wed Nov 23 13:17:34 GMT 2022



On 2022-11-23 13:46, Luis Machado wrote:
> On 11/23/22 12:17, Torbjörn SVENSSON wrote:
>> For v8m, the EXC_RETURN pattern, without security extension, consists of
>> FType, Mode and SPSEL.  These are the same bits that are used in v7m.
>> This patch extends the list of patterns to include also the FType bit
>> and not just Mode and SPSEL bits for v8m targets without security
>> extension.
>>
>> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
>> ---
>>   gdb/arm-tdep.c | 19 +++++++++++++------
>>   1 file changed, 13 insertions(+), 6 deletions(-)
>>
>> diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
>> index a839f957440..f466b5938e4 100644
>> --- a/gdb/arm-tdep.c
>> +++ b/gdb/arm-tdep.c
>> @@ -828,13 +828,17 @@ arm_m_addr_is_lockup (CORE_ADDR addr)
>>      For more details see "B1.5.8 Exception return behavior"
>>      in both ARMv6-M and ARMv7-M Architecture Reference Manuals.
>> -   In the ARMv8-M Architecture Technical Reference also adds
>> -   for implementations without the Security Extension:
>> +   From ARMv8-M Architecture Technical Reference, D1.2.95
>> +   FType, Mode and SPSEL bits are to be considerd when Security 
>> Extension is
> 
> considerd -> considered
> when -> when the
> 
>> +   not implemented.
>> -   EXC_RETURN    Condition
>> -   0xFFFFFFB0    Return to Handler mode.
>> -   0xFFFFFFB8    Return to Thread mode using the main stack.
>> -   0xFFFFFFBC    Return to Thread mode using the process stack.  */
>> +   EXC_RETURN    Return To        Return Stack    Frame Type
>> +   0xFFFFFFA0    Handler mode     Main            Extended
>> +   0xFFFFFFA8    Thread mode      Main            Extended
>> +   0xFFFFFFAC    Thread mode      Process         Extended
>> +   0xFFFFFFB0    Handler mode     Main            Standard
>> +   0xFFFFFFB8    Thread mode      Main            Standard
>> +   0xFFFFFFBC    Thread mode      Process         Standard  */
>>   static int
>>   arm_m_addr_is_magic (struct gdbarch *gdbarch, CORE_ADDR addr)
>> @@ -859,6 +863,9 @@ arm_m_addr_is_magic (struct gdbarch *gdbarch, 
>> CORE_ADDR addr)
>>         switch (addr)
>>       {
>>         /* Values from ARMv8-M Architecture Technical Reference.  */
>> +    case 0xffffffa0:
>> +    case 0xffffffa8:
>> +    case 0xffffffac:
>>       case 0xffffffb0:
>>       case 0xffffffb8:
>>       case 0xffffffbc:
> 
> OK with the above addressed.


Pushed.


More information about the Gdb-patches mailing list