From 8765826465e6103d419808f78e8fc3f97218e9a6 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Tue, 2 Aug 2016 17:45:40 +0200 Subject: [PATCH] inline-asm: Accept "flags" clobber --- i386-asm.c | 5 +++-- tests/tcctest.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/i386-asm.c b/i386-asm.c index 71c451a..b686665 100644 --- a/i386-asm.c +++ b/i386-asm.c @@ -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; diff --git a/tests/tcctest.c b/tests/tcctest.c index 6218983..3885b54 100644 --- a/tests/tcctest.c +++ b/tests/tcctest.c @@ -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)