/* * libbinrec: a recompiling translator for machine code * Copyright (c) 2016 Andrew Church * * This software may be copied and redistributed under certain conditions; * see the file "COPYING" in the source code distribution for details. * NO WARRANTY is provided with this software. */ #include "tests/guest-ppc/insn/common.h" static const uint8_t input[] = { 0x10,0x22,0x20,0xFA, // ps_madd f1,f2,f3,f4 }; static const unsigned int guest_opt = 0; static const unsigned int common_opt = 0; static const bool expected_success = true; static const char expected[] = "[info] Scanning terminated at requested limit 0x3\n" " 0: LOAD_ARG r1, 0\n" " 1: LOAD_ARG r2, 1\n" " 2: GET_ALIAS r3, a3\n" " 3: GET_ALIAS r4, a4\n" " 4: GET_ALIAS r5, a5\n" " 5: VEXTRACT r6, r3, 0\n" " 6: VEXTRACT r7, r3, 1\n" " 7: VEXTRACT r8, r4, 0\n" " 8: VEXTRACT r9, r4, 1\n" " 9: VEXTRACT r10, r5, 0\n" " 10: VEXTRACT r11, r5, 1\n" " 11: SET_ALIAS a7, r6\n" " 12: SET_ALIAS a8, r8\n" " 13: BITCAST r12, r8\n" " 14: BITCAST r13, r6\n" " 15: BFEXT r14, r12, 0, 52\n" " 16: GOTO_IF_Z r14, L1\n" " 17: BFEXT r15, r13, 52, 11\n" " 18: BFEXT r16, r12, 52, 11\n" " 19: SEQI r17, r15, 2047\n" " 20: GOTO_IF_NZ r17, L1\n" " 21: SEQI r18, r16, 2047\n" " 22: GOTO_IF_NZ r18, L1\n" " 23: GOTO_IF_NZ r16, L2\n" " 24: CLZ r19, r14\n" " 25: ADDI r20, r19, -11\n" " 26: SUB r21, r15, r20\n" " 27: SGTSI r22, r21, 0\n" " 28: GOTO_IF_Z r22, L1\n" " 29: LOAD_IMM r23, 0x8000000000000000\n" " 30: AND r24, r12, r23\n" " 31: SLL r25, r14, r20\n" " 32: BFINS r26, r13, r21, 52, 11\n" " 33: OR r27, r24, r25\n" " 34: BITCAST r28, r26\n" " 35: BITCAST r29, r27\n" " 36: SET_ALIAS a7, r28\n" " 37: SET_ALIAS a8, r29\n" " 38: LABEL L2\n" " 39: GET_ALIAS r30, a8\n" " 40: BITCAST r31, r30\n" " 41: ANDI r32, r31, -134217728\n" " 42: ANDI r33, r31, 134217728\n" " 43: ADD r34, r32, r33\n" " 44: BITCAST r35, r34\n" " 45: SET_ALIAS a8, r35\n" " 46: BFEXT r36, r34, 52, 11\n" " 47: SEQI r37, r36, 2047\n" " 48: GOTO_IF_Z r37, L1\n" " 49: LOAD_IMM r38, 0x10000000000000\n" " 50: SUB r39, r34, r38\n" " 51: BITCAST r40, r39\n" " 52: SET_ALIAS a8, r40\n" " 53: BFEXT r41, r13, 52, 11\n" " 54: GOTO_IF_Z r41, L3\n" " 55: SGTUI r42, r41, 2045\n" " 56: GOTO_IF_NZ r42, L1\n" " 57: ADD r43, r13, r38\n" " 58: BITCAST r44, r43\n" " 59: SET_ALIAS a7, r44\n" " 60: GOTO L1\n" " 61: LABEL L3\n" " 62: SLLI r45, r13, 1\n" " 63: BFINS r46, r13, r45, 0, 63\n" " 64: BITCAST r47, r46\n" " 65: SET_ALIAS a7, r47\n" " 66: LABEL L1\n" " 67: GET_ALIAS r48, a7\n" " 68: GET_ALIAS r49, a8\n" " 69: GET_ALIAS r50, a2\n" " 70: FMADD r51, r48, r49, r10\n" " 71: FGETSTATE r52\n" " 72: FTESTEXC r53, r52, INVALID\n" " 73: LOAD_IMM r54, 0.0\n" " 74: FCMP r55, r48, r54, NUN\n" " 75: FCMP r56, r49, r54, UN\n" " 76: FCMP r57, r10, r54, UN\n" " 77: AND r58, r55, r56\n" " 78: AND r59, r58, r57\n" " 79: BITCAST r60, r10\n" " 80: LOAD_IMM r61, 0x8000000000000\n" " 81: OR r62, r60, r61\n" " 82: BITCAST r63, r62\n" " 83: SELECT r64, r63, r51, r59\n" " 84: FCVT r65, r64\n" " 85: SET_ALIAS a9, r65\n" " 86: GET_ALIAS r66, a6\n" " 87: BFEXT r67, r66, 0, 2\n" " 88: GOTO_IF_NZ r67, L4\n" " 89: BITCAST r68, r64\n" " 90: BFEXT r69, r68, 52, 11\n" " 91: ZCAST r70, r69\n" " 92: ADDI r71, r70, -874\n" " 93: SLTUI r72, r71, 277\n" " 94: GOTO_IF_Z r72, L4\n" " 95: BFEXT r73, r68, 0, 52\n" " 96: ADDI r74, r70, -862\n" " 97: SLTUI r75, r70, 897\n" " 98: LOAD_IMM r76, 35\n" " 99: SELECT r77, r74, r76, r75\n" " 100: SLL r78, r73, r77\n" " 101: LOAD_IMM r79, 0x8000000000000000\n" " 102: SEQ r80, r78, r79\n" " 103: GOTO_IF_Z r80, L4\n" " 104: FGETSTATE r81\n" " 105: FCLEAREXC r82, r81\n" " 106: FSETROUND r83, r82, TRUNC\n" " 107: FSETSTATE r83\n" " 108: FMADD r84, r48, r49, r10\n" " 109: FGETSTATE r85\n" " 110: FSETSTATE r81\n" " 111: BITCAST r86, r84\n" " 112: FTESTEXC r87, r85, INEXACT\n" " 113: GOTO_IF_Z r87, L4\n" " 114: BFEXT r88, r86, 0, 52\n" " 115: SEQ r89, r88, r73\n" " 116: GOTO_IF_NZ r89, L5\n" " 117: ADDI r90, r68, -1\n" " 118: BITCAST r91, r90\n" " 119: FCVT r92, r91\n" " 120: SET_ALIAS a9, r92\n" " 121: GOTO L4\n" " 122: LABEL L5\n" " 123: ADDI r93, r68, 1\n" " 124: BITCAST r94, r93\n" " 125: FCVT r95, r94\n" " 126: SET_ALIAS a9, r95\n" " 127: LABEL L4\n" " 128: GET_ALIAS r96, a9\n" " 129: LOAD_IMM r97, 0x1000000\n" " 130: BITCAST r98, r96\n" " 131: SLLI r99, r98, 1\n" " 132: SEQ r100, r99, r97\n" " 133: GOTO_IF_Z r100, L6\n" " 134: FGETSTATE r101\n" " 135: FSETROUND r102, r101, TRUNC\n" " 136: FSETSTATE r102\n" " 137: FMADD r103, r48, r49, r10\n" " 138: FCVT r104, r103\n" " 139: FGETSTATE r105\n" " 140: FCOPYROUND r106, r105, r101\n" " 141: FSETSTATE r106\n" " 142: LABEL L6\n" " 143: FGETSTATE r107\n" " 144: FCLEAREXC r108, r107\n" " 145: FSETSTATE r108\n" " 146: FTESTEXC r109, r107, INVALID\n" " 147: GOTO_IF_Z r109, L8\n" " 148: BITCAST r110, r48\n" " 149: SLLI r111, r110, 13\n" " 150: BFEXT r112, r110, 51, 12\n" " 151: SEQI r113, r112, 4094\n" " 152: GOTO_IF_Z r113, L10\n" " 153: GOTO_IF_NZ r111, L9\n" " 154: LABEL L10\n" " 155: BITCAST r114, r49\n" " 156: SLLI r115, r114, 13\n" " 157: BFEXT r116, r114, 51, 12\n" " 158: SEQI r117, r116, 4094\n" " 159: GOTO_IF_Z r117, L11\n" " 160: GOTO_IF_NZ r115, L9\n" " 161: LABEL L11\n" " 162: BITCAST r118, r10\n" " 163: SLLI r119, r118, 13\n" " 164: BFEXT r120, r118, 51, 12\n" " 165: SEQI r121, r120, 4094\n" " 166: GOTO_IF_Z r121, L13\n" " 167: GOTO_IF_NZ r119, L12\n" " 168: LABEL L13\n" " 169: BITCAST r122, r48\n" " 170: BITCAST r123, r49\n" " 171: SLLI r124, r122, 1\n" " 172: SLLI r125, r123, 1\n" " 173: LOAD_IMM r126, 0xFFE0000000000000\n" " 174: SEQ r127, r124, r126\n" " 175: GOTO_IF_Z r127, L14\n" " 176: GOTO_IF_Z r125, L15\n" " 177: GOTO L16\n" " 178: LABEL L14\n" " 179: GOTO_IF_NZ r124, L16\n" " 180: LABEL L15\n" " 181: NOT r128, r66\n" " 182: ORI r129, r66, 1048576\n" " 183: ANDI r130, r128, 1048576\n" " 184: SET_ALIAS a6, r129\n" " 185: GOTO_IF_Z r130, L17\n" " 186: ORI r131, r129, -2147483648\n" " 187: SET_ALIAS a6, r131\n" " 188: LABEL L17\n" " 189: GOTO L18\n" " 190: LABEL L16\n" " 191: NOT r132, r66\n" " 192: ORI r133, r66, 8388608\n" " 193: ANDI r134, r132, 8388608\n" " 194: SET_ALIAS a6, r133\n" " 195: GOTO_IF_Z r134, L19\n" " 196: ORI r135, r133, -2147483648\n" " 197: SET_ALIAS a6, r135\n" " 198: LABEL L19\n" " 199: LABEL L18\n" " 200: ANDI r136, r66, 128\n" " 201: GOTO_IF_Z r136, L20\n" " 202: GET_ALIAS r137, a6\n" " 203: BFEXT r138, r137, 12, 7\n" " 204: ANDI r139, r138, 31\n" " 205: GET_ALIAS r140, a6\n" " 206: BFINS r141, r140, r139, 12, 7\n" " 207: SET_ALIAS a6, r141\n" " 208: GOTO L7\n" " 209: LABEL L20\n" " 210: LOAD_IMM r142, nan(0x400000)\n" " 211: FCVT r143, r142\n" " 212: VBROADCAST r144, r143\n" " 213: SET_ALIAS a2, r144\n" " 214: LOAD_IMM r145, 17\n" " 215: GET_ALIAS r146, a6\n" " 216: BFINS r147, r146, r145, 12, 7\n" " 217: SET_ALIAS a6, r147\n" " 218: GOTO L7\n" " 219: LABEL L12\n" " 220: FMUL r148, r48, r49\n" " 221: FGETSTATE r149\n" " 222: FSETSTATE r108\n" " 223: FTESTEXC r150, r149, INVALID\n" " 224: GOTO_IF_Z r150, L9\n" " 225: NOT r151, r66\n" " 226: ORI r152, r66, 17825792\n" " 227: ANDI r153, r151, 17825792\n" " 228: SET_ALIAS a6, r152\n" " 229: GOTO_IF_Z r153, L21\n" " 230: ORI r154, r152, -2147483648\n" " 231: SET_ALIAS a6, r154\n" " 232: LABEL L21\n" " 233: GOTO L22\n" " 234: LABEL L9\n" " 235: NOT r155, r66\n" " 236: ORI r156, r66, 16777216\n" " 237: ANDI r157, r155, 16777216\n" " 238: SET_ALIAS a6, r156\n" " 239: GOTO_IF_Z r157, L23\n" " 240: ORI r158, r156, -2147483648\n" " 241: SET_ALIAS a6, r158\n" " 242: LABEL L23\n" " 243: LABEL L22\n" " 244: ANDI r159, r66, 128\n" " 245: GOTO_IF_Z r159, L8\n" " 246: GET_ALIAS r160, a6\n" " 247: BFEXT r161, r160, 12, 7\n" " 248: ANDI r162, r161, 31\n" " 249: GET_ALIAS r163, a6\n" " 250: BFINS r164, r163, r162, 12, 7\n" " 251: SET_ALIAS a6, r164\n" " 252: GOTO L7\n" " 253: LABEL L8\n" " 254: FCVT r165, r96\n" " 255: VBROADCAST r166, r165\n" " 256: SET_ALIAS a2, r166\n" " 257: BITCAST r167, r96\n" " 258: SGTUI r168, r167, 0\n" " 259: SRLI r169, r167, 31\n" " 260: BFEXT r173, r167, 23, 8\n" " 261: SEQI r170, r173, 0\n" " 262: SEQI r171, r173, 255\n" " 263: SLLI r174, r167, 9\n" " 264: SEQI r172, r174, 0\n" " 265: AND r175, r170, r172\n" " 266: XORI r176, r172, 1\n" " 267: AND r177, r171, r176\n" " 268: AND r178, r170, r168\n" " 269: OR r179, r178, r177\n" " 270: OR r180, r175, r177\n" " 271: XORI r181, r180, 1\n" " 272: XORI r182, r169, 1\n" " 273: AND r183, r169, r181\n" " 274: AND r184, r182, r181\n" " 275: SLLI r185, r179, 4\n" " 276: SLLI r186, r183, 3\n" " 277: SLLI r187, r184, 2\n" " 278: SLLI r188, r175, 1\n" " 279: OR r189, r185, r186\n" " 280: OR r190, r187, r188\n" " 281: OR r191, r189, r171\n" " 282: OR r192, r191, r190\n" " 283: FTESTEXC r193, r107, INEXACT\n" " 284: SLLI r194, r193, 5\n" " 285: OR r195, r192, r194\n" " 286: GET_ALIAS r196, a6\n" " 287: BFINS r197, r196, r195, 12, 7\n" " 288: SET_ALIAS a6, r197\n" " 289: GOTO_IF_Z r193, L24\n" " 290: GET_ALIAS r198, a6\n" " 291: NOT r199, r198\n" " 292: ORI r200, r198, 33554432\n" " 293: ANDI r201, r199, 33554432\n" " 294: SET_ALIAS a6, r200\n" " 295: GOTO_IF_Z r201, L25\n" " 296: ORI r202, r200, -2147483648\n" " 297: SET_ALIAS a6, r202\n" " 298: LABEL L25\n" " 299: LABEL L24\n" " 300: FTESTEXC r203, r107, OVERFLOW\n" " 301: GOTO_IF_Z r203, L26\n" " 302: GET_ALIAS r204, a6\n" " 303: NOT r205, r204\n" " 304: ORI r206, r204, 268435456\n" " 305: ANDI r207, r205, 268435456\n" " 306: SET_ALIAS a6, r206\n" " 307: GOTO_IF_Z r207, L27\n" " 308: ORI r208, r206, -2147483648\n" " 309: SET_ALIAS a6, r208\n" " 310: LABEL L27\n" " 311: LABEL L26\n" " 312: FTESTEXC r209, r107, UNDERFLOW\n" " 313: GOTO_IF_Z r209, L7\n" " 314: GET_ALIAS r210, a6\n" " 315: NOT r211, r210\n" " 316: ORI r212, r210, 134217728\n" " 317: ANDI r213, r211, 134217728\n" " 318: SET_ALIAS a6, r212\n" " 319: GOTO_IF_Z r213, L28\n" " 320: ORI r214, r212, -2147483648\n" " 321: SET_ALIAS a6, r214\n" " 322: LABEL L28\n" " 323: LABEL L7\n" " 324: GET_ALIAS r215, a2\n" " 325: VEXTRACT r216, r215, 0\n" " 326: GET_ALIAS r217, a6\n" " 327: BFEXT r218, r217, 12, 7\n" " 328: FMADD r219, r7, r9, r11\n" " 329: FGETSTATE r220\n" " 330: FTESTEXC r221, r220, INVALID\n" " 331: LOAD_IMM r222, 0.0\n" " 332: FCMP r223, r7, r222, NUN\n" " 333: FCMP r224, r9, r222, UN\n" " 334: FCMP r225, r11, r222, UN\n" " 335: AND r226, r223, r224\n" " 336: AND r227, r226, r225\n" " 337: BITCAST r228, r11\n" " 338: LOAD_IMM r229, 0x8000000000000\n" " 339: OR r230, r228, r229\n" " 340: BITCAST r231, r230\n" " 341: SELECT r232, r231, r219, r227\n" " 342: FCVT r233, r232\n" " 343: SET_ALIAS a10, r233\n" " 344: GET_ALIAS r234, a6\n" " 345: BFEXT r235, r234, 0, 2\n" " 346: GOTO_IF_NZ r235, L29\n" " 347: BITCAST r236, r232\n" " 348: BFEXT r237, r236, 52, 11\n" " 349: ZCAST r238, r237\n" " 350: ADDI r239, r238, -874\n" " 351: SLTUI r240, r239, 277\n" " 352: GOTO_IF_Z r240, L29\n" " 353: BFEXT r241, r236, 0, 52\n" " 354: ADDI r242, r238, -862\n" " 355: SLTUI r243, r238, 897\n" " 356: LOAD_IMM r244, 35\n" " 357: SELECT r245, r242, r244, r243\n" " 358: SLL r246, r241, r245\n" " 359: LOAD_IMM r247, 0x8000000000000000\n" " 360: SEQ r248, r246, r247\n" " 361: GOTO_IF_Z r248, L29\n" " 362: FGETSTATE r249\n" " 363: FCLEAREXC r250, r249\n" " 364: FSETROUND r251, r250, TRUNC\n" " 365: FSETSTATE r251\n" " 366: FMADD r252, r7, r9, r11\n" " 367: FGETSTATE r253\n" " 368: FSETSTATE r249\n" " 369: BITCAST r254, r252\n" " 370: FTESTEXC r255, r253, INEXACT\n" " 371: GOTO_IF_Z r255, L29\n" " 372: BFEXT r256, r254, 0, 52\n" " 373: SEQ r257, r256, r241\n" " 374: GOTO_IF_NZ r257, L30\n" " 375: ADDI r258, r236, -1\n" " 376: BITCAST r259, r258\n" " 377: FCVT r260, r259\n" " 378: SET_ALIAS a10, r260\n" " 379: GOTO L29\n" " 380: LABEL L30\n" " 381: ADDI r261, r236, 1\n" " 382: BITCAST r262, r261\n" " 383: FCVT r263, r262\n" " 384: SET_ALIAS a10, r263\n" " 385: LABEL L29\n" " 386: GET_ALIAS r264, a10\n" " 387: LOAD_IMM r265, 0x1000000\n" " 388: BITCAST r266, r264\n" " 389: SLLI r267, r266, 1\n" " 390: SEQ r268, r267, r265\n" " 391: GOTO_IF_Z r268, L31\n" " 392: FGETSTATE r269\n" " 393: FSETROUND r270, r269, TRUNC\n" " 394: FSETSTATE r270\n" " 395: FMADD r271, r7, r9, r11\n" " 396: FCVT r272, r271\n" " 397: FGETSTATE r273\n" " 398: FCOPYROUND r274, r273, r269\n" " 399: FSETSTATE r274\n" " 400: LABEL L31\n" " 401: FGETSTATE r275\n" " 402: FCLEAREXC r276, r275\n" " 403: FSETSTATE r276\n" " 404: FTESTEXC r277, r275, INVALID\n" " 405: GOTO_IF_Z r277, L33\n" " 406: BITCAST r278, r7\n" " 407: SLLI r279, r278, 13\n" " 408: BFEXT r280, r278, 51, 12\n" " 409: SEQI r281, r280, 4094\n" " 410: GOTO_IF_Z r281, L35\n" " 411: GOTO_IF_NZ r279, L34\n" " 412: LABEL L35\n" " 413: BITCAST r282, r9\n" " 414: SLLI r283, r282, 13\n" " 415: BFEXT r284, r282, 51, 12\n" " 416: SEQI r285, r284, 4094\n" " 417: GOTO_IF_Z r285, L36\n" " 418: GOTO_IF_NZ r283, L34\n" " 419: LABEL L36\n" " 420: BITCAST r286, r11\n" " 421: SLLI r287, r286, 13\n" " 422: BFEXT r288, r286, 51, 12\n" " 423: SEQI r289, r288, 4094\n" " 424: GOTO_IF_Z r289, L38\n" " 425: GOTO_IF_NZ r287, L37\n" " 426: LABEL L38\n" " 427: BITCAST r290, r7\n" " 428: BITCAST r291, r9\n" " 429: SLLI r292, r290, 1\n" " 430: SLLI r293, r291, 1\n" " 431: LOAD_IMM r294, 0xFFE0000000000000\n" " 432: SEQ r295, r292, r294\n" " 433: GOTO_IF_Z r295, L39\n" " 434: GOTO_IF_Z r293, L40\n" " 435: GOTO L41\n" " 436: LABEL L39\n" " 437: GOTO_IF_NZ r292, L41\n" " 438: LABEL L40\n" " 439: NOT r296, r234\n" " 440: ORI r297, r234, 1048576\n" " 441: ANDI r298, r296, 1048576\n" " 442: SET_ALIAS a6, r297\n" " 443: GOTO_IF_Z r298, L42\n" " 444: ORI r299, r297, -2147483648\n" " 445: SET_ALIAS a6, r299\n" " 446: LABEL L42\n" " 447: GOTO L43\n" " 448: LABEL L41\n" " 449: NOT r300, r234\n" " 450: ORI r301, r234, 8388608\n" " 451: ANDI r302, r300, 8388608\n" " 452: SET_ALIAS a6, r301\n" " 453: GOTO_IF_Z r302, L44\n" " 454: ORI r303, r301, -2147483648\n" " 455: SET_ALIAS a6, r303\n" " 456: LABEL L44\n" " 457: LABEL L43\n" " 458: ANDI r304, r234, 128\n" " 459: GOTO_IF_Z r304, L45\n" " 460: GET_ALIAS r305, a6\n" " 461: BFEXT r306, r305, 12, 7\n" " 462: ANDI r307, r306, 31\n" " 463: GET_ALIAS r308, a6\n" " 464: BFINS r309, r308, r307, 12, 7\n" " 465: SET_ALIAS a6, r309\n" " 466: GOTO L32\n" " 467: LABEL L45\n" " 468: LOAD_IMM r310, nan(0x400000)\n" " 469: FCVT r311, r310\n" " 470: VBROADCAST r312, r311\n" " 471: SET_ALIAS a2, r312\n" " 472: LOAD_IMM r313, 17\n" " 473: GET_ALIAS r314, a6\n" " 474: BFINS r315, r314, r313, 12, 7\n" " 475: SET_ALIAS a6, r315\n" " 476: GOTO L32\n" " 477: LABEL L37\n" " 478: FMUL r316, r7, r9\n" " 479: FGETSTATE r317\n" " 480: FSETSTATE r276\n" " 481: FTESTEXC r318, r317, INVALID\n" " 482: GOTO_IF_Z r318, L34\n" " 483: NOT r319, r234\n" " 484: ORI r320, r234, 17825792\n" " 485: ANDI r321, r319, 17825792\n" " 486: SET_ALIAS a6, r320\n" " 487: GOTO_IF_Z r321, L46\n" " 488: ORI r322, r320, -2147483648\n" " 489: SET_ALIAS a6, r322\n" " 490: LABEL L46\n" " 491: GOTO L47\n" " 492: LABEL L34\n" " 493: NOT r323, r234\n" " 494: ORI r324, r234, 16777216\n" " 495: ANDI r325, r323, 16777216\n" " 496: SET_ALIAS a6, r324\n" " 497: GOTO_IF_Z r325, L48\n" " 498: ORI r326, r324, -2147483648\n" " 499: SET_ALIAS a6, r326\n" " 500: LABEL L48\n" " 501: LABEL L47\n" " 502: ANDI r327, r234, 128\n" " 503: GOTO_IF_Z r327, L33\n" " 504: GET_ALIAS r328, a6\n" " 505: BFEXT r329, r328, 12, 7\n" " 506: ANDI r330, r329, 31\n" " 507: GET_ALIAS r331, a6\n" " 508: BFINS r332, r331, r330, 12, 7\n" " 509: SET_ALIAS a6, r332\n" " 510: GOTO L32\n" " 511: LABEL L33\n" " 512: FCVT r333, r264\n" " 513: VBROADCAST r334, r333\n" " 514: SET_ALIAS a2, r334\n" " 515: BITCAST r335, r264\n" " 516: SGTUI r336, r335, 0\n" " 517: SRLI r337, r335, 31\n" " 518: BFEXT r341, r335, 23, 8\n" " 519: SEQI r338, r341, 0\n" " 520: SEQI r339, r341, 255\n" " 521: SLLI r342, r335, 9\n" " 522: SEQI r340, r342, 0\n" " 523: AND r343, r338, r340\n" " 524: XORI r344, r340, 1\n" " 525: AND r345, r339, r344\n" " 526: AND r346, r338, r336\n" " 527: OR r347, r346, r345\n" " 528: OR r348, r343, r345\n" " 529: XORI r349, r348, 1\n" " 530: XORI r350, r337, 1\n" " 531: AND r351, r337, r349\n" " 532: AND r352, r350, r349\n" " 533: SLLI r353, r347, 4\n" " 534: SLLI r354, r351, 3\n" " 535: SLLI r355, r352, 2\n" " 536: SLLI r356, r343, 1\n" " 537: OR r357, r353, r354\n" " 538: OR r358, r355, r356\n" " 539: OR r359, r357, r339\n" " 540: OR r360, r359, r358\n" " 541: FTESTEXC r361, r275, INEXACT\n" " 542: SLLI r362, r361, 5\n" " 543: OR r363, r360, r362\n" " 544: GET_ALIAS r364, a6\n" " 545: BFINS r365, r364, r363, 12, 7\n" " 546: SET_ALIAS a6, r365\n" " 547: GOTO_IF_Z r361, L49\n" " 548: GET_ALIAS r366, a6\n" " 549: NOT r367, r366\n" " 550: ORI r368, r366, 33554432\n" " 551: ANDI r369, r367, 33554432\n" " 552: SET_ALIAS a6, r368\n" " 553: GOTO_IF_Z r369, L50\n" " 554: ORI r370, r368, -2147483648\n" " 555: SET_ALIAS a6, r370\n" " 556: LABEL L50\n" " 557: LABEL L49\n" " 558: FTESTEXC r371, r275, OVERFLOW\n" " 559: GOTO_IF_Z r371, L51\n" " 560: GET_ALIAS r372, a6\n" " 561: NOT r373, r372\n" " 562: ORI r374, r372, 268435456\n" " 563: ANDI r375, r373, 268435456\n" " 564: SET_ALIAS a6, r374\n" " 565: GOTO_IF_Z r375, L52\n" " 566: ORI r376, r374, -2147483648\n" " 567: SET_ALIAS a6, r376\n" " 568: LABEL L52\n" " 569: LABEL L51\n" " 570: FTESTEXC r377, r275, UNDERFLOW\n" " 571: GOTO_IF_Z r377, L32\n" " 572: GET_ALIAS r378, a6\n" " 573: NOT r379, r378\n" " 574: ORI r380, r378, 134217728\n" " 575: ANDI r381, r379, 134217728\n" " 576: SET_ALIAS a6, r380\n" " 577: GOTO_IF_Z r381, L53\n" " 578: ORI r382, r380, -2147483648\n" " 579: SET_ALIAS a6, r382\n" " 580: LABEL L53\n" " 581: LABEL L32\n" " 582: GET_ALIAS r383, a2\n" " 583: VEXTRACT r384, r383, 0\n" " 584: GET_ALIAS r385, a6\n" " 585: BFEXT r386, r385, 12, 7\n" " 586: ANDI r387, r386, 32\n" " 587: OR r388, r218, r387\n" " 588: GET_ALIAS r389, a6\n" " 589: BFINS r390, r389, r388, 12, 7\n" " 590: SET_ALIAS a6, r390\n" " 591: OR r391, r53, r221\n" " 592: GOTO_IF_Z r391, L54\n" " 593: GET_ALIAS r392, a6\n" " 594: ANDI r393, r392, 128\n" " 595: GOTO_IF_Z r393, L54\n" " 596: SET_ALIAS a2, r50\n" " 597: GOTO L55\n" " 598: LABEL L54\n" " 599: VBUILD2 r394, r216, r384\n" " 600: SET_ALIAS a2, r394\n" " 601: LABEL L55\n" " 602: LOAD_IMM r395, 4\n" " 603: SET_ALIAS a1, r395\n" " 604: RETURN r1\n" "\n" "Alias 1: int32 @ 964(r1)\n" "Alias 2: float64[2] @ 400(r1)\n" "Alias 3: float64[2] @ 416(r1)\n" "Alias 4: float64[2] @ 432(r1)\n" "Alias 5: float64[2] @ 448(r1)\n" "Alias 6: int32 @ 944(r1)\n" "Alias 7: float64, no bound storage\n" "Alias 8: float64, no bound storage\n" "Alias 9: float32, no bound storage\n" "Alias 10: float32, no bound storage\n" "\n" "Block 0: --> [0,16] --> 1,11\n" "Block 1: 0 --> [17,20] --> 2,11\n" "Block 2: 1 --> [21,22] --> 3,11\n" "Block 3: 2 --> [23,23] --> 4,6\n" "Block 4: 3 --> [24,28] --> 5,11\n" "Block 5: 4 --> [29,37] --> 6\n" "Block 6: 5,3 --> [38,48] --> 7,11\n" "Block 7: 6 --> [49,54] --> 8,10\n" "Block 8: 7 --> [55,56] --> 9,11\n" "Block 9: 8 --> [57,60] --> 11\n" "Block 10: 7 --> [61,65] --> 11\n" "Block 11: 10,9,0,1,2,4,6,8 --> [66,88] --> 12,18\n" "Block 12: 11 --> [89,94] --> 13,18\n" "Block 13: 12 --> [95,103] --> 14,18\n" "Block 14: 13 --> [104,113] --> 15,18\n" "Block 15: 14 --> [114,116] --> 16,17\n" "Block 16: 15 --> [117,121] --> 18\n" "Block 17: 15 --> [122,126] --> 18\n" "Block 18: 17,11,12,13,14,16 --> [127,133] --> 19,20\n" "Block 19: 18 --> [134,141] --> 20\n" "Block 20: 19,18 --> [142,147] --> 21,49\n" "Block 21: 20 --> [148,152] --> 22,23\n" "Block 22: 21 --> [153,153] --> 23,44\n" "Block 23: 22,21 --> [154,159] --> 24,25\n" "Block 24: 23 --> [160,160] --> 25,44\n" "Block 25: 24,23 --> [161,166] --> 26,27\n" "Block 26: 25 --> [167,167] --> 27,40\n" "Block 27: 26,25 --> [168,175] --> 28,30\n" "Block 28: 27 --> [176,176] --> 29,31\n" "Block 29: 28 --> [177,177] --> 34\n" "Block 30: 27 --> [178,179] --> 31,34\n" "Block 31: 30,28 --> [180,185] --> 32,33\n" "Block 32: 31 --> [186,187] --> 33\n" "Block 33: 32,31 --> [188,189] --> 37\n" "Block 34: 29,30 --> [190,195] --> 35,36\n" "Block 35: 34 --> [196,197] --> 36\n" "Block 36: 35,34 --> [198,198] --> 37\n" "Block 37: 36,33 --> [199,201] --> 38,39\n" "Block 38: 37 --> [202,208] --> 61\n" "Block 39: 37 --> [209,218] --> 61\n" "Block 40: 26 --> [219,224] --> 41,44\n" "Block 41: 40 --> [225,229] --> 42,43\n" "Block 42: 41 --> [230,231] --> 43\n" "Block 43: 42,41 --> [232,233] --> 47\n" "Block 44: 22,24,40 --> [234,239] --> 45,46\n" "Block 45: 44 --> [240,241] --> 46\n" "Block 46: 45,44 --> [242,242] --> 47\n" "Block 47: 46,43 --> [243,245] --> 48,49\n" "Block 48: 47 --> [246,252] --> 61\n" "Block 49: 20,47 --> [253,289] --> 50,53\n" "Block 50: 49 --> [290,295] --> 51,52\n" "Block 51: 50 --> [296,297] --> 52\n" "Block 52: 51,50 --> [298,298] --> 53\n" "Block 53: 52,49 --> [299,301] --> 54,57\n" "Block 54: 53 --> [302,307] --> 55,56\n" "Block 55: 54 --> [308,309] --> 56\n" "Block 56: 55,54 --> [310,310] --> 57\n" "Block 57: 56,53 --> [311,313] --> 58,61\n" "Block 58: 57 --> [314,319] --> 59,60\n" "Block 59: 58 --> [320,321] --> 60\n" "Block 60: 59,58 --> [322,322] --> 61\n" "Block 61: 60,38,39,48,57 --> [323,346] --> 62,68\n" "Block 62: 61 --> [347,352] --> 63,68\n" "Block 63: 62 --> [353,361] --> 64,68\n" "Block 64: 63 --> [362,371] --> 65,68\n" "Block 65: 64 --> [372,374] --> 66,67\n" "Block 66: 65 --> [375,379] --> 68\n" "Block 67: 65 --> [380,384] --> 68\n" "Block 68: 67,61,62,63,64,66 --> [385,391] --> 69,70\n" "Block 69: 68 --> [392,399] --> 70\n" "Block 70: 69,68 --> [400,405] --> 71,99\n" "Block 71: 70 --> [406,410] --> 72,73\n" "Block 72: 71 --> [411,411] --> 73,94\n" "Block 73: 72,71 --> [412,417] --> 74,75\n" "Block 74: 73 --> [418,418] --> 75,94\n" "Block 75: 74,73 --> [419,424] --> 76,77\n" "Block 76: 75 --> [425,425] --> 77,90\n" "Block 77: 76,75 --> [426,433] --> 78,80\n" "Block 78: 77 --> [434,434] --> 79,81\n" "Block 79: 78 --> [435,435] --> 84\n" "Block 80: 77 --> [436,437] --> 81,84\n" "Block 81: 80,78 --> [438,443] --> 82,83\n" "Block 82: 81 --> [444,445] --> 83\n" "Block 83: 82,81 --> [446,447] --> 87\n" "Block 84: 79,80 --> [448,453] --> 85,86\n" "Block 85: 84 --> [454,455] --> 86\n" "Block 86: 85,84 --> [456,456] --> 87\n" "Block 87: 86,83 --> [457,459] --> 88,89\n" "Block 88: 87 --> [460,466] --> 111\n" "Block 89: 87 --> [467,476] --> 111\n" "Block 90: 76 --> [477,482] --> 91,94\n" "Block 91: 90 --> [483,487] --> 92,93\n" "Block 92: 91 --> [488,489] --> 93\n" "Block 93: 92,91 --> [490,491] --> 97\n" "Block 94: 72,74,90 --> [492,497] --> 95,96\n" "Block 95: 94 --> [498,499] --> 96\n" "Block 96: 95,94 --> [500,500] --> 97\n" "Block 97: 96,93 --> [501,503] --> 98,99\n" "Block 98: 97 --> [504,510] --> 111\n" "Block 99: 70,97 --> [511,547] --> 100,103\n" "Block 100: 99 --> [548,553] --> 101,102\n" "Block 101: 100 --> [554,555] --> 102\n" "Block 102: 101,100 --> [556,556] --> 103\n" "Block 103: 102,99 --> [557,559] --> 104,107\n" "Block 104: 103 --> [560,565] --> 105,106\n" "Block 105: 104 --> [566,567] --> 106\n" "Block 106: 105,104 --> [568,568] --> 107\n" "Block 107: 106,103 --> [569,571] --> 108,111\n" "Block 108: 107 --> [572,577] --> 109,110\n" "Block 109: 108 --> [578,579] --> 110\n" "Block 110: 109,108 --> [580,580] --> 111\n" "Block 111: 110,88,89,98,107 --> [581,592] --> 112,114\n" "Block 112: 111 --> [593,595] --> 113,114\n" "Block 113: 112 --> [596,597] --> 115\n" "Block 114: 111,112 --> [598,600] --> 115\n" "Block 115: 114,113 --> [601,604] --> \n" ; #include "tests/rtl-disasm-test.i"