This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
typedef struct
{
UNS_32 reg[2];
} arm_2_registers_t;static inline
arm_2_registers_t arm_2_registers_load(
UNS_32 *src_addr_ptr )
{
arm_2_registers_t result;
__asm__ (
"ldmia %0, {%1,%2} \n\t"
: "+r" (src_addr_ptr), "=r" (result.reg[0]), "=r" ( result.reg[1])
);
return( result );
}That seems to work fine until the compiler decides to use registers for %1 and %2 that aren't in ascending order. I've examined the assembly constraints and I don't see anything obvious.
-- Bryce Schober
-- For unsubscribe information see http://sourceware.org/lists.html#faq
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |