Catch up with changes made on amd64 (kettenis@):
authornaddy <naddy@openbsd.org>
Sun, 4 Jun 2017 23:03:19 +0000 (23:03 +0000)
committernaddy <naddy@openbsd.org>
Sun, 4 Jun 2017 23:03:19 +0000 (23:03 +0000)
commit5ffbff1ad788f591009fe26b896b4eeb03a792a0
treec782b42291448f5e05f8afd1c306712c31a4bd7f
parent24f1eaad147cc1e120b3330b9bfff80e6c41d14a
Catch up with changes made on amd64 (kettenis@):

Generating mixed 16-bit/32-bit/64-bit code with clang's integrated
assembler is a bit tricky.  It supports the .code16, .code32 and
.code64 directives.  But it doesn't know about the data16/data32 and
addr16/addr32 instruction prefixes.  Instead it tries to determine
those from the instruction opcode.  It mostly succeeds, but there are
a couple of corner cases where clang will generate the "addr32" form
where gas generates the "addr16" form in .code16 segments.  That
should be no problem (and just waste a couple of bytes), but it makes
comparing the generated code a bit difficult.

Allow the trampoline code to be compiled with both.  For clang #define
away the addr32 prefix and avoid using the data32 prefix by using a
mnemonic that explicitly encodes the size of the operand.  Add a few
addr32 prefixes in .code16 blocks to reduce the differences between
code generated by clang and gas.

ok deraadt@
sys/arch/i386/i386/acpi_wakecode.S
sys/arch/i386/i386/mptramp.s