Hi Segher,

I'd like to use cr instead of gpr to return error condition from __get_user().

I saw in GCC doc (https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html) that it is possible to use "y" as constraint to refer to "Any condition register field, cr0…cr7".

I tried the test below, but it fails with "error: impossible register constraint in 'asm'"

How does "y" has to be used ?

int test(char *p)
{
        struct {
                int r:1;
        } res = {0};

        asm("crnot %0 * 4 + eq, %0 * 4 + eq": "=&y"(res.r));

        if (res.r)
                return -14;
        return 0;
}

Christophe

Reply via email to