隐藏的ARM 3字母助记符列表

问题描述 投票:0回答:1

x86 曾有制造商当时插入新的、未记录的操作码的情况1

由于 ARM 控股公司缺乏晶圆厂,许可证持有人可能会插入“隐藏”操作码。使用我的 google-fu 之后,这个理论似乎是不正确的。从文档或过去的经验来看——你知道任何“隐藏的助记符”吗?


脚注 1:例如 x86 的

0xD6
操作码,某些汇编器支持为
salc
(从进位设置 AL,如
sbb al,al
将其设置为 0 或 -1,但不更新 FLAGS)。 https://righto.com/2023/07/undocumented-8086-instructions.html - 它存在于从 8086 到 64 位以外的模式的 Intel CPU 中,以及大多数(全部?)其他供应商的 CPU 中, 也。它仍然没有记录在 Intel 手册中,但在 64 位模式下不可用的指令表中AMD 手册提到了它,尽管手册的其余部分没有记录它。

https://pushbx.org/ecm/doc/insref.htm 是 NASM 附录从有描述时的更正版本;您可以在其中搜索

[UNDOC]
来查找其他一些 286、386 和 486 未记录的指令。

其他 x86 供应商也有自己的未记录的操作码,例如 Via C3 CPU 具有由特殊操作码激活的“备用指令集”。 (参见 为什么 Intel 在其处理器中隐藏内部 RISC 核心?,以及 Christopher Domas 的“打破 x86 指令集”讨论如何找到这些和其他未记录的操作码。)

assembly arm instructions mnemonics
1个回答
2
投票

XScale 是这种分叉的一个非常明显的例子。英特尔当时添加了自己的指令以提供更多媒体功能的核心。

摘自英特尔 XScale® 核心开发人员手册

2.3 ARM 架构的扩展

第三代微架构扩展了ARMv5TE架构,满足各种市场的需求 和设计要求。以下是扩展列表 这将在后续章节中讨论。

  • 添加了媒体处理协处理器 (CP0),其中包含 40 位内部累加器。添加了 5 条新指令来访问 40 位累加器。 页表描述符中添加了页属性,并增强了 ARMv5TE 中现有属性的描述。请注意,与使用先前微架构的页表属性开发的软件保持了兼容性。
  • 第三代微架构中添加了协处理器 7 和协处理器 14 寄存器。
  • 扩展了协处理器 15 的功能并添加了新的寄存器。
  • 对异常架构进行了增强,其中包括指令缓存和数据缓存奇偶校验错误异常、调试异常和不精确的外部数据中止。

Qualcomm
在撰写本文时类似于
Intel
,但采用了更封闭的方法。也许他们不会直接向其核心添加新指令,但他们尝试以某种方式修改它们,以使它们比其他
ARM
核心更具优势。一个例子是 SIMD 指令,高通有自己的协处理器,称为
VeNum
,与 ARM 内核相比,它在寄存器寻址方面的限制较少 - 请阅读 Michael 的评论 作为示例。

© www.soinside.com 2019 - 2024. All rights reserved.