zoukankan      html  css  js  c++  java
  • arm中的饱和指令

    ARMv6 及更高版本中推出了饱和指令:SSAT 和 USAT, SSAT16 和 USAT16

    有符号饱和到任何位位置和无符号饱和到任何位位置,可选择在饱和前进行移位。

    SSAT 可将有符号值饱和到有符号范围内。

    USAT 可将有符号值饱和到无符号范围内。

    语法

    op{cond} Rd, #sat, Rm{, shift}

    其中:

    op

    SSATUSAT

    cond

    是一个可选的条件代码(请参阅条件执行)。

    Rd

    是目标寄存器。 Rd 不能为 r15。

    sat

    指定要饱和到的位位置,SSAT 的范围在 1 到 32 之间,USAT 的范围在 0 到 31 之间。

    Rm

    是包含操作数的寄存器。 Rm 不能为 r15。

    shift

    是一个可选的移位。 必须为下列项之一:

    ASR #n

    其中,n 的范围为 1-32 (ARM) 或 1-31 (Thumb-2)

    LSL #n

    其中,n 的范围为 0-31。

    操作

    SSAT 指令会先进行指定的移位,然后将结果饱和到有符号范围 –2sat–1 ≤ x ≤ 2sat–1 –1。

    USAT 指令会先进行指定的移位,然后将结果饱和到无符号范围 0 ≤ x ≤ 2sat – 1。

    条件标记

    如果发生饱和,则这些指令设置 Q 标记。 若要读取 Q 标记的状态,请使用 MRS 指令(请参阅MRS)。

    体系结构

    这些 ARM 指令可用于 ARMv6 及更高版本。

    这些 32 位 Thumb 指令可用于 ARMv6T2 及更高版本。

    这些指令均无 16 位 Thumb 版本。

    示例

        SSAT    r7, #16, r7, LSL #4    USATNE  r0, #7, r5
    SSAT16 和 USAT16

    并行半字饱和指令。

    SSAT16 可将有符号值饱和到有符号范围内。

    USAT16 可将有符号值饱和到无符号范围内。

    语法

    op{cond} Rd, #sat, Rn

    其中:

    op

    是下列项之一:

    SSAT16

    有符号饱和。

    USAT16

    无符号饱和。

    cond

    是一个可选的条件代码(请参阅条件执行)。

    Rd

    是目标寄存器。

    sat

    指定要饱和到的位位置,SSAT16 的范围在 1 到 16 之间,USAT16 的范围在 0 到 15 之间。

    Rn

    是存放操作数的寄存器。

    不要将 r15 用作 RdRn

    操作

    有符号和无符号半字饱和任何位位置。

    SSAT16 指令可将每个有符号半字饱和到有符号范围 –2sat–1 ≤ x ≤ 2sat–1 –1 内。

    USAT16 指令可将每个有符号半字饱和到无符号范围 0 ≤ x ≤ 2sat –1 内。

    条件标记

    只要有半字发生饱和,这些指令就会设置 Q 标记。 若要读取 Q 标记的状态,请使用 MRS 指令(请参阅MRS)。

    体系结构

    这些 ARM 指令可用于 ARMv6 及更高版本。

    这些 32 位 Thumb 指令可用于 ARMv6T2 及更高版本(ARMv7-M 架构除外)。

    这些指令均无 16 位 Thumb 版本。

    示例

        SSAT16  r7, #12, r7    USAT16  r0, #7, r5

    不正确的示例

        SSAT16  r1, #16, r2, LSL #4 ; shifts not permitted with halfword saturations
  • 相关阅读:
    Saltstack module gem 详解
    Saltstack module freezer 详解
    Saltstack module firewalld 详解
    Saltstack module file 详解
    Saltstack module event 详解
    Saltstack module etcd 详解
    Saltstack module environ 详解
    Saltstack module drbd 详解
    Saltstack module dnsutil 详解
    获取主页_剥离百度
  • 原文地址:https://www.cnblogs.com/c6000/p/1872223.html
Copyright © 2011-2022 走看看