svc (主管调用) 指令
用途
生成主管呼叫中断。
注: svc 指令仅在 POWER ® 系列体系结构中受支持。
语法
| 位数 | VALUE |
|---|---|
| 0 - 5 | 17 |
| 6 - 10 | /// |
| 11 - 15 | /// |
| 16 - 19 | FLI |
| 20 - 26 | LEV |
| 27 - 29 | FL2 |
| 30 | SA |
| 31 | LK |
| 位数 | VALUE |
|---|---|
| 0 - 5 | 17 |
| 6 - 10 | /// |
| 11 - 15 | /// |
| 16 - 29 | SV |
| 30 | SA |
| 31 | LK |
描述
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') 之一处继续。 FL1 和 FL2 字段可用于将数据传递到 SVC 例程,但被硬件忽略。
- 如果 SVC 绝对位 (SA) 设置为 1,则指令获取和执行将在偏移量x'1FE0',处继续,偏移量为 MSR 的 IP 位设置所指示的基准 EA。
- 如果链接位 (LK) 设置为 1 ,那么 svc 指令后面的指令的 EA 将放在链接寄存器中。
注意:
- 要确保操作正确,必须在 svc 指令之前添加无条件分支或 CR 指令。 如果无法按指定方式调度有用的指令,请使用具有以下语法的 no-op 版本的 cror 指令:
cror BT,BA,BB No-op when BT = BA = BB - svc 指令具有与 sc (系统调用) 指令相同的操作码。
- 要确保操作正确,必须在 svc 指令之前添加无条件分支或 CR 指令。 如果无法按指定方式调度有用的指令,请使用具有以下语法的 no-op 版本的 cror 指令:
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 例程的可选数据的字段。 |