On 7/27/22 20:00, Sean Christopherson wrote:
I saw a failure on older binutils where 1UL is not accepted by the
assembler.
Mostly out of curiosity, how old? I thought I was running some ancient crud in some
of my VMs, but even they play nice with this.
CentOS 7, so 2014-vintage.
An alternative is to have some kind of __ASSEMBLY__ symbol as in Linux.
I've no objection to this approach, but can you reword the changelog to call out
that it's only older binutils that's problematic? I was truly confused by the
"cannot be used" blurb.
And a nit, add spaces around the shift (largely because they're needed around the
string), e.g.
"orl $(1 << " xstr(X86_EFLAGS_AC_BIT) "), 2*"S"(%"R "sp)\n" // set EFLAGS.AC and retry
I'm indifferent about the lack of spaces for the existing multiplication, I just
found the shift a little hard to read.
Ok, will do.
Paolo