XABORT

交易中止

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
C6 F8 ibXABORT imm8A有效有效如果 RTM 执行, 则导致 RTM 流产 。

操作数编码

每个模式对应上表 Op/En 列的一个取值,说明各操作数按书写顺序分别编码在指令的哪个字段,以及指令对它是读、是写还是两者兼有。

A

  1. imm8指令后的立即数字节

实测开销

正在从 arch-data 加载实测数据...

说明

XABORT迫使RTM流产. 在 RTM 中止后,逻辑处理器会在通过最外侧的 XBEGIN 指令计算出的倒置地址恢复执行. EAX寄存器被更新,以反映导致流产的XABORT指示,imm8参数将以EAX的比特31:24提供.

行动

XABORT
IF RTM_ACTIVE = 0

    THEN
          Treat as NOP;

    ELSE
          GOTO RTM_ABORT_PROCESSING;

FI;

(* For any RTM abort condition encountered during RTM execution *)
RTM_ABORT_PROCESSING:

    Restore architectural register state;
    Discard memory updates performed in transaction;
    Update EAX with status and XABORT argument;
    RTM_NEST_COUNT:= 0;
    RTM_ACTIVE:= 0;
    SUSLDTRK_ACTIVE := 0;
    IF 64-bit Mode

          THEN
                RIP:= fallbackRIP;

          ELSE
                EIP := fallbackEIP;

    FI;
END

受影响的旗帜

None.

Intel C/C++ 内在编译器

XABORT void _xabort( unsigned int);

SIMD 浮点 例外

None.

其他例外

#UDCPUID.07H.00H:EBX.RTM[11] = 0.

如果使用 LOCK 前缀 。

来源