inline-asm: Accept "flags" clobber

This commit is contained in:
Michael Matz 2016-08-02 17:45:40 +02:00
parent b7ca74577b
commit 8765826465
2 changed files with 4 additions and 3 deletions

View File

@ -347,7 +347,7 @@ static void parse_operand(TCCState *s1, Operand *op)
goto no_skip;
} else {
reg_error:
tcc_error("unknown register");
tcc_error("unknown register %%%s", get_tok_str(tok, &tokc));
}
next();
no_skip: ;
@ -1487,7 +1487,8 @@ ST_FUNC void asm_clobber(uint8_t *clobber_regs, const char *str)
TokenSym *ts;
if (!strcmp(str, "memory") ||
!strcmp(str, "cc"))
!strcmp(str, "cc") ||
!strcmp(str, "flags"))
return;
ts = tok_alloc(str, strlen(str));
reg = ts->tok;

View File

@ -2566,7 +2566,7 @@ static __inline__ void sigaddset1(unsigned int *set, int _sig)
static __inline__ void sigdelset1(unsigned int *set, int _sig)
{
asm("btrl %1,%0" : "=m"(*set) : "Ir"(_sig - 1) : "cc");
asm("btrl %1,%0" : "=m"(*set) : "Ir"(_sig - 1) : "cc", "flags");
}
static __inline__ __const__ unsigned int swab32(unsigned int x)