Page MenuHomeFreeBSD

Support 1 and 2 byte cmpset on x86
ClosedPublic

Authored by markj on Mar 20 2017, 11:21 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Nov 15, 9:43 AM
Unknown Object (File)
Oct 22 2024, 4:53 PM
Unknown Object (File)
Oct 2 2024, 2:51 PM
Unknown Object (File)
Sep 30 2024, 1:53 PM
Unknown Object (File)
Sep 30 2024, 1:58 AM
Unknown Object (File)
Sep 27 2024, 11:43 AM
Unknown Object (File)
Sep 26 2024, 10:31 PM
Unknown Object (File)
Sep 25 2024, 10:04 PM
Subscribers
None

Details

Summary

This is intended for use in the LinuxKPI - the DRM code needs it.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 8167
Build 8389: arc lint + arc unit

Event Timeline

markj retitled this revision from Support 1 and 2 byte cmpset on x86. to Support 1 and 2 byte cmpset on x86.Mar 20 2017, 11:29 PM
markj edited the summary of this revision. (Show Details)
markj added reviewers: jhb, kib.
sys/i386/include/atomic.h
222

There is %zN construct, which prints opcode suffix for operand N. I think it is supported by clang. If you use it, you would avoid passing the instruction mnemonic to macros. Also, I suspect that it would work without suffix at all.

sys/i386/include/atomic.h
222

With clang 4.0 I get "error: invalid operand in inline asm," though it works with gcc 4.9. But indeed, it looks like the suffixes aren't needed anyway.

Don't specify the operand type, it can be inferred.

This revision is now accepted and ready to land.Mar 21 2017, 6:28 PM
This revision was automatically updated to reflect the committed changes.