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
00040
00041
00042
00043
00044
00045
00046 #include "topcode.h"
00047 #include "isa_decode_gen.h"
00048 #include "targ_isa_bundle.h"
00049
00050 main()
00051 {
00052 ISA_Decode_Begin("ia64");
00053
00054 STATE ex_unit = Create_Unit_State("ex_unit", 0, 3);
00055 STATE integer_or_alu = Create_Inst_State("integer_or_alu", 0, 40, 1);
00056 STATE memory_or_alu = Create_Inst_State("memory_or_alu", 0, 40, 1);
00057
00058 STATE alu = Create_Inst_State("alu", 0, 37, 3);
00059 STATE integer = Create_Inst_State("integer", 0, 37, 3);
00060 STATE memory = Create_Inst_State("memory", 0, 37, 3);
00061 STATE floating = Create_Inst_State("floating", 0, 37, 4);
00062 STATE branch = Create_Inst_State("branch", 0, 37, 4);
00063 STATE lx_unit = Create_Inst_State("lx_unit", 1, 37, 4);
00064
00065 Transitions(ex_unit,
00066 ISA_EXEC_I_Unit, integer_or_alu,
00067 ISA_EXEC_M_Unit, memory_or_alu,
00068 ISA_EXEC_B_Unit, branch,
00069 ISA_EXEC_F_Unit, floating,
00070 ISA_EXEC_L_Unit, lx_unit,
00071 END_TRANSITIONS);
00072
00073 Transitions(integer_or_alu,
00074 0, integer,
00075 1, alu,
00076 END_TRANSITIONS);
00077
00078 Transitions(memory_or_alu,
00079 0, memory,
00080 1, alu,
00081 END_TRANSITIONS);
00082
00083
00084
00085 STATE alu_mm = Create_Inst_State("alu_mm", 0, 33, 3);
00086 STATE compare_c = Create_Inst_State("compare_c", 0, 12, 1);
00087 STATE compare_d = Create_Inst_State("compare_d", 0, 12, 1);
00088 STATE compare_e = Create_Inst_State("compare_e", 0, 12, 1);
00089
00090 STATE integer_alu = Create_Inst_State("integer_alu", 0, 27, 6);
00091 STATE mm_alu = Create_Inst_State("mm_alu", 0, 36, 1);
00092 STATE mm_alu_1_2 = Create_Inst_State("mm_alu_1_2", 0, 27, 7);
00093 STATE mm_alu_4 = Create_Inst_State("mm_alu_4", 0, 27, 6);
00094
00095 STATE compare_c0 = Create_Inst_State("compare_c0", 0, 33, 4);
00096 STATE compare_c1 = Create_Inst_State("compare_c1", 0, 33, 4);
00097 STATE compare_d0 = Create_Inst_State("compare_d0", 0, 33, 4);
00098 STATE compare_d1 = Create_Inst_State("compare_d1", 0, 33, 4);
00099 STATE compare_e0 = Create_Inst_State("compare_e0", 0, 33, 4);
00100 STATE compare_e1 = Create_Inst_State("compare_e1", 0, 33, 4);
00101
00102 Transitions(alu,
00103 0x8 - 8, alu_mm,
00104 0x9 - 8, Final(TOP_addl),
00105 0xc - 8, compare_c,
00106 0xd - 8, compare_d,
00107 0xe - 8, compare_e,
00108 END_TRANSITIONS);
00109
00110 Transitions(alu_mm,
00111 0, integer_alu,
00112 2, mm_alu,
00113 3, mm_alu,
00114 4, Final(TOP_adds),
00115 6, Final(TOP_addp4_i),
00116 END_TRANSITIONS);
00117
00118 Transitions(integer_alu,
00119 0, Final(TOP_add),
00120 1, Final(TOP_add_1),
00121 4, Final(TOP_sub_1),
00122 5, Final(TOP_sub),
00123 8, Final(TOP_addp4),
00124 12, Final(TOP_and),
00125 13, Final(TOP_andcm),
00126 14, Final(TOP_or),
00127 15, Final(TOP_xor),
00128 16, Final(TOP_shladd),
00129 17, Final(TOP_shladd),
00130 18, Final(TOP_shladd),
00131 19, Final(TOP_shladd),
00132 24, Final(TOP_shladdp4),
00133 25, Final(TOP_shladdp4),
00134 26, Final(TOP_shladdp4),
00135 27, Final(TOP_shladdp4),
00136 37, Final(TOP_sub_i),
00137 44, Final(TOP_and_i),
00138 45, Final(TOP_andcm_i),
00139 46, Final(TOP_or_i),
00140 47, Final(TOP_xor_i),
00141 END_TRANSITIONS);
00142
00143 Transitions(mm_alu,
00144 0, mm_alu_1_2,
00145 1, mm_alu_4,
00146 END_TRANSITIONS);
00147
00148 Transitions(mm_alu_1_2,
00149 0, Final(TOP_padd1),
00150 1, Final(TOP_padd1_sss),
00151 2, Final(TOP_padd1_uuu),
00152 3, Final(TOP_padd1_uus),
00153 4, Final(TOP_psub1),
00154 5, Final(TOP_psub1_sss),
00155 6, Final(TOP_psub1_uuu),
00156 7, Final(TOP_psub1_uus),
00157 10, Final(TOP_pavg1),
00158 11, Final(TOP_pavg1_raz),
00159 14, Final(TOP_pavgsub1),
00160 36, Final(TOP_pcmp1_eq),
00161 37, Final(TOP_pcmp1_gt),
00162 64, Final(TOP_padd2),
00163 65, Final(TOP_padd2_sss),
00164 66, Final(TOP_padd2_uuu),
00165 67, Final(TOP_padd2_uus),
00166 68, Final(TOP_psub2),
00167 69, Final(TOP_psub2_sss),
00168 70, Final(TOP_psub2_uuu),
00169 71, Final(TOP_psub2_uus),
00170 74, Final(TOP_pavg2),
00171 75, Final(TOP_pavg2_raz),
00172 78, Final(TOP_pavgsub2),
00173 80, Final(TOP_pshladd2),
00174 81, Final(TOP_pshladd2),
00175 82, Final(TOP_pshladd2),
00176 83, Final(TOP_pshladd2),
00177 88, Final(TOP_pshradd2),
00178 89, Final(TOP_pshradd2),
00179 90, Final(TOP_pshradd2),
00180 91, Final(TOP_pshradd2),
00181 100, Final(TOP_pcmp2_eq),
00182 101, Final(TOP_pcmp2_gt),
00183 END_TRANSITIONS);
00184
00185 Transitions(mm_alu_4,
00186 0, Final(TOP_padd4),
00187 4, Final(TOP_psub4),
00188 36, Final(TOP_pcmp4_eq),
00189 37, Final(TOP_pcmp4_gt),
00190 END_TRANSITIONS);
00191
00192 Transitions(compare_c,
00193 0, compare_c0,
00194 1, compare_c1,
00195 END_TRANSITIONS);
00196
00197 Transitions(compare_c0,
00198 0, Final(TOP_cmp_lt),
00199 1, Final(TOP_cmp_eq_and),
00200 2, Final(TOP_cmp4_lt),
00201 3, Final(TOP_cmp4_eq_and),
00202 4, Final(TOP_cmp_i_lt),
00203 5, Final(TOP_cmp_i_eq_and),
00204 6, Final(TOP_cmp4_i_lt),
00205 7, Final(TOP_cmp4_i_eq_and),
00206 8, Final(TOP_cmp_z1_gt_and),
00207 9, Final(TOP_cmp_z1_ge_and),
00208 10, Final(TOP_cmp4_z1_gt_and),
00209 11, Final(TOP_cmp4_z1_ge_and),
00210 12, Final(TOP_cmp_i_lt),
00211 13, Final(TOP_cmp_i_eq_and),
00212 14, Final(TOP_cmp4_i_lt),
00213 15, Final(TOP_cmp4_i_eq_and),
00214 END_TRANSITIONS);
00215
00216 Transitions(compare_c1,
00217 0, Final(TOP_cmp_lt_unc),
00218 1, Final(TOP_cmp_ne_and),
00219 2, Final(TOP_cmp4_lt_unc),
00220 3, Final(TOP_cmp4_ne_and),
00221 4, Final(TOP_cmp_i_lt_unc),
00222 5, Final(TOP_cmp_i_ne_and),
00223 6, Final(TOP_cmp4_i_lt_unc),
00224 7, Final(TOP_cmp4_i_ne_and),
00225 8, Final(TOP_cmp_z1_le_and),
00226 9, Final(TOP_cmp_z1_lt_and),
00227 10, Final(TOP_cmp4_z1_le_and),
00228 11, Final(TOP_cmp4_z1_lt_and),
00229 12, Final(TOP_cmp_i_lt_unc),
00230 13, Final(TOP_cmp_i_ne_and),
00231 14, Final(TOP_cmp4_i_lt_unc),
00232 15, Final(TOP_cmp4_i_ne_and),
00233 END_TRANSITIONS);
00234
00235 Transitions(compare_d,
00236 0, compare_d0,
00237 1, compare_d1,
00238 END_TRANSITIONS);
00239
00240 Transitions(compare_d0,
00241 0, Final(TOP_cmp_ltu),
00242 1, Final(TOP_cmp_eq_or),
00243 2, Final(TOP_cmp4_ltu),
00244 3, Final(TOP_cmp4_eq_or),
00245 4, Final(TOP_cmp_i_ltu),
00246 5, Final(TOP_cmp_i_eq_or),
00247 6, Final(TOP_cmp4_i_ltu),
00248 7, Final(TOP_cmp4_i_eq_or),
00249 8, Final(TOP_cmp_z1_gt_or),
00250 9, Final(TOP_cmp_z1_ge_or),
00251 10, Final(TOP_cmp4_z1_gt_or),
00252 11, Final(TOP_cmp4_z1_ge_or),
00253 12, Final(TOP_cmp_i_ltu),
00254 13, Final(TOP_cmp_i_eq_or),
00255 14, Final(TOP_cmp4_i_ltu),
00256 15, Final(TOP_cmp4_i_eq_or),
00257 END_TRANSITIONS);
00258
00259 Transitions(compare_d1,
00260 0, Final(TOP_cmp_ltu_unc),
00261 1, Final(TOP_cmp_ne_or),
00262 2, Final(TOP_cmp4_ltu_unc),
00263 3, Final(TOP_cmp4_ne_or),
00264 4, Final(TOP_cmp_i_ltu_unc),
00265 5, Final(TOP_cmp_i_ne_or),
00266 6, Final(TOP_cmp4_i_ltu_unc),
00267 7, Final(TOP_cmp4_i_ne_or),
00268 8, Final(TOP_cmp_z1_le_or),
00269 9, Final(TOP_cmp_z1_lt_or),
00270 10, Final(TOP_cmp4_z1_le_or),
00271 11, Final(TOP_cmp4_z1_lt_or),
00272 12, Final(TOP_cmp_i_ltu_unc),
00273 13, Final(TOP_cmp_i_ne_or),
00274 14, Final(TOP_cmp4_i_ltu_unc),
00275 15, Final(TOP_cmp4_i_ne_or),
00276 END_TRANSITIONS);
00277
00278 Transitions(compare_e,
00279 0, compare_e0,
00280 1, compare_e1,
00281 END_TRANSITIONS);
00282
00283 Transitions(compare_e0,
00284 0, Final(TOP_cmp_eq),
00285 1, Final(TOP_cmp_eq_or_andcm),
00286 2, Final(TOP_cmp4_eq),
00287 3, Final(TOP_cmp4_eq_or_andcm),
00288 4, Final(TOP_cmp_i_eq),
00289 5, Final(TOP_cmp_i_eq_or_andcm),
00290 6, Final(TOP_cmp4_i_eq),
00291 7, Final(TOP_cmp4_i_eq_or_andcm),
00292 8, Final(TOP_cmp_z1_gt_or_andcm),
00293 9, Final(TOP_cmp_z1_ge_or_andcm),
00294 10, Final(TOP_cmp4_z1_gt_or_andcm),
00295 11, Final(TOP_cmp4_z1_ge_or_andcm),
00296 12, Final(TOP_cmp_i_eq),
00297 13, Final(TOP_cmp_i_eq_or_andcm),
00298 14, Final(TOP_cmp4_i_eq),
00299 15, Final(TOP_cmp4_i_eq_or_andcm),
00300 END_TRANSITIONS);
00301
00302 Transitions(compare_e1,
00303 0, Final(TOP_cmp_eq_unc),
00304 1, Final(TOP_cmp_ne_or_andcm),
00305 2, Final(TOP_cmp4_eq_unc),
00306 3, Final(TOP_cmp4_ne_or_andcm),
00307 4, Final(TOP_cmp_i_eq_unc),
00308 5, Final(TOP_cmp_i_ne_or_andcm),
00309 6, Final(TOP_cmp4_i_eq_unc),
00310 7, Final(TOP_cmp4_i_ne_or_andcm),
00311 8, Final(TOP_cmp_z1_le_or_andcm),
00312 9, Final(TOP_cmp_z1_lt_or_andcm),
00313 10, Final(TOP_cmp4_z1_le_or_andcm),
00314 11, Final(TOP_cmp4_z1_lt_or_andcm),
00315 12, Final(TOP_cmp_i_eq_unc),
00316 13, Final(TOP_cmp_i_ne_or_andcm),
00317 14, Final(TOP_cmp4_i_eq_unc),
00318 15, Final(TOP_cmp4_i_ne_or_andcm),
00319 END_TRANSITIONS);
00320
00321
00322
00323 STATE misc = Create_Inst_State("misc", 0, 33, 3);
00324 STATE shift_test = Create_Inst_State("shift_test", 0, 33, 3);
00325 STATE movl = Create_Inst_State("movl", 0, 20, 1);
00326 STATE mpy_shift = Create_Inst_State("mpy_shift", 0, 32, 5);
00327
00328 STATE misc_0 = Create_Inst_State("misc_0", 0, 27, 6);
00329
00330 STATE move_to_br = Create_Inst_State("move_to_br", 0, 22, 1);
00331
00332 STATE tbit_tnat_0 = Create_Inst_State("tbit_tnat_0", 0, 36, 1);
00333 STATE tbit_tnat_1 = Create_Inst_State("tbit_tnat_1", 0, 36, 1);
00334 STATE extract = Create_Inst_State("extract", 0, 13, 1);
00335 STATE deposit = Create_Inst_State("deposit", 0, 26, 1);
00336
00337 STATE tbit_tnat_00 = Create_Inst_State("tbit_tnat_00", 0, 12, 2);
00338 STATE tbit_tnat_01 = Create_Inst_State("tbit_tnat_01", 0, 12, 2);
00339
00340 STATE tbit_tnat_10 = Create_Inst_State("tbit_tnat_10", 0, 12, 2);
00341 STATE tbit_tnat_11 = Create_Inst_State("tbit_tnat_11", 0, 12, 2);
00342
00343 STATE mpy_shift_2 = Create_Inst_State("mpy_shift_2", 0, 28, 4);
00344 STATE mpy_shift_6 = Create_Inst_State("mpy_shift_6", 0, 28, 4);
00345 STATE mpy_shift_8 = Create_Inst_State("mpy_shift_8", 0, 28, 4);
00346 STATE mpy_shift_10 = Create_Inst_State("mpy_shift_10", 0, 28, 4);
00347 STATE mpy_shift_12 = Create_Inst_State("mpy_shift_12", 0, 28, 4);
00348 STATE mpy_shift_14 = Create_Inst_State("mpy_shift_14", 0, 28, 4);
00349 STATE mpy_shift_16 = Create_Inst_State("mpy_shift_16", 0, 28, 4);
00350 STATE mpy_shift_18 = Create_Inst_State("mpy_shift_18", 0, 28, 4);
00351 STATE mpy_shift_20 = Create_Inst_State("mpy_shift_20", 0, 28, 4);
00352 STATE mpy_shift_24 = Create_Inst_State("mpy_shift_24", 0, 28, 4);
00353 STATE mpy_shift_28 = Create_Inst_State("mpy_shift_28", 0, 28, 4);
00354
00355 Transitions(integer,
00356 0, misc,
00357 4, Final(TOP_dep),
00358 5, shift_test,
00359 6, movl,
00360 7, mpy_shift,
00361 END_TRANSITIONS);
00362
00363 Transitions(misc,
00364 0, misc_0,
00365 1, Final(TOP_chk_s_i),
00366 2, Final(TOP_mov_t_pr_i),
00367 3, Final(TOP_mov_t_pr),
00368 7, move_to_br,
00369 END_TRANSITIONS);
00370
00371 Transitions(misc_0,
00372 0, Final(TOP_break_i),
00373 1, Final(TOP_nop_i),
00374 10, Final(TOP_mov_t_ar_i_i),
00375 16, Final(TOP_zxt1),
00376 17, Final(TOP_zxt2),
00377 18, Final(TOP_zxt4),
00378 20, Final(TOP_sxt1),
00379 21, Final(TOP_sxt2),
00380 22, Final(TOP_sxt4),
00381 24, Final(TOP_czx1_l),
00382 25, Final(TOP_czx2_l),
00383 28, Final(TOP_czx1_r),
00384 29, Final(TOP_czx2_r),
00385 42, Final(TOP_mov_t_ar_r_i),
00386 48, Final(TOP_mov_f_ip),
00387 49, Final(TOP_mov_f_br),
00388 50, Final(TOP_mov_f_ar_i),
00389 51, Final(TOP_mov_f_pr),
00390 END_TRANSITIONS);
00391
00392 Transitions(move_to_br,
00393 0, Final(TOP_mov_t_br_i),
00394 1, Final(TOP_mov_t_br_ret),
00395 END_TRANSITIONS);
00396
00397 Transitions(shift_test,
00398 0, tbit_tnat_0,
00399 1, tbit_tnat_1,
00400 2, extract,
00401 3, deposit,
00402 6, Final(TOP_shrp),
00403 7, Final(TOP_dep_i),
00404 END_TRANSITIONS);
00405
00406 Transitions(tbit_tnat_0,
00407 0, tbit_tnat_00,
00408 1, tbit_tnat_01,
00409 END_TRANSITIONS);
00410
00411 Transitions(tbit_tnat_00,
00412 0, Final(TOP_tbit_z),
00413 1, Final(TOP_tbit_z_unc),
00414 2, Final(TOP_tnat_z),
00415 3, Final(TOP_tnat_z_unc),
00416 END_TRANSITIONS);
00417
00418 Transitions(tbit_tnat_01,
00419 0, Final(TOP_tbit_z_and),
00420 1, Final(TOP_tbit_nz_and),
00421 2, Final(TOP_tnat_z_and),
00422 3, Final(TOP_tnat_nz_and),
00423 END_TRANSITIONS);
00424
00425 Transitions(tbit_tnat_1,
00426 0, tbit_tnat_10,
00427 1, tbit_tnat_11,
00428 END_TRANSITIONS);
00429
00430 Transitions(tbit_tnat_10,
00431 0, Final(TOP_tbit_z_or),
00432 1, Final(TOP_tbit_nz_or),
00433 2, Final(TOP_tnat_z_or),
00434 3, Final(TOP_tnat_nz_or),
00435 END_TRANSITIONS);
00436
00437 Transitions(tbit_tnat_11,
00438 0, Final(TOP_tbit_z_or_andcm),
00439 1, Final(TOP_tbit_nz_or_andcm),
00440 2, Final(TOP_tnat_z_or_andcm),
00441 3, Final(TOP_tnat_nz_or_andcm),
00442 END_TRANSITIONS);
00443
00444 Transitions(extract,
00445 0, Final(TOP_extr_u),
00446 1, Final(TOP_extr),
00447 END_TRANSITIONS);
00448
00449 Transitions(deposit,
00450 0, Final(TOP_dep_z),
00451 1, Final(TOP_dep_i_z),
00452 END_TRANSITIONS);
00453
00454 Transitions(movl,
00455 0, Final(TOP_movl),
00456 END_TRANSITIONS);
00457
00458 Transitions(mpy_shift,
00459 2, mpy_shift_2,
00460 6, mpy_shift_6,
00461 8, mpy_shift_8,
00462 10, mpy_shift_10,
00463 12, mpy_shift_12,
00464 14, mpy_shift_14,
00465 16, mpy_shift_16,
00466 18, mpy_shift_18,
00467 20, mpy_shift_20,
00468 24, mpy_shift_24,
00469 28, mpy_shift_28,
00470 END_TRANSITIONS);
00471
00472 Transitions(mpy_shift_2,
00473 0, Final(TOP_pshr2_u),
00474 1, Final(TOP_pmpyshr2_u),
00475 2, Final(TOP_pshr2),
00476 3, Final(TOP_pmpyshr2),
00477 4, Final(TOP_pshl2),
00478 5, Final(TOP_pmpyshr2_u),
00479 7, Final(TOP_pmpyshr2),
00480 9, Final(TOP_pmpyshr2_u),
00481 11, Final(TOP_pmpyshr2),
00482 13, Final(TOP_pmpyshr2_u),
00483 15, Final(TOP_pmpyshr2),
00484 END_TRANSITIONS);
00485
00486 Transitions(mpy_shift_6,
00487 1, Final(TOP_pshr2_i_u),
00488 3, Final(TOP_pshr2_i),
00489 9, Final(TOP_popcnt),
00490 END_TRANSITIONS);
00491
00492 Transitions(mpy_shift_8,
00493 1, Final(TOP_pmin1_u),
00494 4, Final(TOP_unpack1_h),
00495 5, Final(TOP_pmax1_u),
00496 6, Final(TOP_unpack1_l),
00497 8, Final(TOP_mix1_r),
00498 10, Final(TOP_mix1_l),
00499 11, Final(TOP_psad1),
00500 END_TRANSITIONS);
00501
00502 Transitions(mpy_shift_10,
00503 0, Final(TOP_pack2_uss),
00504 2, Final(TOP_pack2_sss),
00505 3, Final(TOP_pmin2),
00506 4, Final(TOP_unpack2_h),
00507 6, Final(TOP_unpack2_l),
00508 7, Final(TOP_pmax2),
00509 8, Final(TOP_mix2_r),
00510 10, Final(TOP_mix2_l),
00511 13, Final(TOP_pmpy2_r),
00512 15, Final(TOP_pmpy2_l),
00513 END_TRANSITIONS);
00514
00515 Transitions(mpy_shift_12,
00516 10, Final(TOP_mux1),
00517 END_TRANSITIONS);
00518
00519 Transitions(mpy_shift_14,
00520 5, Final(TOP_pshl2_i),
00521 10, Final(TOP_mux2),
00522 END_TRANSITIONS);
00523
00524 Transitions(mpy_shift_16,
00525 0, Final(TOP_pshr4_u),
00526 2, Final(TOP_pshr4),
00527 4, Final(TOP_pshl4),
00528 END_TRANSITIONS);
00529
00530 Transitions(mpy_shift_18,
00531 0, Final(TOP_shr_u),
00532 2, Final(TOP_shr),
00533 4, Final(TOP_shl),
00534 END_TRANSITIONS);
00535
00536 Transitions(mpy_shift_20,
00537 1, Final(TOP_pshr4_i_u),
00538 3, Final(TOP_pshr4_i),
00539 END_TRANSITIONS);
00540
00541 Transitions(mpy_shift_24,
00542 2, Final(TOP_pack4_sss),
00543 4, Final(TOP_unpack4_h),
00544 6, Final(TOP_unpack4_l),
00545 8, Final(TOP_mix4_r),
00546 10, Final(TOP_mix4_l),
00547 END_TRANSITIONS);
00548
00549 Transitions(mpy_shift_28,
00550 5, Final(TOP_pshl4_i),
00551 END_TRANSITIONS);
00552
00553
00554
00555 STATE sys_mem_0 = Create_Inst_State("sys_mem_0", 0, 33, 3);
00556 STATE sys_mem_1 = Create_Inst_State("sys_mem_1", 0, 33, 3);
00557 STATE int_load_store = Create_Inst_State("int_load_store", 0, 36, 1);
00558 STATE int_load_store_imm = Create_Inst_State("int_load_store_imm", 0, 30, 6);
00559 STATE fp_load_store = Create_Inst_State("fp_load_store", 0, 36, 1);
00560 STATE fp_load_store_imm = Create_Inst_State("fp_load_store_imm", 0, 30, 6);
00561
00562 STATE sys_mem_00 = Create_Inst_State("sys_mem_00", 0, 27, 6);
00563 STATE sys_mem_10 = Create_Inst_State("sys_mem_10", 0, 27, 6);
00564
00565 STATE int_load_store_0 = Create_Inst_State("int_load_store_0", 0, 27, 1);
00566 STATE int_load_store_1 = Create_Inst_State("int_load_store_1", 0, 27, 1);
00567
00568 STATE int_load_store_nobase = Create_Inst_State("int_load_store_nobase", 0, 30, 6);
00569 STATE sem_get_fr = Create_Inst_State("sem_get_fr", 0, 30, 6);
00570 STATE int_load_store_reg = Create_Inst_State("int_load_store_reg", 0, 30, 6);
00571
00572 STATE fp_load_store_0 = Create_Inst_State("fp_load_store_0", 0, 27, 1);
00573 STATE fp_load_store_1 = Create_Inst_State("fp_load_store_1", 0, 27, 1);
00574
00575 STATE fp_load_store_nobase = Create_Inst_State("fp_load_store_nobase", 0, 30, 6);
00576 STATE fp_load_pair_nobase = Create_Inst_State("fp_load_pair_nobase", 0, 30, 6);
00577 STATE fp_load_reg = Create_Inst_State("fp_load_reg", 0, 30, 6);
00578 STATE fp_load_pair_imm = Create_Inst_State("fp_load_pair_imm", 0, 30, 6);
00579
00580 Transitions(memory,
00581 0, sys_mem_0,
00582 1, sys_mem_1,
00583 4, int_load_store,
00584 5, int_load_store_imm,
00585 6, fp_load_store,
00586 7, fp_load_store_imm,
00587 END_TRANSITIONS);
00588
00589 Transitions(sys_mem_0,
00590 0, sys_mem_00,
00591 4, Final(TOP_chk_a),
00592 5, Final(TOP_chk_a),
00593 6, Final(TOP_chk_f_a),
00594 7, Final(TOP_chk_f_a),
00595 END_TRANSITIONS);
00596
00597 Transitions(sys_mem_00,
00598 0, Final(TOP_break_m),
00599 1, Final(TOP_nop_m),
00600 4, Final(TOP_sum),
00601 5, Final(TOP_rum),
00602 6, Final(TOP_ssm),
00603 7, Final(TOP_rsm),
00604 10, Final(TOP_loadrs),
00605 12, Final(TOP_flushrs),
00606 16, Final(TOP_invala),
00607 18, Final(TOP_invala_e),
00608 19, Final(TOP_invala_f_e),
00609 20, Final(TOP_sum),
00610 21, Final(TOP_rum),
00611 22, Final(TOP_ssm),
00612 23, Final(TOP_rsm),
00613 32, Final(TOP_fwb),
00614 34, Final(TOP_mf),
00615 35, Final(TOP_mf_a),
00616 36, Final(TOP_sum),
00617 37, Final(TOP_rum),
00618 38, Final(TOP_ssm),
00619 39, Final(TOP_rsm),
00620 40, Final(TOP_mov_t_ar_i_m),
00621 48, Final(TOP_srlz_d),
00622 49, Final(TOP_srlz_i),
00623 51, Final(TOP_sync_i),
00624 52, Final(TOP_sum),
00625 53, Final(TOP_rum),
00626 54, Final(TOP_ssm),
00627 55, Final(TOP_rsm),
00628 END_TRANSITIONS);
00629
00630 Transitions(sys_mem_1,
00631 0, sys_mem_10,
00632 1, Final(TOP_chk_s_m),
00633 3, Final(TOP_chk_f_s),
00634 6, Final(TOP_alloc_3),
00635 END_TRANSITIONS);
00636
00637 Transitions(sys_mem_10,
00638 0, Final(TOP_mov_t_rr),
00639 1, Final(TOP_mov_t_dbr),
00640 2, Final(TOP_mov_t_ibr),
00641 3, Final(TOP_mov_t_pkr),
00642 4, Final(TOP_mov_t_pmc),
00643 5, Final(TOP_mov_t_pmd),
00644 6, Final(TOP_mov_t_msr),
00645 9, Final(TOP_ptc_l),
00646 10, Final(TOP_ptc_g),
00647 11, Final(TOP_ptc_ga),
00648 12, Final(TOP_ptr_d),
00649 13, Final(TOP_ptr_i),
00650 14, Final(TOP_itr_d),
00651 15, Final(TOP_itr_i),
00652 16, Final(TOP_mov_f_rr),
00653 17, Final(TOP_mov_f_dbr),
00654 18, Final(TOP_mov_f_ibr),
00655 19, Final(TOP_mov_f_pkr),
00656 20, Final(TOP_mov_f_pmc),
00657 21, Final(TOP_mov_f_pmd),
00658 22, Final(TOP_mov_f_msr),
00659 23, Final(TOP_mov_f_cpuid),
00660 24, Final(TOP_probe_i_r),
00661 25, Final(TOP_probe_i_w),
00662 26, Final(TOP_thash),
00663 27, Final(TOP_ttag),
00664 30, Final(TOP_tpa),
00665 31, Final(TOP_tak),
00666 33, Final(TOP_mov_f_psrum),
00667 34, Final(TOP_mov_f_ar_m),
00668 36, Final(TOP_mov_f_cr),
00669 37, Final(TOP_mov_f_psr),
00670 41, Final(TOP_mov_t_psrum),
00671 42, Final(TOP_mov_t_ar_r_m),
00672 44, Final(TOP_mov_t_cr),
00673 45, Final(TOP_mov_t_psr),
00674 46, Final(TOP_itc_d),
00675 47, Final(TOP_itc_i),
00676 48, Final(TOP_fc),
00677 49, Final(TOP_probe_rw_fault),
00678 50, Final(TOP_probe_r_fault),
00679 51, Final(TOP_probe_w_fault),
00680 52, Final(TOP_ptc_e),
00681 56, Final(TOP_probe_r),
00682 57, Final(TOP_probe_w),
00683 END_TRANSITIONS);
00684
00685 Transitions(int_load_store,
00686 0, int_load_store_0,
00687 1, int_load_store_1,
00688 END_TRANSITIONS);
00689
00690 Transitions(int_load_store_0,
00691 0, int_load_store_nobase,
00692 1, sem_get_fr,
00693 END_TRANSITIONS);
00694
00695 Transitions(int_load_store_nobase,
00696 0, Final(TOP_ld1),
00697 1, Final(TOP_ld2),
00698 2, Final(TOP_ld4),
00699 3, Final(TOP_ld8),
00700 4, Final(TOP_ld1),
00701 5, Final(TOP_ld2),
00702 6, Final(TOP_ld4),
00703 7, Final(TOP_ld8),
00704 8, Final(TOP_ld1),
00705 9, Final(TOP_ld2),
00706 10, Final(TOP_ld4),
00707 11, Final(TOP_ld8),
00708 12, Final(TOP_ld1),
00709 13, Final(TOP_ld2),
00710 14, Final(TOP_ld4),
00711 15, Final(TOP_ld8),
00712 16, Final(TOP_ld1),
00713 17, Final(TOP_ld2),
00714 18, Final(TOP_ld4),
00715 19, Final(TOP_ld8),
00716 20, Final(TOP_ld1),
00717 21, Final(TOP_ld2),
00718 22, Final(TOP_ld4),
00719 23, Final(TOP_ld8),
00720 27, Final(TOP_ld8_fill),
00721 32, Final(TOP_ld1),
00722 33, Final(TOP_ld2),
00723 34, Final(TOP_ld4),
00724 35, Final(TOP_ld8),
00725 36, Final(TOP_ld1),
00726 37, Final(TOP_ld2),
00727 38, Final(TOP_ld4),
00728 39, Final(TOP_ld8),
00729 40, Final(TOP_ld1),
00730 41, Final(TOP_ld2),
00731 42, Final(TOP_ld4),
00732 43, Final(TOP_ld8),
00733 48, Final(TOP_st1),
00734 49, Final(TOP_st2),
00735 50, Final(TOP_st4),
00736 51, Final(TOP_st8),
00737 52, Final(TOP_st1),
00738 53, Final(TOP_st2),
00739 54, Final(TOP_st4),
00740 55, Final(TOP_st8),
00741 59, Final(TOP_st8_spill),
00742 END_TRANSITIONS);
00743
00744 Transitions(sem_get_fr,
00745 0, Final(TOP_cmpxchg1),
00746 1, Final(TOP_cmpxchg2),
00747 2, Final(TOP_cmpxchg4),
00748 3, Final(TOP_cmpxchg8),
00749 4, Final(TOP_cmpxchg1),
00750 5, Final(TOP_cmpxchg2),
00751 6, Final(TOP_cmpxchg4),
00752 7, Final(TOP_cmpxchg8),
00753 8, Final(TOP_xchg1),
00754 9, Final(TOP_xchg2),
00755 10, Final(TOP_xchg4),
00756 11, Final(TOP_xchg8),
00757 18, Final(TOP_fetchadd4),
00758 19, Final(TOP_fetchadd8),
00759 22, Final(TOP_fetchadd4),
00760 23, Final(TOP_fetchadd8),
00761 28, Final(TOP_getf_sig),
00762 29, Final(TOP_getf_exp),
00763 30, Final(TOP_getf_s),
00764 31, Final(TOP_getf_d),
00765 END_TRANSITIONS);
00766
00767 Transitions(int_load_store_1,
00768 0, int_load_store_reg,
00769 END_TRANSITIONS);
00770
00771 Transitions(int_load_store_reg,
00772 0, Final(TOP_ld1_r),
00773 1, Final(TOP_ld2_r),
00774 2, Final(TOP_ld4_r),
00775 3, Final(TOP_ld8_r),
00776 4, Final(TOP_ld1_r),
00777 5, Final(TOP_ld2_r),
00778 6, Final(TOP_ld4_r),
00779 7, Final(TOP_ld8_r),
00780 8, Final(TOP_ld1_r),
00781 9, Final(TOP_ld2_r),
00782 10, Final(TOP_ld4_r),
00783 11, Final(TOP_ld8_r),
00784 12, Final(TOP_ld1_r),
00785 13, Final(TOP_ld2_r),
00786 14, Final(TOP_ld4_r),
00787 15, Final(TOP_ld8_r),
00788 16, Final(TOP_ld1_r),
00789 17, Final(TOP_ld2_r),
00790 18, Final(TOP_ld4_r),
00791 19, Final(TOP_ld8_r),
00792 20, Final(TOP_ld1_r),
00793 21, Final(TOP_ld2_r),
00794 22, Final(TOP_ld4_r),
00795 23, Final(TOP_ld8_r),
00796 27, Final(TOP_ld8_r_fill),
00797 32, Final(TOP_ld1_r),
00798 33, Final(TOP_ld2_r),
00799 34, Final(TOP_ld4_r),
00800 35, Final(TOP_ld8_r),
00801 36, Final(TOP_ld1_r),
00802 37, Final(TOP_ld2_r),
00803 38, Final(TOP_ld4_r),
00804 39, Final(TOP_ld8_r),
00805 40, Final(TOP_ld1_r),
00806 41, Final(TOP_ld2_r),
00807 42, Final(TOP_ld4_r),
00808 43, Final(TOP_ld8_r),
00809 END_TRANSITIONS);
00810
00811 Transitions(int_load_store_imm,
00812 0, Final(TOP_ld1_i),
00813 1, Final(TOP_ld2_i),
00814 2, Final(TOP_ld4_i),
00815 3, Final(TOP_ld8_i),
00816 4, Final(TOP_ld1_i),
00817 5, Final(TOP_ld2_i),
00818 6, Final(TOP_ld4_i),
00819 7, Final(TOP_ld8_i),
00820 8, Final(TOP_ld1_i),
00821 9, Final(TOP_ld2_i),
00822 10, Final(TOP_ld4_i),
00823 11, Final(TOP_ld8_i),
00824 12, Final(TOP_ld1_i),
00825 13, Final(TOP_ld2_i),
00826 14, Final(TOP_ld4_i),
00827 15, Final(TOP_ld8_i),
00828 16, Final(TOP_ld1_i),
00829 17, Final(TOP_ld2_i),
00830 18, Final(TOP_ld4_i),
00831 19, Final(TOP_ld8_i),
00832 20, Final(TOP_ld1_i),
00833 21, Final(TOP_ld2_i),
00834 22, Final(TOP_ld4_i),
00835 23, Final(TOP_ld8_i),
00836 27, Final(TOP_ld8_i_fill),
00837 32, Final(TOP_ld1_i),
00838 33, Final(TOP_ld2_i),
00839 34, Final(TOP_ld4_i),
00840 35, Final(TOP_ld8_i),
00841 36, Final(TOP_ld1_i),
00842 37, Final(TOP_ld2_i),
00843 38, Final(TOP_ld4_i),
00844 39, Final(TOP_ld8_i),
00845 40, Final(TOP_ld1_i),
00846 41, Final(TOP_ld2_i),
00847 42, Final(TOP_ld4_i),
00848 43, Final(TOP_ld8_i),
00849 48, Final(TOP_st1_i),
00850 49, Final(TOP_st2_i),
00851 50, Final(TOP_st4_i),
00852 51, Final(TOP_st8_i),
00853 52, Final(TOP_st1_i),
00854 53, Final(TOP_st2_i),
00855 54, Final(TOP_st4_i),
00856 55, Final(TOP_st8_i),
00857 59, Final(TOP_st8_i_spill),
00858 END_TRANSITIONS);
00859
00860 Transitions(fp_load_store,
00861 0, fp_load_store_0,
00862 1, fp_load_store_1,
00863 END_TRANSITIONS);
00864
00865 Transitions(fp_load_store_0,
00866 0, fp_load_store_nobase,
00867 1, fp_load_pair_nobase,
00868 END_TRANSITIONS);
00869
00870 Transitions(fp_load_store_nobase,
00871 0, Final(TOP_ldfe),
00872 1, Final(TOP_ldf8),
00873 2, Final(TOP_ldfs),
00874 3, Final(TOP_ldfd),
00875 4, Final(TOP_ldfe),
00876 5, Final(TOP_ldf8),
00877 6, Final(TOP_ldfs),
00878 7, Final(TOP_ldfd),
00879 8, Final(TOP_ldfe),
00880 9, Final(TOP_ldf8),
00881 10, Final(TOP_ldfs),
00882 11, Final(TOP_ldfd),
00883 12, Final(TOP_ldfe),
00884 13, Final(TOP_ldf8),
00885 14, Final(TOP_ldfs),
00886 15, Final(TOP_ldfd),
00887 27, Final(TOP_ldf_fill),
00888 32, Final(TOP_ldfe),
00889 33, Final(TOP_ldf8),
00890 34, Final(TOP_ldfs),
00891 35, Final(TOP_ldfd),
00892 36, Final(TOP_ldfe),
00893 37, Final(TOP_ldf8),
00894 38, Final(TOP_ldfs),
00895 39, Final(TOP_ldfd),
00896 44, Final(TOP_lfetch),
00897 45, Final(TOP_lfetch_excl),
00898 46, Final(TOP_lfetch_fault),
00899 47, Final(TOP_lfetch_fault_excl),
00900 48, Final(TOP_stfe),
00901 49, Final(TOP_stf8),
00902 50, Final(TOP_stfs),
00903 51, Final(TOP_stfd),
00904 59, Final(TOP_stf_spill),
00905 END_TRANSITIONS);
00906
00907 Transitions(fp_load_reg,
00908 0, Final(TOP_ldfe_r),
00909 1, Final(TOP_ldf8_r),
00910 2, Final(TOP_ldfs_r),
00911 3, Final(TOP_ldfd_r),
00912 4, Final(TOP_ldfe_r),
00913 5, Final(TOP_ldf8_r),
00914 6, Final(TOP_ldfs_r),
00915 7, Final(TOP_ldfd_r),
00916 8, Final(TOP_ldfe_r),
00917 9, Final(TOP_ldf8_r),
00918 10, Final(TOP_ldfs_r),
00919 11, Final(TOP_ldfd_r),
00920 12, Final(TOP_ldfe_r),
00921 13, Final(TOP_ldf8_r),
00922 14, Final(TOP_ldfs_r),
00923 15, Final(TOP_ldfd_r),
00924 27, Final(TOP_ldf_r_fill),
00925 32, Final(TOP_ldfe_r),
00926 33, Final(TOP_ldf8_r),
00927 34, Final(TOP_ldfs_r),
00928 35, Final(TOP_ldfd_r),
00929 36, Final(TOP_ldfe_r),
00930 37, Final(TOP_ldf8_r),
00931 38, Final(TOP_ldfs_r),
00932 39, Final(TOP_ldfd_r),
00933 44, Final(TOP_lfetch_r),
00934 45, Final(TOP_lfetch_r_excl),
00935 46, Final(TOP_lfetch_r_fault),
00936 47, Final(TOP_lfetch_r_fault_excl),
00937 END_TRANSITIONS);
00938
00939 Transitions(fp_load_store_1,
00940 0, fp_load_reg,
00941 1, fp_load_pair_imm,
00942 END_TRANSITIONS);
00943
00944 Transitions(fp_load_pair_nobase,
00945 1, Final(TOP_ldfp8),
00946 2, Final(TOP_ldfps),
00947 3, Final(TOP_ldfpd),
00948 5, Final(TOP_ldfp8),
00949 6, Final(TOP_ldfps),
00950 7, Final(TOP_ldfpd),
00951 9, Final(TOP_ldfp8),
00952 10, Final(TOP_ldfps),
00953 11, Final(TOP_ldfpd),
00954 13, Final(TOP_ldfp8),
00955 14, Final(TOP_ldfps),
00956 15, Final(TOP_ldfpd),
00957 28, Final(TOP_setf_sig),
00958 29, Final(TOP_setf_exp),
00959 30, Final(TOP_setf_s),
00960 31, Final(TOP_setf_d),
00961 33, Final(TOP_ldfp8),
00962 34, Final(TOP_ldfps),
00963 35, Final(TOP_ldfpd),
00964 37, Final(TOP_ldfp8),
00965 38, Final(TOP_ldfps),
00966 39, Final(TOP_ldfpd),
00967 END_TRANSITIONS);
00968
00969 Transitions(fp_load_pair_imm,
00970 1, Final(TOP_ldfp8_i),
00971 2, Final(TOP_ldfps_i),
00972 3, Final(TOP_ldfpd_i),
00973 5, Final(TOP_ldfp8_i),
00974 6, Final(TOP_ldfps_i),
00975 7, Final(TOP_ldfpd_i),
00976 9, Final(TOP_ldfp8_i),
00977 10, Final(TOP_ldfps_i),
00978 11, Final(TOP_ldfpd_i),
00979 13, Final(TOP_ldfp8_i),
00980 14, Final(TOP_ldfps_i),
00981 15, Final(TOP_ldfpd_i),
00982 33, Final(TOP_ldfp8_i),
00983 34, Final(TOP_ldfps_i),
00984 35, Final(TOP_ldfpd_i),
00985 37, Final(TOP_ldfp8_i),
00986 38, Final(TOP_ldfps_i),
00987 39, Final(TOP_ldfpd_i),
00988 END_TRANSITIONS);
00989
00990 Transitions(fp_load_store_imm,
00991 0, Final(TOP_ldfe_i),
00992 1, Final(TOP_ldf8_i),
00993 2, Final(TOP_ldfs_i),
00994 3, Final(TOP_ldfd_i),
00995 4, Final(TOP_ldfe_i),
00996 5, Final(TOP_ldf8_i),
00997 6, Final(TOP_ldfs_i),
00998 7, Final(TOP_ldfd_i),
00999 8, Final(TOP_ldfe_i),
01000 9, Final(TOP_ldf8_i),
01001 10, Final(TOP_ldfs_i),
01002 11, Final(TOP_ldfd_i),
01003 12, Final(TOP_ldfe_i),
01004 13, Final(TOP_ldf8_i),
01005 14, Final(TOP_ldfs_i),
01006 15, Final(TOP_ldfd_i),
01007 27, Final(TOP_ldf_i_fill),
01008 32, Final(TOP_ldfe_i),
01009 33, Final(TOP_ldf8_i),
01010 34, Final(TOP_ldfs_i),
01011 35, Final(TOP_ldfd_i),
01012 36, Final(TOP_ldfe_i),
01013 37, Final(TOP_ldf8_i),
01014 38, Final(TOP_ldfs_i),
01015 39, Final(TOP_ldfd_i),
01016 44, Final(TOP_lfetch_i),
01017 45, Final(TOP_lfetch_i_excl),
01018 46, Final(TOP_lfetch_i_fault),
01019 47, Final(TOP_lfetch_i_fault_excl),
01020 48, Final(TOP_stfe_i),
01021 49, Final(TOP_stf8_i),
01022 50, Final(TOP_stfs_i),
01023 51, Final(TOP_stfd_i),
01024 59, Final(TOP_stf_i_spill),
01025 END_TRANSITIONS);
01026
01027
01028
01029 STATE fp_misc_0 = Create_Inst_State("fp_misc_0", 0, 33, 1);
01030 STATE fp_misc_1 = Create_Inst_State("fp_misc_1", 0, 33, 1);
01031 STATE fp_compare = Create_Inst_State("fp_compare", 0, 33, 1);
01032 STATE fp_class = Create_Inst_State("fp_class", 0, 12, 1);
01033 STATE fma_8 = Create_Inst_State("fma_8", 0, 36, 1);
01034 STATE fma_9 = Create_Inst_State("fma_9", 0, 36, 1);
01035 STATE fma_a = Create_Inst_State("fma_a", 0, 36, 1);
01036 STATE fma_b = Create_Inst_State("fma_b", 0, 36, 1);
01037 STATE fma_c = Create_Inst_State("fma_c", 0, 36, 1);
01038 STATE fma_d = Create_Inst_State("fma_d", 0, 36, 1);
01039 STATE fselect = Create_Inst_State("fselect", 0, 34, 3);
01040
01041 STATE fp_misc_00 = Create_Inst_State("fp_misc_00", 0, 27, 6);
01042 STATE fp_misc_01 = Create_Inst_State("fp_misc_01", 0, 36, 1);
01043
01044 STATE fp_misc_10 = Create_Inst_State("fp_misc_10", 0, 27, 6);
01045 STATE fp_misc_11 = Create_Inst_State("fp_misc_11", 0, 36, 1);
01046
01047 STATE fp_compare_0 = Create_Inst_State("fp_compare_0", 0, 36, 1);
01048 STATE fp_compare_1 = Create_Inst_State("fp_compare_1", 0, 36, 1);
01049
01050 STATE fp_compare_00 = Create_Inst_State("fp_compare_00", 0, 12, 1);
01051 STATE fp_compare_01 = Create_Inst_State("fp_compare_01", 0, 12, 1);
01052
01053 STATE fp_compare_10 = Create_Inst_State("fp_compare_10", 0, 12, 1);
01054 STATE fp_compare_11 = Create_Inst_State("fp_compare_11", 0, 12, 1);
01055
01056 Transitions(floating,
01057 0, fp_misc_0,
01058 1, fp_misc_1,
01059 4, fp_compare,
01060 5, fp_class,
01061 8, fma_8,
01062 9, fma_9,
01063 10, fma_a,
01064 11, fma_b,
01065 12, fma_c,
01066 13, fma_d,
01067 14, fselect,
01068 END_TRANSITIONS);
01069
01070 Transitions(fp_misc_0,
01071 0, fp_misc_00,
01072 1, fp_misc_01,
01073 END_TRANSITIONS);
01074
01075 Transitions(fp_misc_00,
01076 0, Final(TOP_break_f),
01077 1, Final(TOP_nop_f),
01078 4, Final(TOP_fsetc),
01079 5, Final(TOP_fclrf),
01080 8, Final(TOP_fchkf),
01081 16, Final(TOP_fmerge_s),
01082 17, Final(TOP_fmerge_ns),
01083 18, Final(TOP_fmerge_se),
01084 20, Final(TOP_fmin),
01085 21, Final(TOP_fmax),
01086 22, Final(TOP_famin),
01087 23, Final(TOP_famax),
01088 24, Final(TOP_fcvt_fx),
01089 25, Final(TOP_fcvt_fxu),
01090 26, Final(TOP_fcvt_fx_trunc),
01091 27, Final(TOP_fcvt_fxu_trunc),
01092 28, Final(TOP_fcvt_xf),
01093 40, Final(TOP_fpack),
01094 44, Final(TOP_fand),
01095 45, Final(TOP_fandcm),
01096 46, Final(TOP_for),
01097 47, Final(TOP_fxor),
01098 52, Final(TOP_fswap),
01099 53, Final(TOP_fswap_nl),
01100 54, Final(TOP_fswap_nr),
01101 57, Final(TOP_fmix_lr),
01102 58, Final(TOP_fmix_r),
01103 59, Final(TOP_fmix_l),
01104 60, Final(TOP_fsxt_r),
01105 61, Final(TOP_fsxt_l),
01106 END_TRANSITIONS);
01107
01108 Transitions(fp_misc_01,
01109 0, Final(TOP_frcpa),
01110 1, Final(TOP_frsqrta),
01111 END_TRANSITIONS);
01112
01113 Transitions(fp_misc_1,
01114 0, fp_misc_10,
01115 1, fp_misc_11,
01116 END_TRANSITIONS);
01117
01118 Transitions(fp_misc_10,
01119 16, Final(TOP_fpmerge_s),
01120 17, Final(TOP_fpmerge_ns),
01121 18, Final(TOP_fpmerge_se),
01122 20, Final(TOP_fpmin),
01123 21, Final(TOP_fpmax),
01124 22, Final(TOP_fpamin),
01125 23, Final(TOP_fpamax),
01126 24, Final(TOP_fpcvt_fx),
01127 25, Final(TOP_fpcvt_fxu),
01128 26, Final(TOP_fpcvt_fx_trunc),
01129 27, Final(TOP_fpcvt_fxu_trunc),
01130 48, Final(TOP_fpcmp_eq),
01131 49, Final(TOP_fpcmp_lt),
01132 50, Final(TOP_fpcmp_le),
01133 51, Final(TOP_fpcmp_unord),
01134 52, Final(TOP_fpcmp_neq),
01135 53, Final(TOP_fpcmp_nlt),
01136 54, Final(TOP_fpcmp_nle),
01137 55, Final(TOP_fpcmp_ord),
01138 END_TRANSITIONS);
01139
01140 Transitions(fp_misc_11,
01141 0, Final(TOP_fprcpa),
01142 1, Final(TOP_fprsqrta),
01143 END_TRANSITIONS);
01144
01145 Transitions(fp_compare,
01146 0, fp_compare_0,
01147 1, fp_compare_1,
01148 END_TRANSITIONS);
01149
01150 Transitions(fp_compare_0,
01151 0, fp_compare_00,
01152 1, fp_compare_01,
01153 END_TRANSITIONS);
01154
01155 Transitions(fp_compare_00,
01156 0, Final(TOP_fcmp_eq),
01157 1, Final(TOP_fcmp_eq_unc),
01158 END_TRANSITIONS);
01159
01160 Transitions(fp_compare_01,
01161 0, Final(TOP_fcmp_lt),
01162 1, Final(TOP_fcmp_lt_unc),
01163 END_TRANSITIONS);
01164
01165 Transitions(fp_compare_1,
01166 0, fp_compare_10,
01167 1, fp_compare_11,
01168 END_TRANSITIONS);
01169
01170 Transitions(fp_compare_10,
01171 0, Final(TOP_fcmp_le),
01172 1, Final(TOP_fcmp_le_unc),
01173 END_TRANSITIONS);
01174
01175 Transitions(fp_compare_11,
01176 0, Final(TOP_fcmp_unord),
01177 1, Final(TOP_fcmp_unord_unc),
01178 END_TRANSITIONS);
01179
01180 Transitions(fp_class,
01181 0, Final(TOP_fclass_m),
01182 1, Final(TOP_fclass_m_unc),
01183 END_TRANSITIONS);
01184
01185 Transitions(fma_8,
01186 0, Final(TOP_fma),
01187 1, Final(TOP_fma_s),
01188 END_TRANSITIONS);
01189
01190 Transitions(fma_9,
01191 0, Final(TOP_fma_d),
01192 1, Final(TOP_fpma),
01193 END_TRANSITIONS);
01194
01195 Transitions(fma_a,
01196 0, Final(TOP_fms),
01197 1, Final(TOP_fms_s),
01198 END_TRANSITIONS);
01199
01200 Transitions(fma_b,
01201 0, Final(TOP_fms_d),
01202 1, Final(TOP_fpms),
01203 END_TRANSITIONS);
01204
01205 Transitions(fma_c,
01206 0, Final(TOP_fnma),
01207 1, Final(TOP_fnma_s),
01208 END_TRANSITIONS);
01209
01210 Transitions(fma_d,
01211 0, Final(TOP_fnma_d),
01212 1, Final(TOP_fpnma),
01213 END_TRANSITIONS);
01214
01215 Transitions(fselect,
01216 0, Final(TOP_fselect),
01217 1, Final(TOP_fselect),
01218 2, Final(TOP_fselect),
01219 3, Final(TOP_fselect),
01220 4, Final(TOP_xma_l),
01221 6, Final(TOP_xma_hu),
01222 7, Final(TOP_xma_h),
01223 END_TRANSITIONS);
01224
01225
01226
01227 STATE misc_branch = Create_Inst_State("misc_branch", 0, 27, 6);
01228 STATE relative_branch = Create_Inst_State("relative_branch", 0, 6, 3);
01229 STATE indirect_predict = Create_Inst_State("indirect_predict", 0, 27, 6);
01230
01231 STATE indirect_branch = Create_Inst_State("indirect_branch", 0, 6, 3);
01232 STATE indirect_return = Create_Inst_State("indirect_return", 0, 6, 6);
01233
01234 Transitions(branch,
01235 0, misc_branch,
01236 1, Final(TOP_br_r_call),
01237 2, indirect_predict,
01238 4, relative_branch,
01239 5, Final(TOP_br_call),
01240 7, Final(TOP_brp),
01241 END_TRANSITIONS);
01242
01243 Transitions(misc_branch,
01244 0, Final(TOP_break_b),
01245 2, Final(TOP_cover),
01246 4, Final(TOP_clrrrb),
01247 5, Final(TOP_clrrrb_pr),
01248 8, Final(TOP_rfi),
01249 12, Final(TOP_bsw_0),
01250 13, Final(TOP_bsw_1),
01251 16, Final(TOP_epc),
01252 32, indirect_branch,
01253 33, indirect_return,
01254 END_TRANSITIONS);
01255
01256 Transitions(indirect_branch,
01257 0, Final(TOP_br_r_cond),
01258 1, Final(TOP_br_ia),
01259 END_TRANSITIONS);
01260
01261 Transitions(indirect_return,
01262 4, Final(TOP_br_ret),
01263 END_TRANSITIONS);
01264
01265 Transitions(indirect_predict,
01266 0, Final(TOP_nop_b),
01267 16, Final(TOP_brp_r),
01268 17, Final(TOP_brp_ret),
01269 END_TRANSITIONS);
01270
01271 Transitions(relative_branch,
01272 0, Final(TOP_br_cond),
01273 2, Final(TOP_br_wexit),
01274 3, Final(TOP_br_wtop),
01275 5, Final(TOP_br_cloop),
01276 6, Final(TOP_br_cexit),
01277 7, Final(TOP_br_ctop),
01278 END_TRANSITIONS);
01279
01280
01281
01282 STATE misc_lx = Create_Inst_State("misc_lx", 1, 27, 6);
01283
01284 Transitions(lx_unit,
01285 0, misc_lx,
01286 6, Final(TOP_movl),
01287 12, Final(TOP_brl_cond),
01288 13, Final(TOP_brl_call),
01289 END_TRANSITIONS);
01290
01291 Transitions(misc_lx,
01292 0, Final(TOP_break_x),
01293 1, Final(TOP_nop_x),
01294 END_TRANSITIONS);
01295
01296 Initial_State(ex_unit);
01297
01298 ISA_Decode_End();
01299 return 0;
01300 }