与 ARMv6-M 相比,ARMv8-M Baseline 提供了哪些新指令?
What new instructions does ARMv8-M Baseline provide over ARMv6-M?
2016 年,ARM 推出了 ARMv8-M 架构,作为对流行的 ARMv6-M (Cortex M0/M0+/M1) 和 ARMv7-M (Cortex M3/M4/M7) 架构的升级。 ARMv8-M 架构再次分为 Baseline 配置文件,被视为 ARMv6-M 架构的延续,以及 Mainline 配置文件,被视为延续ARMv7-M 架构。
不幸的是,对 ARMv8-M Architecture Reference Manual 的粗略检查并没有深入了解到底添加了什么,而且似乎没有关于与以前版本的体系结构相比发生了什么变化的有用总结。与 CPU 体系结构的新版本一样,似乎几乎所有细节都没有改变,只有一些小的添加。
与 ARMv6-M 相比,ARMv8-M Baseline 提供了哪些额外的指令和指令变体?
标题为 Cortex-M for Beginners 的 ARM 文档可能会提供您正在寻找的信息,更具体地说是在第 6 和 7 页。
ARMv6-M提供16位指令ADC
、ADD
、ADR
、AND
、ASR
、B
、BIC
, BKPT
, BL
, BLX
, BX
, CMN
, CMP
, CPS
, EOR
、LDMIA
、LDR
、LDRB
、LDRH
、LDRSB
、LDRSH
、LSL
、LSR
, MOV
, MUL
, MVN
, NOP
, ORR
, PUSH
, REV
, REV16
, REVSH
, ROR
, RSB
, SBC
, SEV
, STMIA
, STR
, STRB
, STRH
, SUB
, SVC
, SXTB
, SXTH
, TST
, UDF
, UXTB
, UXTH
, WFE
, WFI
, 和 YIELD
.
此外,32 位指令 BL
、DMB
、DSB
、ISB
、MRS
和 MSR
可用。
对于这些,ARMv8-M 基线添加...
- 硬件除法指令
SDIV
和UDIV
- 32位无条件分支指令
B
(扩展范围)
- 16 位比较和分支指令
CBZ
和CBNZ
- 32 位指令
MOVW
和 MOVT
用于加载常量(作为 LDR Rd, =...
的替代方法)
- load-acquire/store-release 说明
LDA
、LDAB
、LDAH
、STL
、STLB
和 STLH
- load-acquire/store-release 独占访问指令
LDAEX
、LDAEXB
、LDAEXH
、STLEX
、STLEXB
和 STLEXH
- 独占访问指令
CLREX
、LDREX
、LDREXB
、LDREXH
、STREX
、STREXB
和STREXH
如果另外实施安全扩展,指令BLXNS
、BXNS
、SG
、TT
、TTT
、TTA
, 和 TTAT
可用。
2016 年,ARM 推出了 ARMv8-M 架构,作为对流行的 ARMv6-M (Cortex M0/M0+/M1) 和 ARMv7-M (Cortex M3/M4/M7) 架构的升级。 ARMv8-M 架构再次分为 Baseline 配置文件,被视为 ARMv6-M 架构的延续,以及 Mainline 配置文件,被视为延续ARMv7-M 架构。
不幸的是,对 ARMv8-M Architecture Reference Manual 的粗略检查并没有深入了解到底添加了什么,而且似乎没有关于与以前版本的体系结构相比发生了什么变化的有用总结。与 CPU 体系结构的新版本一样,似乎几乎所有细节都没有改变,只有一些小的添加。
与 ARMv6-M 相比,ARMv8-M Baseline 提供了哪些额外的指令和指令变体?
标题为 Cortex-M for Beginners 的 ARM 文档可能会提供您正在寻找的信息,更具体地说是在第 6 和 7 页。
ARMv6-M提供16位指令ADC
、ADD
、ADR
、AND
、ASR
、B
、BIC
, BKPT
, BL
, BLX
, BX
, CMN
, CMP
, CPS
, EOR
、LDMIA
、LDR
、LDRB
、LDRH
、LDRSB
、LDRSH
、LSL
、LSR
, MOV
, MUL
, MVN
, NOP
, ORR
, PUSH
, REV
, REV16
, REVSH
, ROR
, RSB
, SBC
, SEV
, STMIA
, STR
, STRB
, STRH
, SUB
, SVC
, SXTB
, SXTH
, TST
, UDF
, UXTB
, UXTH
, WFE
, WFI
, 和 YIELD
.
此外,32 位指令 BL
、DMB
、DSB
、ISB
、MRS
和 MSR
可用。
对于这些,ARMv8-M 基线添加...
- 硬件除法指令
SDIV
和UDIV
- 32位无条件分支指令
B
(扩展范围) - 16 位比较和分支指令
CBZ
和CBNZ
- 32 位指令
MOVW
和MOVT
用于加载常量(作为LDR Rd, =...
的替代方法) - load-acquire/store-release 说明
LDA
、LDAB
、LDAH
、STL
、STLB
和STLH
- load-acquire/store-release 独占访问指令
LDAEX
、LDAEXB
、LDAEXH
、STLEX
、STLEXB
和STLEXH
- 独占访问指令
CLREX
、LDREX
、LDREXB
、LDREXH
、STREX
、STREXB
和STREXH
如果另外实施安全扩展,指令BLXNS
、BXNS
、SG
、TT
、TTT
、TTA
, 和 TTAT
可用。