Skip to content

Invalid operand for inline asm constraint 'I'! #4234

@EdSchouten

Description

@EdSchouten
Bugzilla Link 3862
Resolution FIXED
Resolved on Apr 01, 2009 13:01
Version trunk
OS FreeBSD
Blocks #4068
CC @asl

Extended Description

After some experimenting with cross compilation to the ARM, I'm seeing this compiler error:

Invalid operand for inline asm constraint 'I'!

I suspect this is the offending macro:

#define __with_interrupts_disabled(expr)
do {
u_int cpsr_save, tmp;

__asm __volatile(
"mrs %0, cpsr;"
"orr %1, %0, %2;"
"msr cpsr_all, %1;"
: "=r" (cpsr_save), "=r" (tmp)
: "I" (I32_bit | F32_bit)
: "cc" );
(expr);
__asm __volatile(
"msr cpsr_all, %0"
: /* no output */
: "r" (cpsr_save)
: "cc" );
} while(0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions