The x86 code contains several macros that following this pattern:
```rust
macro_rules! expr {
() => { true; }
}
fn bar(_val: bool) {}
fn main() {
bar(expr!());
}
```
Here, we have a macro `expr!` that expands to tokens sequence with
a trailing semicolon.
Currently, the trailing semicolon is ignored when the macro is invoked
in expression position, due to https://github.com/rust-lang/rust/issues/33953
If this behavior is changed, then a large number of macro invocations in
`stdarch` will stop compiling.
Regardless of whether nor not this change is made, removing the
semicolon more clearly expresses the intent of the code - these macros
are designed to expand to the result of a function call, not ignore its
results (as the `;` would suggest).