svc (主管调用) 指令

用途

生成主管呼叫中断。

注: svc 指令仅在 POWER ® 系列体系结构中受支持。

语法

位数 VALUE
0 - 5 17
6 - 10 ///
11 - 15 ///
16 - 19 FLI
20 - 26 LEV
27 - 29 FL2
30 SA
31 LK
POWER ® 系列 
SVC LEV FL1 FL2
svcl LEV FL1 FL2
位数 VALUE
0 - 5 17
6 - 10 ///
11 - 15 ///
16 - 29 SV
30 SA
31 LK
描述
svca SV
svcla SV

描述

svc 指令生成一个管理程序调用中断,并将 svc 指令的位 16-31 放入计数寄存器 (CR) 的位 0-15 和机器状态寄存器 (MSR) 的位 16-31 放入 CR 的位 16-31。

使用 svc 指令时,请考虑以下事项:

  • 如果 SVC 绝对位 (SA) 设置为 0 ,那么指令访存和执行将在 MSR 的 IP 位设置所指示的基本有效地址 (EA) 的 128 个偏移量 (b '1' | | LEV | |b '00000') 之一处继续。 FL1FL2 字段可用于将数据传递到 SVC 例程,但被硬件忽略。
  • 如果 SVC 绝对位 (SA) 设置为 1,则指令获取和执行将在偏移量x'1FE0',处继续,偏移量为 MSR 的 IP 位设置所指示的基准 EA。
  • 如果链接位 (LK) 设置为 1 ,那么 svc 指令后面的指令的 EA 将放在链接寄存器中。
    注意:
    1. 要确保操作正确,必须在 svc 指令之前添加无条件分支或 CR 指令。 如果无法按指定方式调度有用的指令,请使用具有以下语法的 no-op 版本的 cror 指令:
      
      cror BT,BA,BB      No-op when BT = BA = BB
      
    2. svc 指令具有与 sc (系统调用) 指令相同的操作码。

svc 指令有四种语法形式。 每种语法形式都会影响 MSR。

描述
语法表单 链接 位 (LK) SVC 绝对位 (SA) 机器状态寄存器位
SVC 0 0 EE , PR 和 FE 设置为零
svcl 1 0 EE , PR 和 FE 设置为零
svca 0 1 EE , PR 和 FE 设置为零
svcla 1 1 EE , PR 和 FE 设置为零

svc 指令的四种语法形式从不影响 MSR 的 FP , ME , AL , IP , IR 或 DR 位。 MSR 的 EE , PR 和 FE 位始终设置为 0。 定点异常寄存器和条件寄存器字段 0 不受 svc 指令影响。

参数

描述
LEV 指定执行地址。
FL1 指定传递到 SVC 例程的可选数据的字段。
FL2 指定传递到 SVC 例程的可选数据的字段。
SV 指定传递到 SVC 例程的可选数据的字段。