问题标签 [alpha-cpu-architecture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
348 浏览

gcc - 如何优化与 gcc 交叉编译的 LLVM 程序集?

我正在使用 LLVM 生成 Alpha 程序集。他们的 Alpha ISA 支持是实验性的,我找不到解决错误的方法。如果我在 LLVM 字节码到 Alpha 程序集创建期间使用 -O0,则生成的程序集很好。

但是,我想要优化组装。gcc(这是我的最终交叉编译器)中是否有一些可以优化程序集的选项?我在将 Alpha 程序集转换为目标文件时尝试了 -O3,但我没有看到任何优化发生。甚至可以在创建程序集后进行后端优化吗?

0 投票
1 回答
237 浏览

assembly - 在 C++ 中为共享多线程程序实现“fetch_and_inc”操作

我正在尝试为 Alpha 架构交叉编译 x86 多线程代码。我面临的唯一问题是fetch_and_inc操作的实现,因为它是作为 x86 的内联汇编函数实现的。因此,它有一些特定于 x86 的指令被交叉编译器直接复制到汇编代码中,然后交叉编译器尝试将它们汇编为目标代码,但它不识别这些指令。

我想我有两个选择:要么fetch_and_inc用 c++ 而不是汇编来实现操作,要么用等效的 Alpha 代码替换 x86 汇编代码。

有什么想法或建议吗?

0 投票
1 回答
176 浏览

x86 - x86 的 RDTSC 的 Alpha 等效项?

我有以下在 x86/linux 中完美运行的代码。我想使用 gcc 交叉编译器将此代码转换为 ALPHA。它产生如下错误:

“asm”中的未知寄存器名称“eax”

我自己找不到合适的资源。

我几乎没有发现 rpcc 是 rdts 的等效指令。我猜 cpuid 和 xorl 是一样的。但是 eax, ebx 是特定于 x86 的寄存器,而不是 ALPHA 中的寄存器。Alpha ISA 寄存器从 0 到 31 编号,就像这里

有人可以通过提供一些包含合理信息的链接将上述代码转换为 ALPHA 或建议我如何做到这一点吗?

如果我知道如何将以下行至少转换为 ALPHA inline,那就足够了:

谢谢

0 投票
0 回答
33 浏览

cpu-architecture - Alpha 21264 微处理器如何检查寄存器映射?

在描述 Alpha 21264 微处理器的论文

使用保存的映射状态将寄存器映射备份到最后一个压缩指令之前的状态。每个飞行中指令的映射状态都得到维护,因此很容易恢复。

微处理器可以有 80 条运行中的指令,这是否意味着寄存器映射会有 80 个检查点(对于每条指令)?如果是这样,这将需要大量专门用于检查点恢复的存储。我的问题是,是否存储了整个寄存器映射,这会占用大量空间,或者是否使用了其他机制而不是存储所有占用空间较小的映射?

0 投票
0 回答
16 浏览

compiler-errors - 从在 X86 上运行的 Ubuntu 交叉编译 C 程序到 Alpha ISA

我正在尝试编译一个小型 c 程序,以在仅适用于 alpha ISA 的旧 SMT CPU 模拟器 (M-Sim3.0) 上运行它。我正在开发 Ubuntu 18.04.4。

我试图安装这个:alpha-linux-gnu并像这样运行它:

alpha-linux-gnu-gcc hello.c -o hello.alpha

但它在模拟器上不起作用。我尽可能简单地运行它:./sim-outorder hello.arg

并得到这个错误:

参数: A0(120000640) A1(1) A2(11fffc018) A3(1200006a0) A4(120000760) A5(0)

恐慌:试图在 fastfwd 的 0 处执行虚假操作码 (0):24 [ff_context:sim-outorder.c,第 4383 行]

中止(核心转储)

有人熟悉另一个 Alpha 交叉编译器吗?

或者我应该在命令中添加更多标志?

不用说它的“x86 等价物”:gcc hello.c -o hello在我的机器上完美运行。