我正在尝试交叉编译用于 Alpha 架构的 x86 多线程代码。我面临的唯一问题是fetch_and_inc
操作的实现,因为它是作为 x86 的内联程序集函数实现的。因此,它有一些特定于 x86 的指令,这些指令由交叉编译器直接复制到汇编代码中,然后交叉编译器尝试将它们组装到目标代码中,但它无法识别这些指令。
我想我有两个选择:要么用 c++ 而不是汇编实现 fetch_and_inc
操作,要么用其等效的 Alpha 代码替换 x86 汇编代码。
有什么想法或建议吗?
我很确定您必须执行第二个建议的选项:"将x86汇编代码替换为其等效的alpha代码"。我挖掘了如何在 Alpha CPU 上实现 fetch&inc 的解释:
http://h71000.www7.hp.com/doc/82final/5841/5841pro_018.html#ldx_stx
您使用的是哪个编译器的哪个版本?某些编译器具有高级原子内部函数。如果您的编译器支持此类功能,则应大大简化此任务。