相关疑难解决方法(0)

如何关闭LLVM的集成汇编程序?

我有一个涉及手写汇编-AT&T语法的项目,可以和GCC一起使用,但我没有完成,而且我对汇编知之甚少 - 在尝试使用Clang构建它时出现了一个奇怪的问题.

LLVM文档提到 "大多数X86目标"使用LLVM的集成汇编程序而不是系统汇编程序; 作为一种可能的解决方法,我想明确使用后者.我(好吧,Google)没有成功找到有关如何执行此操作的信息.

问题:有没有办法要求或者强迫Clang/LLVM使用系统汇编程序而不是集成程序集?

(我知道我总是可以去阅读Source™,但我想知道是否有文档化的方法.)

assembly llvm clang

15
推荐指数
1
解决办法
5251
查看次数

用于Sparc架构的GCC内联汇编

我在互联网上找到了__sync_val_compare_and_swap的实现:

#define LOCK_PREFIX "lock ; "

struct __xchg_dummy { unsigned long a[100]; };
#define __xg(x) ((struct __xchg_dummy *)(x))

static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
                  unsigned long new, int size)
{
   unsigned long prev;
   switch (size) {
   case 1:
      __asm__ __volatile__(LOCK_PREFIX "cmpxchgb %b1,%2"
                 : "=a"(prev)
                 : "q"(new), "m"(*__xg(ptr)), "0"(old)
                 : "memory");
      return prev;
   case 2:
      __asm__ __volatile__(LOCK_PREFIX "cmpxchgw %w1,%2"
                 : "=a"(prev)
                 : "q"(new), "m"(*__xg(ptr)), "0"(old)
                 : "memory");
      return prev;
   case 4:
      __asm__ __volatile__(LOCK_PREFIX "cmpxchgl %1,%2" …
Run Code Online (Sandbox Code Playgroud)

c assembly gcc sparc

1
推荐指数
1
解决办法
2711
查看次数

标签 统计

assembly ×2

c ×1

clang ×1

gcc ×1

llvm ×1

sparc ×1