2900 0FFE - goto/16 002f // -01f1
跳转到当前位置-1F1H的位置,002f是目标指
令标签。
实现一个switch 语句,case常
量是连续的。这个指令使用
索引
表
,vx是在表中找到具体case的
指令偏移量的索引,如果无法在
表中找到vx对应的索引将继续执
行下一个指令(即default cas
e)。
2B02 0C00 0000 - packed-switch v2, 00
0c // +000c
根据v2寄存器中的值执行packed switch,索
引表的位置是当前指令位置+0CH,表如下所示
:
0001 // 表类型:packed switch表
0300 // 元素个数
0000 0000 // 基础元素
0500 0000 0: 00000005 // case 0: +000
00005
0700 0000 1: 00000007 // case 1: +000
00007
0900 0000 2: 00000009 // case 2: +000
00009
实现一个switch 语句,case常
量是非连续的。这个指令使用
查
询表
,用于表示case常量和每个
case常量的偏移量。如果vx无法
在表中匹配将继续执行下一个指
令(即default case)。
2C02 0c00 0000 - sparse-switch v2, 00
0c // +000c
根据v2寄存器中的值执行sparse switch ,
查询表的位置是当前指令位置+0CH,表如下所
示:
0002 // 表类型:sparse switch表
0300 // 元素个数
9cff ffff // 第一个case常量: -100
fa00 0000 // 第二个case常量: 250
e803 0000 // 第三个case常量: 1000
0500 0000 // 第一个case常量的偏移量: +5
0700 0000 // 第二个case常量的偏移量: +7
0900 0000 // 第三个case常量的偏移量: +9
比较vy和vz的float值并在vx存
入int型返回值
注3
。
2D00 0607 - cmpl-float v0, v6, v7
比较v6和v7的float值并在v0存入int型返回值
。非数值默认为小于。如果参数为非数值将返
回-1。
比较vy和vz的float值并在vx存
入int型返回值
注3
。
2E00 0607 - cmpg-float v0, v6, v7
比较v6和v7的float值并在v0存入int型返回值
。非数值默认为大于。如果参数为非数值将返
回1。
比较vy和vz
注2
的double值并在v
x存入int型返回值
注3
。
2F19 0608 - cmpl-double v25, v6, v8
比较v6,v7和v8,v9的double值并在v25存入in
t型返回值。非数值默认为小于。如果参数为非
数值将返回-1。
比较vy和vz
注2
的double值并在v
x存入int型返回值
注3
。
3000 080A - cmpg-double v0, v8, v10
比较v8,v9和v10,v11的double值并在v0存入i