NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-arm/49520: arm/disassem.c doesn't use proper address mode name for loads



>Number:         49520
>Category:       port-arm
>Synopsis:       arm/disassem.c doesn't use proper address mode name for loads
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-arm-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 01 17:50:00 +0000 2015
>Originator:     Paul Guyot
>Release:        NetBSD 6 ? Revision 1.25, Fri Nov 21 23:36:20 2014 UTC
>Organization:
>Environment:
not applicable
>Description:
The following code is incorrect:

#define insn_stkblktrans(x)	insn_stack_block_transfers[(x >> 23) & 3]

It uses bits P and U to determine the stack-based name of the address mode. However, this name also depends on bit L (load or store) and the macro is only valid for store operations.

Cf ARM-ARM, "Load and Store Multiple addressing modes (alternative names)"
>How-To-Repeat:

>Fix:
Give up using alternate stack-based address modes or use the L bit.



Home | Main Index | Thread Index | Old Index