[clang] [X86]Add support for _outp{|w|d} (PR #93774)
Malay Sanghi via cfe-commits
cfe-commits at lists.llvm.org
Wed May 29 23:50:31 PDT 2024
================
@@ -329,6 +329,26 @@ static __inline__ void __DEFAULT_FN_ATTRS __stosq(unsigned __int64 *__dst,
static __inline__ void __DEFAULT_FN_ATTRS __halt(void) {
__asm__ volatile("hlt");
}
+
+static __inline__ int __DEFAULT_FN_ATTRS _outp(unsigned short port, int data) {
+ __asm__ volatile("outb %b0, %w1" : : "a"(data), "Nd"(port) : "memory");
+ return data;
+}
+
+static __inline__ unsigned short __DEFAULT_FN_ATTRS
+_outpw(unsigned short port, unsigned short data) {
+ __asm__ volatile("outw %w0, %w1" : : "a"(data), "Nd"(port) : "memory");
+ return data;
+}
+
+static __inline__ unsigned long __DEFAULT_FN_ATTRS _outpd(unsigned short port,
+ unsigned long data) {
+ __asm__ volatile("outl %k0, %w1" : : "a"(data), "Nd"(port) : "memory");
+ return data;
+}
+
+#define outp(port, data) _outp(port, data)
+#define outpw(R, D) _outpw(port, data)
----------------
MalaySanghi wrote:
No, ms does not define one: https://learn.microsoft.com/en-us/cpp/c-runtime-library/outp-outpw-outpd?view=msvc-170
https://github.com/llvm/llvm-project/pull/93774
More information about the cfe-commits
mailing list