00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00039
00040
00041
00042
00043
00044
00045
00047
00048
00049
00050
00051
00052
00053 #include <stddef.h>
00054 #include "topcode.h"
00055 #include "isa_operands_gen.h"
00056
00057 main()
00058 {
00059 OPERAND_VALUE_TYPE sf, ar, ar_i, ar_m, ec, lc, cr, br, pr, fp64, int64, addl;
00060 OPERAND_VALUE_TYPE ph, dh, bwh, aclr, ldhint, sthint, lfhint,
00061 indwh, ipwh, ih, ldtype, sttype, fldtype,
00062 sem, mwh, mbtype4;
00063 OPERAND_VALUE_TYPE lit1, lit8, lit9, lit14, lit16, lit17, lit22,
00064 lit44, lit64;
00065 OPERAND_VALUE_TYPE ulit2, ulit4, ulit5, ulit6, ulit7, ulit8, ulit9, ulit21,
00066 ulit24, ulit62;
00067 OPERAND_VALUE_TYPE pcrel13, pcrel25, pcrel64;
00068 OPERAND_VALUE_TYPE pmpyshr2, fetchadd, shfadd, pshfadd, len4, len6,
00069 scmp, ucmp1, ucmp2, ucmp3, ucmp4;
00070
00071 OPERAND_USE_TYPE
00072 predicate,
00073 base,
00074 offset,
00075 postincr,
00076 target,
00077 storeval,
00078 opnd1,
00079 opnd2,
00080 maddend;
00081
00082 ISA_Operands_Begin("ia64");
00083
00084
00085
00086 ar = ISA_Reg_Opnd_Type_Create("ar", ISA_REGISTER_CLASS_application,
00087 ISA_REGISTER_SUBCLASS_UNDEFINED,
00088 64, UNSIGNED, INVALID);
00089 ar_i = ISA_Reg_Opnd_Type_Create("ar_i", ISA_REGISTER_CLASS_application,
00090 ISA_REGISTER_SUBCLASS_ar_i,
00091 64, UNSIGNED, INVALID);
00092 ar_m = ISA_Reg_Opnd_Type_Create("ar_m", ISA_REGISTER_CLASS_application,
00093 ISA_REGISTER_SUBCLASS_ar_m,
00094 64, UNSIGNED, INVALID);
00095 ec = ISA_Reg_Opnd_Type_Create("ec", ISA_REGISTER_CLASS_application,
00096 ISA_REGISTER_SUBCLASS_ec,
00097 64, UNSIGNED, INVALID);
00098 lc = ISA_Reg_Opnd_Type_Create("lc", ISA_REGISTER_CLASS_application,
00099 ISA_REGISTER_SUBCLASS_lc,
00100 64, UNSIGNED, INVALID);
00101 cr = ISA_Reg_Opnd_Type_Create("cr", ISA_REGISTER_CLASS_control,
00102 ISA_REGISTER_SUBCLASS_UNDEFINED,
00103 64, UNSIGNED, INVALID);
00104 br = ISA_Reg_Opnd_Type_Create("br", ISA_REGISTER_CLASS_branch,
00105 ISA_REGISTER_SUBCLASS_UNDEFINED,
00106 64, UNSIGNED, INVALID);
00107 pr = ISA_Reg_Opnd_Type_Create("pr", ISA_REGISTER_CLASS_predicate,
00108 ISA_REGISTER_SUBCLASS_UNDEFINED,
00109 1, UNSIGNED, INVALID);
00110 fp64 = ISA_Reg_Opnd_Type_Create("fp64", ISA_REGISTER_CLASS_float,
00111 ISA_REGISTER_SUBCLASS_UNDEFINED,
00112 64, SIGNED, INVALID);
00113 int64 = ISA_Reg_Opnd_Type_Create("int64", ISA_REGISTER_CLASS_integer,
00114 ISA_REGISTER_SUBCLASS_UNDEFINED,
00115 64, SIGNED, INVALID);
00116 addl = ISA_Reg_Opnd_Type_Create("int64", ISA_REGISTER_CLASS_integer,
00117 ISA_REGISTER_SUBCLASS_addl,
00118 64, SIGNED, INVALID);
00119
00120
00121
00122 ph = ISA_Enum_Opnd_Type_Create("ph", 8, UNSIGNED, EC_ph);
00123 dh = ISA_Enum_Opnd_Type_Create("dh", 8, UNSIGNED, EC_dh);
00124 bwh = ISA_Enum_Opnd_Type_Create("bwh", 8, UNSIGNED, EC_bwh);
00125 aclr = ISA_Enum_Opnd_Type_Create("aclr", 8, UNSIGNED, EC_aclr);
00126 ldhint = ISA_Enum_Opnd_Type_Create("ldhint", 8, UNSIGNED, EC_ldhint);
00127 sthint = ISA_Enum_Opnd_Type_Create("sthint", 8, UNSIGNED, EC_sthint);
00128 lfhint = ISA_Enum_Opnd_Type_Create("lfhint", 8, UNSIGNED, EC_lfhint);
00129 indwh = ISA_Enum_Opnd_Type_Create("indwh", 8, UNSIGNED, EC_indwh);
00130 ih = ISA_Enum_Opnd_Type_Create("ih", 8, UNSIGNED, EC_ih);
00131 ipwh = ISA_Enum_Opnd_Type_Create("ipwh", 8, UNSIGNED, EC_ipwh);
00132 ldtype = ISA_Enum_Opnd_Type_Create("ldtype", 8, UNSIGNED, EC_ldtype);
00133 sttype = ISA_Enum_Opnd_Type_Create("sttype", 8, UNSIGNED, EC_sttype);
00134 fldtype = ISA_Enum_Opnd_Type_Create("fldtype", 8, UNSIGNED, EC_fldtype);
00135 sem = ISA_Enum_Opnd_Type_Create("sem", 8, UNSIGNED, EC_sem);
00136 mwh = ISA_Enum_Opnd_Type_Create("mwh", 8, UNSIGNED, EC_mwh);
00137 mbtype4 = ISA_Enum_Opnd_Type_Create("mbtype4", 4, UNSIGNED, EC_mbtype4);
00138 sf = ISA_Enum_Opnd_Type_Create("sf", 2, UNSIGNED, EC_sf);
00139
00140
00141
00142 lit1 = ISA_Lit_Opnd_Type_Create("lit1", 1, SIGNED, LC_i1);
00143 lit8 = ISA_Lit_Opnd_Type_Create("lit8", 8, SIGNED, LC_i8);
00144 lit9 = ISA_Lit_Opnd_Type_Create("lit9", 9, SIGNED, LC_i9);
00145 lit14 = ISA_Lit_Opnd_Type_Create("lit14", 14, SIGNED, LC_i14);
00146 lit16 = ISA_Lit_Opnd_Type_Create("lit16", 16, SIGNED, LC_i16);
00147 lit17 = ISA_Lit_Opnd_Type_Create("lit17", 17, SIGNED, LC_i17);
00148 lit22 = ISA_Lit_Opnd_Type_Create("lit22", 22, SIGNED, LC_i22);
00149 lit44 = ISA_Lit_Opnd_Type_Create("lit44", 44, SIGNED, LC_i44);
00150 lit64 = ISA_Lit_Opnd_Type_Create("lit64", 64, SIGNED, LC_i64);
00151
00152 ulit2 = ISA_Lit_Opnd_Type_Create("ulit2", 2, UNSIGNED, LC_k2);
00153 ulit4 = ISA_Lit_Opnd_Type_Create("ulit4", 4, UNSIGNED, LC_k4);
00154 ulit5 = ISA_Lit_Opnd_Type_Create("ulit5", 5, UNSIGNED, LC_k5);
00155 ulit6 = ISA_Lit_Opnd_Type_Create("ulit6", 6, UNSIGNED, LC_k6);
00156 ulit7 = ISA_Lit_Opnd_Type_Create("ulit7", 7, UNSIGNED, LC_k7);
00157 ulit8 = ISA_Lit_Opnd_Type_Create("ulit8", 8, UNSIGNED, LC_k8);
00158 ulit9 = ISA_Lit_Opnd_Type_Create("ulit9", 9, UNSIGNED, LC_k9);
00159 ulit21 = ISA_Lit_Opnd_Type_Create("ulit21", 21, UNSIGNED, LC_k21);
00160 ulit24 = ISA_Lit_Opnd_Type_Create("ulit24", 24, UNSIGNED, LC_k24);
00161 ulit62 = ISA_Lit_Opnd_Type_Create("ulit62", 62, UNSIGNED, LC_k62);
00162
00163 pcrel13 = ISA_Lit_Opnd_Type_Create("pcrel13", 13, PCREL, LC_i13);
00164 pcrel25 = ISA_Lit_Opnd_Type_Create("pcrel25", 25, PCREL, LC_i25);
00165 pcrel64 = ISA_Lit_Opnd_Type_Create("pcrel64", 64, PCREL, LC_i64);
00166
00167 pmpyshr2 = ISA_Lit_Opnd_Type_Create("pmpyshr2", 5, UNSIGNED, LC_pmpyshr2);
00168 fetchadd = ISA_Lit_Opnd_Type_Create("fetchadd", 6, SIGNED, LC_fetchadd);
00169 shfadd = ISA_Lit_Opnd_Type_Create("shfadd", 3, UNSIGNED, LC_shfadd);
00170 pshfadd = ISA_Lit_Opnd_Type_Create("pshfadd", 2, UNSIGNED, LC_pshfadd);
00171 len4 = ISA_Lit_Opnd_Type_Create("len4", 5, UNSIGNED, LC_len4);
00172 len6 = ISA_Lit_Opnd_Type_Create("len6", 7, UNSIGNED, LC_len6);
00173 scmp = ISA_Lit_Opnd_Type_Create("scmp", 9, SIGNED, LC_scmp);
00174 ucmp1 = ISA_Lit_Opnd_Type_Create("ucmp1", 64, UNSIGNED, LC_ucmp1);
00175 ucmp2 = ISA_Lit_Opnd_Type_Create("ucmp2", 64, UNSIGNED, LC_ucmp2);
00176 ucmp3 = ISA_Lit_Opnd_Type_Create("ucmp3", 64, UNSIGNED, LC_ucmp3);
00177 ucmp4 = ISA_Lit_Opnd_Type_Create("ucmp4", 64, UNSIGNED, LC_ucmp4);
00178
00179
00180
00181 predicate = Create_Operand_Use("predicate");
00182 offset = Create_Operand_Use("offset");
00183 base = Create_Operand_Use("base");
00184 postincr = Create_Operand_Use("postincr");
00185 target = Create_Operand_Use("target");
00186 storeval = Create_Operand_Use("storeval");
00187 opnd1 = Create_Operand_Use("opnd1");
00188 opnd2 = Create_Operand_Use("opnd2");
00189 maddend = Create_Operand_Use("maddend");
00190
00191
00192 Instruction_Group("O_0",
00193 TOP_bsw_0, TOP_bsw_1, TOP_clrrrb,
00194 TOP_clrrrb_pr, TOP_cover, TOP_epc,
00195 TOP_flushrs, TOP_loadrs, TOP_rfi,
00196 TOP_UNDEFINED);
00197
00198
00199 Instruction_Group("O_1",
00200 TOP_fwb, TOP_invala, TOP_mf,
00201 TOP_mf_a, TOP_srlz_d, TOP_srlz_i,
00202 TOP_sync_i,
00203 TOP_UNDEFINED);
00204 Operand(0, pr, predicate);
00205
00206
00207 Instruction_Group("O_2",
00208 TOP_invala_f_e,
00209 TOP_UNDEFINED);
00210 Operand(0, pr, predicate);
00211 Operand(1, fp64);
00212
00213
00214 Instruction_Group("O_3",
00215 TOP_fc, TOP_invala_e, TOP_itc_d,
00216 TOP_itc_i, TOP_mov_t_psr, TOP_mov_t_psrum,
00217 TOP_ptc_e,
00218 TOP_UNDEFINED);
00219 Operand(0, pr, predicate);
00220 Operand(1, int64);
00221
00222
00223 Instruction_Group("O_4",
00224 TOP_mov_f_ip, TOP_mov_f_pr, TOP_mov_f_psr,
00225 TOP_mov_f_psrum,
00226 TOP_UNDEFINED);
00227 Operand(0, pr, predicate);
00228 Result(0, int64);
00229
00230
00231 Instruction_Group("O_5",
00232 TOP_fclrf,
00233 TOP_UNDEFINED);
00234 Operand(0, pr, predicate);
00235 Operand(1, sf);
00236
00237
00238 Instruction_Group("O_6",
00239 TOP_mov_t_pr_i,
00240 TOP_UNDEFINED);
00241 Operand(0, pr, predicate);
00242 Operand(1, lit44);
00243
00244
00245 Instruction_Group("O_7",
00246 TOP_br_r,
00247 TOP_UNDEFINED);
00248 Operand(0, ph);
00249 Operand(1, dh);
00250 Operand(2, br, target);
00251
00252
00253 Instruction_Group("O_8",
00254 TOP_break, TOP_break_b, TOP_break_f,
00255 TOP_break_i, TOP_break_m, TOP_nop,
00256 TOP_nop_b, TOP_nop_f, TOP_nop_i,
00257 TOP_nop_m,
00258 TOP_UNDEFINED);
00259 Operand(0, pr, predicate);
00260 Operand(1, ulit21);
00261
00262
00263 Instruction_Group("O_9",
00264 TOP_rsm, TOP_rum, TOP_ssm,
00265 TOP_sum,
00266 TOP_UNDEFINED);
00267 Operand(0, pr, predicate);
00268 Operand(1, ulit24);
00269
00270
00271 Instruction_Group("O_10",
00272 TOP_break_x, TOP_nop_x,
00273 TOP_UNDEFINED);
00274 Operand(0, pr, predicate);
00275 Operand(1, ulit62);
00276
00277
00278 Instruction_Group("O_11",
00279 TOP_mov_t_br,
00280 TOP_UNDEFINED);
00281 Operand(0, pr, predicate);
00282 Result(0, br);
00283 Operand(1, int64);
00284
00285
00286 Instruction_Group("O_12",
00287 TOP_fcvt_xf, TOP_mov_f,
00288 TOP_UNDEFINED);
00289 Operand(0, pr, predicate);
00290 Result(0, fp64);
00291 Operand(1, fp64);
00292
00293
00294 Instruction_Group("O_13",
00295 TOP_setf_d, TOP_setf_exp, TOP_setf_s,
00296 TOP_setf_sig,
00297 TOP_UNDEFINED);
00298 Operand(0, pr, predicate);
00299 Result(0, fp64);
00300 Operand(1, int64);
00301
00302
00303 Instruction_Group("O_14",
00304 TOP_ptc_g, TOP_ptc_ga, TOP_ptc_l,
00305 TOP_ptr_d, TOP_ptr_i,
00306 TOP_UNDEFINED);
00307 Operand(0, pr, predicate);
00308 Operand(1, int64);
00309 Operand(2, int64);
00310
00311
00312 Instruction_Group("O_15",
00313 TOP_mov_f_br,
00314 TOP_UNDEFINED);
00315 Operand(0, pr, predicate);
00316 Result(0, int64);
00317 Operand(1, br);
00318
00319
00320 Instruction_Group("O_16",
00321 TOP_getf_d, TOP_getf_exp, TOP_getf_s,
00322 TOP_getf_sig,
00323 TOP_UNDEFINED);
00324 Operand(0, pr, predicate);
00325 Result(0, int64);
00326 Operand(1, fp64);
00327
00328
00329 Instruction_Group("O_17",
00330 TOP_czx1_l, TOP_czx1_r, TOP_czx2_l,
00331 TOP_czx2_r, TOP_mov, TOP_popcnt,
00332 TOP_sxt1, TOP_sxt2, TOP_sxt4,
00333 TOP_tak, TOP_thash, TOP_tpa,
00334 TOP_ttag, TOP_zxt1, TOP_zxt2,
00335 TOP_zxt4,
00336 TOP_UNDEFINED);
00337 Operand(0, pr, predicate);
00338 Result(0, int64);
00339 Operand(1, int64);
00340
00341
00342 Instruction_Group("O_18",
00343 TOP_mov_t_ar_r,
00344 TOP_UNDEFINED);
00345 Operand(0, pr, predicate);
00346 Result(0, ar);
00347 Operand(1, int64);
00348
00349
00350 Instruction_Group("O_19",
00351 TOP_mov_t_cr,
00352 TOP_UNDEFINED);
00353 Operand(0, pr, predicate);
00354 Result(0, cr);
00355 Operand(1, int64);
00356
00357
00358 Instruction_Group("O_20",
00359 TOP_mov_f_ar,
00360 TOP_UNDEFINED);
00361 Operand(0, pr, predicate);
00362 Result(0, int64);
00363 Operand(1, ar);
00364
00365
00366 Instruction_Group("O_21",
00367 TOP_mov_f_cr,
00368 TOP_UNDEFINED);
00369 Operand(0, pr, predicate);
00370 Result(0, int64);
00371 Operand(1, cr);
00372
00373
00374 Instruction_Group("O_22",
00375 TOP_mov_f_cpuid, TOP_mov_f_dbr, TOP_mov_f_ibr,
00376 TOP_mov_f_msr, TOP_mov_f_pkr, TOP_mov_f_pmc,
00377 TOP_mov_f_pmd, TOP_mov_f_rr,
00378 TOP_UNDEFINED);
00379 Operand(0, pr, predicate);
00380 Result(0, int64);
00381 Operand(1, int64);
00382
00383
00384 Instruction_Group("O_23",
00385 TOP_mov_t_ar_i,
00386 TOP_UNDEFINED);
00387 Operand(0, pr, predicate);
00388 Result(0, ar);
00389 Operand(1, lit8);
00390
00391
00392 Instruction_Group("O_24",
00393 TOP_mov_t_ar_r_i,
00394 TOP_UNDEFINED);
00395 Operand(0, pr, predicate);
00396 Result(0, ar_i);
00397 Operand(1, int64);
00398
00399
00400 Instruction_Group("O_25",
00401 TOP_mov_t_ar_r_m,
00402 TOP_UNDEFINED);
00403 Operand(0, pr, predicate);
00404 Result(0, ar_m);
00405 Operand(1, int64);
00406
00407
00408 Instruction_Group("O_26",
00409 TOP_mov_t_pr,
00410 TOP_UNDEFINED);
00411 Operand(0, pr, predicate);
00412 Operand(1, int64);
00413 Operand(2, lit17);
00414
00415
00416 Instruction_Group("O_27",
00417 TOP_probe_r_fault, TOP_probe_rw_fault, TOP_probe_w_fault,
00418 TOP_UNDEFINED);
00419 Operand(0, pr, predicate);
00420 Operand(1, int64);
00421 Operand(2, ulit2);
00422
00423
00424 Instruction_Group("O_28",
00425 TOP_mov_f_ar_i,
00426 TOP_UNDEFINED);
00427 Operand(0, pr, predicate);
00428 Result(0, int64);
00429 Operand(1, ar_i);
00430
00431
00432 Instruction_Group("O_29",
00433 TOP_mov_f_ar_m,
00434 TOP_UNDEFINED);
00435 Operand(0, pr, predicate);
00436 Result(0, int64);
00437 Operand(1, ar_m);
00438
00439
00440 Instruction_Group("O_30",
00441 TOP_mov_i,
00442 TOP_UNDEFINED);
00443 Operand(0, pr, predicate);
00444 Result(0, int64);
00445 Operand(1, lit22);
00446
00447
00448 Instruction_Group("O_31",
00449 TOP_fabs, TOP_fneg, TOP_fnegabs,
00450 TOP_fpabs, TOP_fpneg, TOP_fpnegabs,
00451 TOP_UNDEFINED);
00452 Operand(0, pr, predicate);
00453 Result(0, fp64);
00454 Operand(1, fp64, opnd1);
00455
00456
00457 Instruction_Group("O_32",
00458 TOP_movl,
00459 TOP_UNDEFINED);
00460 Operand(0, pr, predicate);
00461 Result(0, int64);
00462 Operand(1, lit64);
00463 Relocatable(1);
00464
00465
00466 Instruction_Group("O_33",
00467 TOP_br_ia,
00468 TOP_UNDEFINED);
00469 Operand(0, bwh);
00470 Operand(1, ph);
00471 Operand(2, dh);
00472 Operand(3, br, target);
00473
00474
00475 Instruction_Group("O_34",
00476 TOP_br,
00477 TOP_UNDEFINED);
00478 Operand(0, ph);
00479 Operand(1, dh);
00480 Operand(2, pcrel25, target);
00481 Relocatable(2);
00482
00483
00484 Instruction_Group("O_35",
00485 TOP_brl,
00486 TOP_UNDEFINED);
00487 Operand(0, ph);
00488 Operand(1, dh);
00489 Operand(2, pcrel64, target);
00490 Relocatable(2);
00491
00492
00493 Instruction_Group("O_36",
00494 TOP_mov_t_ar_i_i,
00495 TOP_UNDEFINED);
00496 Operand(0, pr, predicate);
00497 Result(0, ar_i);
00498 Operand(1, lit8);
00499
00500
00501 Instruction_Group("O_37",
00502 TOP_mov_t_ar_i_m,
00503 TOP_UNDEFINED);
00504 Operand(0, pr, predicate);
00505 Result(0, ar_m);
00506 Operand(1, lit8);
00507
00508
00509 Instruction_Group("O_38",
00510 TOP_fmerge_ns, TOP_fmerge_s, TOP_fmerge_se,
00511 TOP_fmix_l, TOP_fmix_lr, TOP_fmix_r,
00512 TOP_fpack, TOP_fpmerge_ns, TOP_fpmerge_s,
00513 TOP_fpmerge_se, TOP_fswap, TOP_fswap_nl,
00514 TOP_fswap_nr, TOP_fsxt_l, TOP_fsxt_r,
00515 TOP_UNDEFINED);
00516 Operand(0, pr, predicate);
00517 Result(0, fp64);
00518 Operand(1, fp64);
00519 Operand(2, fp64);
00520
00521
00522 Instruction_Group("O_39",
00523 TOP_tnat_nz, TOP_tnat_nz_and, TOP_tnat_nz_or,
00524 TOP_tnat_nz_or_andcm, TOP_tnat_nz_unc, TOP_tnat_z,
00525 TOP_tnat_z_and, TOP_tnat_z_or, TOP_tnat_z_or_andcm,
00526 TOP_tnat_z_unc,
00527 TOP_UNDEFINED);
00528 Operand(0, pr, predicate);
00529 Result(0, pr);
00530 Result(1, pr);
00531 Operand(1, int64);
00532
00533
00534 Instruction_Group("O_40",
00535 TOP_add_1, TOP_mix1_l, TOP_mix1_r,
00536 TOP_mix2_l, TOP_mix2_r, TOP_mix4_l,
00537 TOP_mix4_r, TOP_pack2_sss, TOP_pack2_uss,
00538 TOP_pack4_sss, TOP_pavg1, TOP_pavg1_raz,
00539 TOP_pavg2, TOP_pavg2_raz, TOP_pavgsub1,
00540 TOP_pavgsub2, TOP_probe_r, TOP_probe_w,
00541 TOP_psad1, TOP_sub_1, TOP_unpack1_h,
00542 TOP_unpack1_l, TOP_unpack2_h, TOP_unpack2_l,
00543 TOP_unpack4_h, TOP_unpack4_l,
00544 TOP_UNDEFINED);
00545 Operand(0, pr, predicate);
00546 Result(0, int64);
00547 Operand(1, int64);
00548 Operand(2, int64);
00549
00550
00551 Instruction_Group("O_41",
00552 TOP_itr_d, TOP_itr_i, TOP_mov_t_dbr,
00553 TOP_mov_t_ibr, TOP_mov_t_msr, TOP_mov_t_pkr,
00554 TOP_mov_t_pmc, TOP_mov_t_pmd, TOP_mov_t_rr,
00555 TOP_UNDEFINED);
00556 Operand(0, pr, predicate);
00557 Operand(1, int64);
00558 Operand(2, int64);
00559
00560
00561 Instruction_Group("O_42",
00562 TOP_fcvt_fx, TOP_fcvt_fx_trunc, TOP_fcvt_fxu,
00563 TOP_fcvt_fxu_trunc, TOP_fcvt_xuf, TOP_fcvt_xuf_d,
00564 TOP_fcvt_xuf_s, TOP_fnorm, TOP_fnorm_d,
00565 TOP_fnorm_s, TOP_fpcvt_fx, TOP_fpcvt_fx_trunc,
00566 TOP_fpcvt_fxu, TOP_fpcvt_fxu_trunc,
00567 TOP_UNDEFINED);
00568 Operand(0, pr, predicate);
00569 Result(0, fp64);
00570 Operand(1, sf);
00571 Operand(2, fp64);
00572
00573
00574 Instruction_Group("O_43",
00575 TOP_brp_ret, TOP_brp_r,
00576 TOP_UNDEFINED);
00577 Operand(0, indwh);
00578 Operand(1, ih);
00579 Operand(2, br);
00580 Operand(3, pcrel13);
00581
00582
00583 Instruction_Group("O_44",
00584 TOP_probe_i_r, TOP_probe_i_w,
00585 TOP_UNDEFINED);
00586 Operand(0, pr, predicate);
00587 Result(0, int64);
00588 Operand(1, int64);
00589 Operand(2, ulit2);
00590
00591
00592 Instruction_Group("O_45",
00593 TOP_mux2,
00594 TOP_UNDEFINED);
00595 Operand(0, pr, predicate);
00596 Result(0, int64);
00597 Operand(1, int64);
00598 Operand(2, ulit8);
00599
00600
00601 Instruction_Group("O_46",
00602 TOP_alloc_3,
00603 TOP_UNDEFINED);
00604 Result(0, int64);
00605 Operand(0, ulit7);
00606 Operand(1, ulit7);
00607 Operand(2, ulit4);
00608
00609
00610 Instruction_Group("O_47",
00611 TOP_cmp4_z2_ge_and, TOP_cmp4_z2_ge_and_orcm, TOP_cmp4_z2_ge_andcm,
00612 TOP_cmp4_z2_ge_or, TOP_cmp4_z2_ge_or_andcm, TOP_cmp4_z2_ge_orcm,
00613 TOP_cmp4_z2_gt_and, TOP_cmp4_z2_gt_and_orcm, TOP_cmp4_z2_gt_andcm,
00614 TOP_cmp4_z2_gt_or, TOP_cmp4_z2_gt_or_andcm, TOP_cmp4_z2_gt_orcm,
00615 TOP_cmp4_z2_le_and, TOP_cmp4_z2_le_and_orcm, TOP_cmp4_z2_le_andcm,
00616 TOP_cmp4_z2_le_or, TOP_cmp4_z2_le_or_andcm, TOP_cmp4_z2_le_orcm,
00617 TOP_cmp4_z2_lt_and, TOP_cmp4_z2_lt_and_orcm, TOP_cmp4_z2_lt_andcm,
00618 TOP_cmp4_z2_lt_or, TOP_cmp4_z2_lt_or_andcm, TOP_cmp4_z2_lt_orcm,
00619 TOP_cmp_z2_ge_and, TOP_cmp_z2_ge_and_orcm, TOP_cmp_z2_ge_andcm,
00620 TOP_cmp_z2_ge_or, TOP_cmp_z2_ge_or_andcm, TOP_cmp_z2_ge_orcm,
00621 TOP_cmp_z2_gt_and, TOP_cmp_z2_gt_and_orcm, TOP_cmp_z2_gt_andcm,
00622 TOP_cmp_z2_gt_or, TOP_cmp_z2_gt_or_andcm, TOP_cmp_z2_gt_orcm,
00623 TOP_cmp_z2_le_and, TOP_cmp_z2_le_and_orcm, TOP_cmp_z2_le_andcm,
00624 TOP_cmp_z2_le_or, TOP_cmp_z2_le_or_andcm, TOP_cmp_z2_le_orcm,
00625 TOP_cmp_z2_lt_and, TOP_cmp_z2_lt_and_orcm, TOP_cmp_z2_lt_andcm,
00626 TOP_cmp_z2_lt_or, TOP_cmp_z2_lt_or_andcm, TOP_cmp_z2_lt_orcm,
00627 TOP_UNDEFINED);
00628 Operand(0, pr, predicate);
00629 Result(0, pr);
00630 Result(1, pr);
00631 Operand(1, int64, opnd1);
00632
00633
00634 Instruction_Group("O_48",
00635 TOP_cmp4_z1_ge_and, TOP_cmp4_z1_ge_and_orcm, TOP_cmp4_z1_ge_andcm,
00636 TOP_cmp4_z1_ge_or, TOP_cmp4_z1_ge_or_andcm, TOP_cmp4_z1_ge_orcm,
00637 TOP_cmp4_z1_gt_and, TOP_cmp4_z1_gt_and_orcm, TOP_cmp4_z1_gt_andcm,
00638 TOP_cmp4_z1_gt_or, TOP_cmp4_z1_gt_or_andcm, TOP_cmp4_z1_gt_orcm,
00639 TOP_cmp4_z1_le_and, TOP_cmp4_z1_le_and_orcm, TOP_cmp4_z1_le_andcm,
00640 TOP_cmp4_z1_le_or, TOP_cmp4_z1_le_or_andcm, TOP_cmp4_z1_le_orcm,
00641 TOP_cmp4_z1_lt_and, TOP_cmp4_z1_lt_and_orcm, TOP_cmp4_z1_lt_andcm,
00642 TOP_cmp4_z1_lt_or, TOP_cmp4_z1_lt_or_andcm, TOP_cmp4_z1_lt_orcm,
00643 TOP_cmp_z1_ge_and, TOP_cmp_z1_ge_and_orcm, TOP_cmp_z1_ge_andcm,
00644 TOP_cmp_z1_ge_or, TOP_cmp_z1_ge_or_andcm, TOP_cmp_z1_ge_orcm,
00645 TOP_cmp_z1_gt_and, TOP_cmp_z1_gt_and_orcm, TOP_cmp_z1_gt_andcm,
00646 TOP_cmp_z1_gt_or, TOP_cmp_z1_gt_or_andcm, TOP_cmp_z1_gt_orcm,
00647 TOP_cmp_z1_le_and, TOP_cmp_z1_le_and_orcm, TOP_cmp_z1_le_andcm,
00648 TOP_cmp_z1_le_or, TOP_cmp_z1_le_or_andcm, TOP_cmp_z1_le_orcm,
00649 TOP_cmp_z1_lt_and, TOP_cmp_z1_lt_and_orcm, TOP_cmp_z1_lt_andcm,
00650 TOP_cmp_z1_lt_or, TOP_cmp_z1_lt_or_andcm, TOP_cmp_z1_lt_orcm,
00651 TOP_UNDEFINED);
00652 Operand(0, pr, predicate);
00653 Result(0, pr);
00654 Result(1, pr);
00655 Operand(1, int64, opnd2);
00656
00657
00658 Instruction_Group("O_49",
00659 TOP_chk_f_s,
00660 TOP_UNDEFINED);
00661 Operand(0, pr, predicate);
00662 Operand(1, fp64);
00663 Operand(2, pcrel25, target);
00664 Relocatable(2);
00665
00666
00667 Instruction_Group("O_50",
00668 TOP_fselect,
00669 TOP_UNDEFINED);
00670 Operand(0, pr, predicate);
00671 Result(0, fp64);
00672 Operand(1, fp64);
00673 Operand(2, fp64);
00674 Operand(3, fp64);
00675
00676
00677 Instruction_Group("O_51",
00678 TOP_lfetch, TOP_lfetch_excl, TOP_lfetch_fault,
00679 TOP_lfetch_fault_excl,
00680 TOP_UNDEFINED);
00681 Operand(0, pr, predicate);
00682 Operand(1, lfhint);
00683 Operand(2, int64, base);
00684
00685
00686 Instruction_Group("O_52",
00687 TOP_chk_s, TOP_chk_s_i, TOP_chk_s_m,
00688 TOP_UNDEFINED);
00689 Operand(0, pr, predicate);
00690 Operand(1, int64);
00691 Operand(2, pcrel25, target);
00692 Relocatable(2);
00693
00694
00695 Instruction_Group("O_53",
00696 TOP_mux1,
00697 TOP_UNDEFINED);
00698 Operand(0, pr, predicate);
00699 Result(0, int64);
00700 Operand(1, int64);
00701 Operand(2, mbtype4);
00702
00703
00704 Instruction_Group("O_54",
00705 TOP_br_cloop,
00706 TOP_UNDEFINED);
00707 Result(0, lc);
00708 Operand(0, bwh);
00709 Operand(1, ph);
00710 Operand(2, dh);
00711 Operand(3, pcrel25, target);
00712 Relocatable(3);
00713 Operand(4, lc);
00714
00715
00716 Instruction_Group("O_55",
00717 TOP_br_cexit, TOP_br_ctop,
00718 TOP_UNDEFINED);
00719 Result(0, ec);
00720 Result(1, lc);
00721 Operand(0, bwh);
00722 Operand(1, ph);
00723 Operand(2, dh);
00724 Operand(3, pcrel25, target);
00725 Relocatable(3);
00726 Operand(4, ec);
00727 Operand(5, lc);
00728
00729
00730 Instruction_Group("O_56",
00731 TOP_fprsqrta, TOP_frsqrta,
00732 TOP_UNDEFINED);
00733 Operand(0, pr, predicate);
00734 Result(0, fp64);
00735 Result(1, pr);
00736 Operand(1, sf);
00737 Operand(2, fp64);
00738
00739
00740 Instruction_Group("O_57",
00741 TOP_fchkf,
00742 TOP_UNDEFINED);
00743 Operand(0, pr, predicate);
00744 Operand(1, sf);
00745 Operand(2, pcrel25, target);
00746 Relocatable(2);
00747
00748
00749 Instruction_Group("O_58",
00750 TOP_fsetc,
00751 TOP_UNDEFINED);
00752 Operand(0, pr, predicate);
00753 Operand(1, sf);
00754 Operand(2, ulit7);
00755 Operand(3, ulit7);
00756
00757
00758 Instruction_Group("O_59",
00759 TOP_brp,
00760 TOP_UNDEFINED);
00761 Operand(0, ipwh);
00762 Operand(1, ih);
00763 Operand(2, pcrel25);
00764 Relocatable(2);
00765 Operand(3, pcrel13);
00766
00767
00768 Instruction_Group("O_60",
00769 TOP_fand, TOP_fandcm, TOP_for,
00770 TOP_fxor, TOP_xmpy_h, TOP_xmpy_hu,
00771 TOP_xmpy_l, TOP_xmpy_lu,
00772 TOP_UNDEFINED);
00773 Operand(0, pr, predicate);
00774 Result(0, fp64);
00775 Operand(1, fp64, opnd1);
00776 Operand(2, fp64, opnd2);
00777
00778
00779 Instruction_Group("O_61",
00780 TOP_fclass_m, TOP_fclass_m_unc, TOP_fclass_nm,
00781 TOP_fclass_nm_unc,
00782 TOP_UNDEFINED);
00783 Operand(0, pr, predicate);
00784 Result(0, pr);
00785 Result(1, pr);
00786 Operand(1, fp64);
00787 Operand(2, ulit9);
00788
00789
00790 Instruction_Group("O_62",
00791 TOP_tbit_nz, TOP_tbit_nz_and, TOP_tbit_nz_or,
00792 TOP_tbit_nz_or_andcm, TOP_tbit_nz_unc, TOP_tbit_z,
00793 TOP_tbit_z_and, TOP_tbit_z_or, TOP_tbit_z_or_andcm,
00794 TOP_tbit_z_unc,
00795 TOP_UNDEFINED);
00796 Operand(0, pr, predicate);
00797 Result(0, pr);
00798 Result(1, pr);
00799 Operand(1, int64);
00800 Operand(2, ulit6);
00801
00802
00803 Instruction_Group("O_63",
00804 TOP_add, TOP_addp4, TOP_and,
00805 TOP_andcm, TOP_or, TOP_padd1,
00806 TOP_padd1_sss, TOP_padd1_uus, TOP_padd1_uuu,
00807 TOP_padd2, TOP_padd2_sss, TOP_padd2_uus,
00808 TOP_padd2_uuu, TOP_padd4, TOP_pcmp1_eq,
00809 TOP_pcmp1_gt, TOP_pcmp2_eq, TOP_pcmp2_gt,
00810 TOP_pcmp4_eq, TOP_pcmp4_gt, TOP_pmax1_u,
00811 TOP_pmax2, TOP_pmin1_u, TOP_pmin2,
00812 TOP_pmpy2_l, TOP_pmpy2_r, TOP_pshl2,
00813 TOP_pshl4, TOP_pshr2, TOP_pshr2_u,
00814 TOP_pshr4, TOP_pshr4_u, TOP_psub1,
00815 TOP_psub1_sss, TOP_psub1_uus, TOP_psub1_uuu,
00816 TOP_psub2, TOP_psub2_sss, TOP_psub2_uus,
00817 TOP_psub2_uuu, TOP_psub4, TOP_shl,
00818 TOP_shr, TOP_shr_u, TOP_sub,
00819 TOP_xor,
00820 TOP_UNDEFINED);
00821 Operand(0, pr, predicate);
00822 Result(0, int64);
00823 Operand(1, int64, opnd1);
00824 Operand(2, int64, opnd2);
00825
00826
00827 Instruction_Group("O_64",
00828 TOP_shrp,
00829 TOP_UNDEFINED);
00830 Operand(0, pr, predicate);
00831 Result(0, int64);
00832 Operand(1, int64);
00833 Operand(2, int64);
00834 Operand(3, ulit6);
00835
00836
00837 Instruction_Group("O_65",
00838 TOP_shladd, TOP_shladdp4,
00839 TOP_UNDEFINED);
00840 Operand(0, pr, predicate);
00841 Result(0, int64);
00842 Operand(1, int64);
00843 Operand(2, shfadd);
00844 Operand(3, int64);
00845
00846
00847 Instruction_Group("O_66",
00848 TOP_br_ret, TOP_br_r_cond,
00849 TOP_UNDEFINED);
00850 Operand(0, pr, predicate);
00851 Operand(1, bwh);
00852 Operand(2, ph);
00853 Operand(3, dh);
00854 Operand(4, br, target);
00855
00856
00857 Instruction_Group("O_67",
00858 TOP_ldf_fill,
00859 TOP_UNDEFINED);
00860 Operand(0, pr, predicate);
00861 Result(0, fp64);
00862 Operand(1, ldhint);
00863 Operand(2, int64, base);
00864
00865
00866 Instruction_Group("O_68",
00867 TOP_and_i, TOP_andcm_i, TOP_or_i,
00868 TOP_sub_i, TOP_xor_i,
00869 TOP_UNDEFINED);
00870 Operand(0, pr, predicate);
00871 Result(0, int64);
00872 Operand(1, lit8, opnd1);
00873 Operand(2, int64, opnd2);
00874
00875
00876 Instruction_Group("O_69",
00877 TOP_ld8_fill,
00878 TOP_UNDEFINED);
00879 Operand(0, pr, predicate);
00880 Result(0, int64);
00881 Operand(1, ldhint);
00882 Operand(2, int64, base);
00883
00884
00885 Instruction_Group("O_70",
00886 TOP_pshladd2, TOP_pshradd2,
00887 TOP_UNDEFINED);
00888 Operand(0, pr, predicate);
00889 Result(0, int64);
00890 Operand(1, int64);
00891 Operand(2, pshfadd);
00892 Operand(3, int64);
00893
00894
00895 Instruction_Group("O_71",
00896 TOP_dep_z, TOP_extr, TOP_extr_u,
00897 TOP_UNDEFINED);
00898 Operand(0, pr, predicate);
00899 Result(0, int64);
00900 Operand(1, int64);
00901 Operand(2, ulit6);
00902 Operand(3, len6);
00903
00904
00905 Instruction_Group("O_72",
00906 TOP_fprcpa, TOP_frcpa,
00907 TOP_UNDEFINED);
00908 Operand(0, pr, predicate);
00909 Result(0, fp64);
00910 Result(1, pr);
00911 Operand(1, sf);
00912 Operand(2, fp64);
00913 Operand(3, fp64);
00914
00915
00916 Instruction_Group("O_73",
00917 TOP_addp4_i,
00918 TOP_UNDEFINED);
00919 Operand(0, pr, predicate);
00920 Result(0, int64);
00921 Operand(1, lit14, opnd1);
00922 Operand(2, int64, opnd2);
00923
00924
00925 Instruction_Group("O_74",
00926 TOP_pshl2_i, TOP_pshl4_i, TOP_pshr2_i,
00927 TOP_pshr2_i_u, TOP_pshr4_i, TOP_pshr4_i_u,
00928 TOP_UNDEFINED);
00929 Operand(0, pr, predicate);
00930 Result(0, int64);
00931 Operand(1, int64, opnd1);
00932 Operand(2, ulit5, opnd2);
00933
00934
00935 Instruction_Group("O_75",
00936 TOP_shl_i, TOP_shr_i, TOP_shr_i_u,
00937 TOP_UNDEFINED);
00938 Operand(0, pr, predicate);
00939 Result(0, int64);
00940 Operand(1, int64, opnd1);
00941 Operand(2, ulit6, opnd2);
00942
00943
00944 Instruction_Group("O_76",
00945 TOP_pmpyshr2, TOP_pmpyshr2_u,
00946 TOP_UNDEFINED);
00947 Operand(0, pr, predicate);
00948 Result(0, int64);
00949 Operand(1, int64);
00950 Operand(2, int64);
00951 Operand(3, pmpyshr2);
00952
00953
00954 Instruction_Group("O_77",
00955 TOP_alloc,
00956 TOP_UNDEFINED);
00957 Result(0, int64);
00958 Operand(0, ulit7);
00959 Operand(1, ulit7);
00960 Operand(2, ulit7);
00961 Operand(3, ulit7);
00962
00963
00964 Instruction_Group("O_78",
00965 TOP_chk_f_a,
00966 TOP_UNDEFINED);
00967 Operand(0, pr, predicate);
00968 Operand(1, aclr);
00969 Operand(2, fp64);
00970 Operand(3, pcrel25, target);
00971 Relocatable(3);
00972
00973
00974 Instruction_Group("O_79",
00975 TOP_chk_a,
00976 TOP_UNDEFINED);
00977 Operand(0, pr, predicate);
00978 Operand(1, aclr);
00979 Operand(2, int64);
00980 Operand(3, pcrel25, target);
00981 Relocatable(3);
00982
00983
00984 Instruction_Group("O_80",
00985 TOP_adds,
00986 TOP_UNDEFINED);
00987 Operand(0, pr, predicate);
00988 Result(0, int64);
00989 Operand(1, lit14, opnd1);
00990 Relocatable(1);
00991 Operand(2, int64, opnd2);
00992
00993
00994 Instruction_Group("O_81",
00995 TOP_addl,
00996 TOP_UNDEFINED);
00997 Operand(0, pr, predicate);
00998 Result(0, int64);
00999 Operand(1, lit22, opnd1);
01000 Relocatable(1);
01001 Operand(2, addl, opnd2);
01002
01003
01004 Instruction_Group("O_82",
01005 TOP_dep_i_z,
01006 TOP_UNDEFINED);
01007 Operand(0, pr, predicate);
01008 Result(0, int64);
01009 Operand(1, lit8);
01010 Operand(2, ulit6);
01011 Operand(3, len6);
01012
01013
01014 Instruction_Group("O_83",
01015 TOP_famax, TOP_famin,
01016 TOP_UNDEFINED);
01017 Operand(0, pr, predicate);
01018 Result(0, fp64);
01019 Operand(1, sf);
01020 Operand(2, fp64, opnd1);
01021 Operand(3, fp64, opnd2);
01022
01023
01024 Instruction_Group("O_84",
01025 TOP_cmp_eq, TOP_cmp_eq_and, TOP_cmp_eq_and_orcm,
01026 TOP_cmp_eq_andcm, TOP_cmp_eq_or, TOP_cmp_eq_or_andcm,
01027 TOP_cmp_eq_orcm, TOP_cmp_eq_unc, TOP_cmp_ge,
01028 TOP_cmp_ge_and, TOP_cmp_ge_and_orcm, TOP_cmp_ge_andcm,
01029 TOP_cmp_ge_or, TOP_cmp_ge_or_andcm, TOP_cmp_ge_orcm,
01030 TOP_cmp_ge_unc, TOP_cmp_geu, TOP_cmp_geu_unc,
01031 TOP_cmp_gt, TOP_cmp_gt_and, TOP_cmp_gt_and_orcm,
01032 TOP_cmp_gt_andcm, TOP_cmp_gt_or, TOP_cmp_gt_or_andcm,
01033 TOP_cmp_gt_orcm, TOP_cmp_gt_unc, TOP_cmp_gtu,
01034 TOP_cmp_gtu_unc, TOP_cmp_le, TOP_cmp_le_and,
01035 TOP_cmp_le_and_orcm, TOP_cmp_le_andcm, TOP_cmp_le_or,
01036 TOP_cmp_le_or_andcm, TOP_cmp_le_orcm, TOP_cmp_le_unc,
01037 TOP_cmp_leu, TOP_cmp_leu_unc, TOP_cmp_lt,
01038 TOP_cmp_lt_and, TOP_cmp_lt_and_orcm, TOP_cmp_lt_andcm,
01039 TOP_cmp_lt_or, TOP_cmp_lt_or_andcm, TOP_cmp_lt_orcm,
01040 TOP_cmp_lt_unc, TOP_cmp_ltu, TOP_cmp_ltu_unc,
01041 TOP_cmp_ne, TOP_cmp_ne_and, TOP_cmp_ne_and_orcm,
01042 TOP_cmp_ne_andcm, TOP_cmp_ne_or, TOP_cmp_ne_or_andcm,
01043 TOP_cmp_ne_orcm, TOP_cmp_ne_unc, TOP_cmp4_eq,
01044 TOP_cmp4_eq_and, TOP_cmp4_eq_and_orcm, TOP_cmp4_eq_andcm,
01045 TOP_cmp4_eq_or, TOP_cmp4_eq_or_andcm, TOP_cmp4_eq_orcm,
01046 TOP_cmp4_eq_unc, TOP_cmp4_ge, TOP_cmp4_ge_and,
01047 TOP_cmp4_ge_and_orcm, TOP_cmp4_ge_andcm, TOP_cmp4_ge_or,
01048 TOP_cmp4_ge_or_andcm, TOP_cmp4_ge_orcm, TOP_cmp4_ge_unc,
01049 TOP_cmp4_geu, TOP_cmp4_geu_unc, TOP_cmp4_gt,
01050 TOP_cmp4_gt_and, TOP_cmp4_gt_and_orcm, TOP_cmp4_gt_andcm,
01051 TOP_cmp4_gt_or, TOP_cmp4_gt_or_andcm, TOP_cmp4_gt_orcm,
01052 TOP_cmp4_gt_unc, TOP_cmp4_gtu, TOP_cmp4_gtu_unc,
01053 TOP_cmp4_le, TOP_cmp4_le_and, TOP_cmp4_le_and_orcm,
01054 TOP_cmp4_le_andcm, TOP_cmp4_le_or, TOP_cmp4_le_or_andcm,
01055 TOP_cmp4_le_orcm, TOP_cmp4_le_unc, TOP_cmp4_leu,
01056 TOP_cmp4_leu_unc, TOP_cmp4_lt, TOP_cmp4_lt_and,
01057 TOP_cmp4_lt_and_orcm, TOP_cmp4_lt_andcm, TOP_cmp4_lt_or,
01058 TOP_cmp4_lt_or_andcm, TOP_cmp4_lt_orcm, TOP_cmp4_lt_unc,
01059 TOP_cmp4_ltu, TOP_cmp4_ltu_unc, TOP_cmp4_ne,
01060 TOP_cmp4_ne_and, TOP_cmp4_ne_and_orcm, TOP_cmp4_ne_andcm,
01061 TOP_cmp4_ne_or, TOP_cmp4_ne_or_andcm, TOP_cmp4_ne_orcm,
01062 TOP_cmp4_ne_unc,
01063 TOP_UNDEFINED);
01064 Operand(0, pr, predicate);
01065 Result(0, pr);
01066 Result(1, pr);
01067 Operand(1, int64, opnd1);
01068 Operand(2, int64, opnd2);
01069
01070
01071 Instruction_Group("O_85",
01072 TOP_fadd, TOP_fadd_d, TOP_fadd_s,
01073 TOP_fmax, TOP_fmin, TOP_fmpy,
01074 TOP_fmpy_d, TOP_fmpy_s, TOP_fnmpy,
01075 TOP_fnmpy_d, TOP_fnmpy_s, TOP_fpamax,
01076 TOP_fpamin, TOP_fpcmp_eq, TOP_fpcmp_ge,
01077 TOP_fpcmp_gt, TOP_fpcmp_le, TOP_fpcmp_lt,
01078 TOP_fpcmp_neq, TOP_fpcmp_nge, TOP_fpcmp_ngt,
01079 TOP_fpcmp_nle, TOP_fpcmp_nlt, TOP_fpcmp_ord,
01080 TOP_fpcmp_unord, TOP_fpmax, TOP_fpmin,
01081 TOP_fpmpy, TOP_fpnmpy, TOP_fsub,
01082 TOP_fsub_d, TOP_fsub_s,
01083 TOP_UNDEFINED);
01084 Operand(0, pr, predicate);
01085 Result(0, fp64);
01086 Operand(1, sf);
01087 Operand(2, fp64, opnd1);
01088 Operand(3, fp64, opnd2);
01089
01090
01091 Instruction_Group("O_86",
01092 TOP_lfetch_r, TOP_lfetch_r_excl, TOP_lfetch_r_fault,
01093 TOP_lfetch_r_fault_excl,
01094 TOP_UNDEFINED);
01095 Operand(0, pr, predicate);
01096 Result(0, int64);
01097 Operand(1, lfhint);
01098 Operand(2, int64, base);
01099 Operand(3, int64, postincr);
01100
01101
01102 Instruction_Group("O_87",
01103 TOP_br_r_call,
01104 TOP_UNDEFINED);
01105 Operand(0, pr, predicate);
01106 Result(0, br);
01107 Operand(1, bwh);
01108 Operand(2, ph);
01109 Operand(3, dh);
01110 Operand(4, br, target);
01111 Operand(5, ec);
01112
01113
01114 Instruction_Group("O_88",
01115 TOP_cmp4_i_eq, TOP_cmp4_i_eq_and, TOP_cmp4_i_eq_and_orcm,
01116 TOP_cmp4_i_eq_andcm, TOP_cmp4_i_eq_or, TOP_cmp4_i_eq_or_andcm,
01117 TOP_cmp4_i_eq_orcm, TOP_cmp4_i_eq_unc, TOP_cmp4_i_ge,
01118 TOP_cmp4_i_ge_unc, TOP_cmp4_i_lt, TOP_cmp4_i_lt_unc,
01119 TOP_cmp4_i_ne, TOP_cmp4_i_ne_and, TOP_cmp4_i_ne_and_orcm,
01120 TOP_cmp4_i_ne_andcm, TOP_cmp4_i_ne_or, TOP_cmp4_i_ne_or_andcm,
01121 TOP_cmp4_i_ne_orcm, TOP_cmp4_i_ne_unc, TOP_cmp_i_eq,
01122 TOP_cmp_i_eq_and, TOP_cmp_i_eq_and_orcm, TOP_cmp_i_eq_andcm,
01123 TOP_cmp_i_eq_or, TOP_cmp_i_eq_or_andcm, TOP_cmp_i_eq_orcm,
01124 TOP_cmp_i_eq_unc, TOP_cmp_i_ge, TOP_cmp_i_ge_unc,
01125 TOP_cmp_i_lt, TOP_cmp_i_lt_unc, TOP_cmp_i_ne,
01126 TOP_cmp_i_ne_and, TOP_cmp_i_ne_and_orcm, TOP_cmp_i_ne_andcm,
01127 TOP_cmp_i_ne_or, TOP_cmp_i_ne_or_andcm, TOP_cmp_i_ne_orcm,
01128 TOP_cmp_i_ne_unc,
01129 TOP_UNDEFINED);
01130 Operand(0, pr, predicate);
01131 Result(0, pr);
01132 Result(1, pr);
01133 Operand(1, lit8, opnd1);
01134 Operand(2, int64, opnd2);
01135
01136
01137 Instruction_Group("O_89",
01138 TOP_cmp4_i_gt, TOP_cmp4_i_gt_unc, TOP_cmp4_i_le,
01139 TOP_cmp4_i_le_unc, TOP_cmp_i_gt, TOP_cmp_i_gt_unc,
01140 TOP_cmp_i_le, TOP_cmp_i_le_unc,
01141 TOP_UNDEFINED);
01142 Operand(0, pr, predicate);
01143 Result(0, pr);
01144 Result(1, pr);
01145 Operand(1, scmp, opnd1);
01146 Operand(2, int64, opnd2);
01147
01148
01149 Instruction_Group("O_90",
01150 TOP_xchg1, TOP_xchg2, TOP_xchg4,
01151 TOP_xchg8,
01152 TOP_UNDEFINED);
01153 Operand(0, pr, predicate);
01154 Result(0, int64);
01155 Operand(1, ldhint);
01156 Operand(2, int64, base);
01157 Operand(3, int64);
01158
01159
01160 Instruction_Group("O_91",
01161 TOP_dep,
01162 TOP_UNDEFINED);
01163 Operand(0, pr, predicate);
01164 Result(0, int64);
01165 Operand(1, int64);
01166 Operand(2, int64);
01167 Operand(3, ulit6);
01168 Operand(4, len4);
01169
01170
01171 Instruction_Group("O_92",
01172 TOP_mov_t_br_ret, TOP_mov_t_br_i,
01173 TOP_UNDEFINED);
01174 Operand(0, pr, predicate);
01175 Result(0, br);
01176 Operand(1, mwh);
01177 Operand(2, ih);
01178 Operand(3, int64);
01179 Operand(4, pcrel13);
01180
01181
01182 Instruction_Group("O_93",
01183 TOP_br_cond,
01184 TOP_UNDEFINED);
01185 Operand(0, pr, predicate);
01186 Operand(1, bwh);
01187 Operand(2, ph);
01188 Operand(3, dh);
01189 Operand(4, pcrel25, target);
01190 Relocatable(4);
01191
01192
01193 Instruction_Group("O_94",
01194 TOP_br_wexit, TOP_br_wtop,
01195 TOP_UNDEFINED);
01196 Operand(0, pr, predicate);
01197 Result(0, ec);
01198 Operand(1, bwh);
01199 Operand(2, ph);
01200 Operand(3, dh);
01201 Operand(4, pcrel25, target);
01202 Relocatable(4);
01203 Operand(5, ec);
01204
01205
01206 Instruction_Group("O_95",
01207 TOP_brl_cond,
01208 TOP_UNDEFINED);
01209 Operand(0, pr, predicate);
01210 Operand(1, bwh);
01211 Operand(2, ph);
01212 Operand(3, dh);
01213 Operand(4, pcrel64, target);
01214 Relocatable(4);
01215
01216
01217 Instruction_Group("O_96",
01218 TOP_lfetch_i, TOP_lfetch_i_excl, TOP_lfetch_i_fault,
01219 TOP_lfetch_i_fault_excl,
01220 TOP_UNDEFINED);
01221 Operand(0, pr, predicate);
01222 Result(0, int64);
01223 Operand(1, lfhint);
01224 Operand(2, int64, base);
01225 Operand(3, lit9, postincr);
01226
01227
01228 Instruction_Group("O_97",
01229 TOP_cmp_i_geu, TOP_cmp_i_geu_unc, TOP_cmp_i_ltu,
01230 TOP_cmp_i_ltu_unc,
01231 TOP_UNDEFINED);
01232 Operand(0, pr, predicate);
01233 Result(0, pr);
01234 Result(1, pr);
01235 Operand(1, ucmp1, opnd1);
01236 Operand(2, int64, opnd2);
01237
01238
01239 Instruction_Group("O_98",
01240 TOP_cmp_i_gtu, TOP_cmp_i_gtu_unc, TOP_cmp_i_leu,
01241 TOP_cmp_i_leu_unc,
01242 TOP_UNDEFINED);
01243 Operand(0, pr, predicate);
01244 Result(0, pr);
01245 Result(1, pr);
01246 Operand(1, ucmp2, opnd1);
01247 Operand(2, int64, opnd2);
01248
01249
01250 Instruction_Group("O_99",
01251 TOP_cmp4_i_geu, TOP_cmp4_i_geu_unc, TOP_cmp4_i_ltu,
01252 TOP_cmp4_i_ltu_unc,
01253 TOP_UNDEFINED);
01254 Operand(0, pr, predicate);
01255 Result(0, pr);
01256 Result(1, pr);
01257 Operand(1, ucmp3, opnd1);
01258 Operand(2, int64, opnd2);
01259
01260
01261 Instruction_Group("O_100",
01262 TOP_cmp4_i_gtu, TOP_cmp4_i_gtu_unc, TOP_cmp4_i_leu,
01263 TOP_cmp4_i_leu_unc,
01264 TOP_UNDEFINED);
01265 Operand(0, pr, predicate);
01266 Result(0, pr);
01267 Result(1, pr);
01268 Operand(1, ucmp4, opnd1);
01269 Operand(2, int64, opnd2);
01270
01271
01272 Instruction_Group("O_101",
01273 TOP_xma_h, TOP_xma_hu, TOP_xma_l,
01274 TOP_xma_lu,
01275 TOP_UNDEFINED);
01276 Operand(0, pr, predicate);
01277 Result(0, fp64);
01278 Operand(1, fp64, opnd1);
01279 Operand(2, fp64, opnd2);
01280 Operand(3, fp64, maddend);
01281
01282
01283 Instruction_Group("O_102",
01284 TOP_dep_i,
01285 TOP_UNDEFINED);
01286 Operand(0, pr, predicate);
01287 Result(0, int64);
01288 Operand(1, lit1);
01289 Operand(2, int64);
01290 Operand(3, ulit6);
01291 Operand(4, len6);
01292
01293
01294 Instruction_Group("O_103",
01295 TOP_stf_spill, TOP_stf8, TOP_stfd,
01296 TOP_stfe, TOP_stfs,
01297 TOP_UNDEFINED);
01298 Operand(0, pr, predicate);
01299 Operand(1, sthint);
01300 Operand(2, int64, base);
01301 Operand(3, fp64, storeval);
01302
01303
01304 Instruction_Group("O_104",
01305 TOP_st8_spill,
01306 TOP_UNDEFINED);
01307 Operand(0, pr, predicate);
01308 Operand(1, sthint);
01309 Operand(2, int64, base);
01310 Operand(3, int64, storeval);
01311
01312
01313 Instruction_Group("O_105",
01314 TOP_ldf_r_fill,
01315 TOP_UNDEFINED);
01316 Operand(0, pr, predicate);
01317 Result(0, fp64);
01318 Result(1, int64);
01319 Operand(1, ldhint);
01320 Operand(2, int64, base);
01321 Operand(3, int64, postincr);
01322
01323
01324 Instruction_Group("O_106",
01325 TOP_fcmp_eq, TOP_fcmp_eq_unc, TOP_fcmp_ge,
01326 TOP_fcmp_ge_unc, TOP_fcmp_gt, TOP_fcmp_gt_unc,
01327 TOP_fcmp_le, TOP_fcmp_le_unc, TOP_fcmp_lt,
01328 TOP_fcmp_lt_unc, TOP_fcmp_neq, TOP_fcmp_neq_unc,
01329 TOP_fcmp_nge, TOP_fcmp_nge_unc, TOP_fcmp_ngt,
01330 TOP_fcmp_ngt_unc, TOP_fcmp_nle, TOP_fcmp_nle_unc,
01331 TOP_fcmp_nlt, TOP_fcmp_nlt_unc, TOP_fcmp_ord,
01332 TOP_fcmp_ord_unc, TOP_fcmp_unord, TOP_fcmp_unord_unc,
01333 TOP_UNDEFINED);
01334 Operand(0, pr, predicate);
01335 Result(0, pr);
01336 Result(1, pr);
01337 Operand(1, sf);
01338 Operand(2, fp64, opnd1);
01339 Operand(3, fp64, opnd2);
01340
01341
01342 Instruction_Group("O_107",
01343 TOP_ld8_r_fill,
01344 TOP_UNDEFINED);
01345 Operand(0, pr, predicate);
01346 Result(0, int64);
01347 Result(1, int64);
01348 Operand(1, ldhint);
01349 Operand(2, int64, base);
01350 Operand(3, int64, postincr);
01351
01352
01353 Instruction_Group("O_108",
01354 TOP_ld1, TOP_ld2, TOP_ld4,
01355 TOP_ld8,
01356 TOP_UNDEFINED);
01357 Operand(0, pr, predicate);
01358 Result(0, int64);
01359 Operand(1, ldtype);
01360 Operand(2, ldhint);
01361 Operand(3, int64, base);
01362
01363
01364 Instruction_Group("O_109",
01365 TOP_ldf8, TOP_ldfd, TOP_ldfe,
01366 TOP_ldfs,
01367 TOP_UNDEFINED);
01368 Operand(0, pr, predicate);
01369 Result(0, fp64);
01370 Operand(1, fldtype);
01371 Operand(2, ldhint);
01372 Operand(3, int64, base);
01373
01374
01375 Instruction_Group("O_110",
01376 TOP_br_call,
01377 TOP_UNDEFINED);
01378 Operand(0, pr, predicate);
01379 Result(0, br);
01380 Operand(1, bwh);
01381 Operand(2, ph);
01382 Operand(3, dh);
01383 Operand(4, pcrel25, target);
01384 Relocatable(4);
01385 Operand(5, ec);
01386
01387
01388 Instruction_Group("O_111",
01389 TOP_brl_call,
01390 TOP_UNDEFINED);
01391 Operand(0, pr, predicate);
01392 Result(0, br);
01393 Operand(1, bwh);
01394 Operand(2, ph);
01395 Operand(3, dh);
01396 Operand(4, pcrel64, target);
01397 Relocatable(4);
01398
01399
01400 Instruction_Group("O_112",
01401 TOP_ldf_i_fill,
01402 TOP_UNDEFINED);
01403 Operand(0, pr, predicate);
01404 Result(0, fp64);
01405 Result(1, int64);
01406 Operand(1, ldhint);
01407 Operand(2, int64, base);
01408 Operand(3, lit9, postincr);
01409
01410
01411 Instruction_Group("O_113",
01412 TOP_ld8_i_fill,
01413 TOP_UNDEFINED);
01414 Operand(0, pr, predicate);
01415 Result(0, int64);
01416 Result(1, int64);
01417 Operand(1, ldhint);
01418 Operand(2, int64, base);
01419 Operand(3, lit9, postincr);
01420
01421
01422 Instruction_Group("O_114",
01423 TOP_cmpxchg1, TOP_cmpxchg2, TOP_cmpxchg4,
01424 TOP_cmpxchg8,
01425 TOP_UNDEFINED);
01426 Operand(0, pr, predicate);
01427 Result(0, int64);
01428 Operand(1, sem);
01429 Operand(2, ldhint);
01430 Operand(3, int64, base);
01431 Operand(4, int64);
01432
01433
01434 Instruction_Group("O_115",
01435 TOP_fma, TOP_fma_d, TOP_fma_s,
01436 TOP_fms, TOP_fms_d, TOP_fms_s,
01437 TOP_fnma, TOP_fnma_d, TOP_fnma_s,
01438 TOP_fpma, TOP_fpms, TOP_fpnma,
01439 TOP_UNDEFINED);
01440 Operand(0, pr, predicate);
01441 Result(0, fp64);
01442 Operand(1, sf);
01443 Operand(2, fp64, opnd1);
01444 Operand(3, fp64, opnd2);
01445 Operand(4, fp64, maddend);
01446
01447
01448 Instruction_Group("O_116",
01449 TOP_ldfp8, TOP_ldfpd, TOP_ldfps,
01450 TOP_UNDEFINED);
01451 Operand(0, pr, predicate);
01452 Result(0, fp64);
01453 Result(1, fp64);
01454 Operand(1, fldtype);
01455 Operand(2, ldhint);
01456 Operand(3, int64, base);
01457
01458
01459 Instruction_Group("O_117",
01460 TOP_ldfp8_i, TOP_ldfpd_i, TOP_ldfps_i,
01461 TOP_UNDEFINED);
01462 Operand(0, pr, predicate);
01463 Result(0, fp64);
01464 Result(1, fp64);
01465 Result(2, int64);
01466 Operand(1, fldtype);
01467 Operand(2, ldhint);
01468 Operand(3, int64, base);
01469
01470
01471 Instruction_Group("O_118",
01472 TOP_st1, TOP_st2, TOP_st4,
01473 TOP_st8,
01474 TOP_UNDEFINED);
01475 Operand(0, pr, predicate);
01476 Operand(1, sttype);
01477 Operand(2, sthint);
01478 Operand(3, int64, base);
01479 Operand(4, int64, storeval);
01480
01481
01482 Instruction_Group("O_119",
01483 TOP_fetchadd4, TOP_fetchadd8,
01484 TOP_UNDEFINED);
01485 Operand(0, pr, predicate);
01486 Result(0, int64);
01487 Operand(1, sem);
01488 Operand(2, ldhint);
01489 Operand(3, int64, base);
01490 Operand(4, fetchadd);
01491
01492
01493 Instruction_Group("O_120",
01494 TOP_ld1_r, TOP_ld2_r, TOP_ld4_r,
01495 TOP_ld8_r,
01496 TOP_UNDEFINED);
01497 Operand(0, pr, predicate);
01498 Result(0, int64);
01499 Result(1, int64);
01500 Operand(1, ldtype);
01501 Operand(2, ldhint);
01502 Operand(3, int64, base);
01503 Operand(4, int64, postincr);
01504
01505
01506 Instruction_Group("O_121",
01507 TOP_stf8_i, TOP_stf_i_spill, TOP_stfd_i,
01508 TOP_stfe_i, TOP_stfs_i,
01509 TOP_UNDEFINED);
01510 Operand(0, pr, predicate);
01511 Result(0, int64);
01512 Operand(1, sthint);
01513 Operand(2, int64, base);
01514 Operand(3, fp64, storeval);
01515 Operand(4, lit9, postincr);
01516
01517
01518 Instruction_Group("O_122",
01519 TOP_st8_i_spill,
01520 TOP_UNDEFINED);
01521 Operand(0, pr, predicate);
01522 Result(0, int64);
01523 Operand(1, sthint);
01524 Operand(2, int64, base);
01525 Operand(3, int64, storeval);
01526 Operand(4, lit9, postincr);
01527
01528
01529 Instruction_Group("O_123",
01530 TOP_ldf8_r, TOP_ldfd_r, TOP_ldfe_r,
01531 TOP_ldfs_r,
01532 TOP_UNDEFINED);
01533 Operand(0, pr, predicate);
01534 Result(0, fp64);
01535 Result(1, int64);
01536 Operand(1, fldtype);
01537 Operand(2, ldhint);
01538 Operand(3, int64, base);
01539 Operand(4, int64, postincr);
01540
01541
01542 Instruction_Group("O_124",
01543 TOP_ld1_i, TOP_ld2_i, TOP_ld4_i,
01544 TOP_ld8_i,
01545 TOP_UNDEFINED);
01546 Operand(0, pr, predicate);
01547 Result(0, int64);
01548 Result(1, int64);
01549 Operand(1, ldtype);
01550 Operand(2, ldhint);
01551 Operand(3, int64, base);
01552 Operand(4, lit9, postincr);
01553
01554
01555 Instruction_Group("O_125",
01556 TOP_ldf8_i, TOP_ldfd_i, TOP_ldfe_i,
01557 TOP_ldfs_i,
01558 TOP_UNDEFINED);
01559 Operand(0, pr, predicate);
01560 Result(0, fp64);
01561 Result(1, int64);
01562 Operand(1, fldtype);
01563 Operand(2, ldhint);
01564 Operand(3, int64, base);
01565 Operand(4, lit9, postincr);
01566
01567
01568 Instruction_Group("O_126",
01569 TOP_st1_i, TOP_st2_i, TOP_st4_i,
01570 TOP_st8_i,
01571 TOP_UNDEFINED);
01572 Operand(0, pr, predicate);
01573 Result(0, int64);
01574 Operand(1, sttype);
01575 Operand(2, sthint);
01576 Operand(3, int64, base);
01577 Operand(4, int64, storeval);
01578 Operand(5, lit9, postincr);
01579
01580 Instruction_Group("O_spadjust",
01581 TOP_spadjust,
01582 TOP_UNDEFINED);
01583 Operand(0, pr, predicate);
01584 Operand(1, int64, opnd1);
01585 Operand(2, lit64, opnd2);
01586 Result(0, int64);
01587
01588
01589 Instruction_Group("O_noop_pregtn",
01590 TOP_begin_pregtn, TOP_end_pregtn,
01591 TOP_UNDEFINED);
01592 Operand(0, int64);
01593 Operand(1, lit16);
01594
01595
01596 Instruction_Group ( "O_intrncall",
01597 TOP_intrncall,
01598 TOP_UNDEFINED);
01599 Operand (0, lit64);
01600 Result (0, int64);
01601
01602
01603 Instruction_Group("O_noop_ifixup",
01604 TOP_ifixup,
01605 TOP_UNDEFINED);
01606 Result(0, int64);
01607
01608
01609 Instruction_Group("O_noop_ffixup",
01610 TOP_ffixup, TOP_dfixup,
01611 TOP_UNDEFINED);
01612 Result(0, fp64);
01613
01614
01615 Instruction_Group("O_noop",
01616 TOP_fwd_bar, TOP_bwd_bar, TOP_noop,
01617 TOP_UNDEFINED);
01618
01619
01620 Instruction_Group("O_copy_br",
01621 TOP_copy_br,
01622 TOP_UNDEFINED);
01623 Operand(0, pr);
01624 Result(0, br);
01625 Operand(1, br);
01626
01627
01628 Instruction_Group("O_asm",
01629 TOP_asm,
01630 TOP_UNDEFINED);
01631
01632
01633 Instruction_Group("O_label",
01634 TOP_label,
01635 TOP_UNDEFINED);
01636 Operand(0, pcrel64);
01637 Relocatable(0);
01638
01639 ISA_Operands_End();
01640 return 0;
01641 }