mirror of
https://github.com/elmasas/lcs-recomp
synced 2026-10-03 10:26:38 -04:00
11309 lines
594 KiB
C++
11309 lines
594 KiB
C++
#include "psprecomp/runtime.hpp"
|
|
#include "generated_units.hpp"
|
|
#include <bit>
|
|
#include <cmath>
|
|
#include <cstdint>
|
|
#include <limits>
|
|
|
|
namespace psprecomp {
|
|
static const std::uint16_t kEntryIds_recomp_unit_0024[4088] = {
|
|
1, 0, 0, 2, 3, 0, 4, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0,
|
|
0, 0, 9, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 11, 12, 0, 13, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0,
|
|
16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 26,
|
|
0, 27, 0, 0, 0, 28, 0, 0, 29, 0, 0, 30, 0, 31, 32, 0, 33, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 35, 0, 36,
|
|
0, 0, 0, 37, 0, 0, 38, 0, 0, 39, 0, 40, 41, 0, 42, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 44, 0, 45, 0, 0,
|
|
0, 0, 0, 0, 46, 0, 0, 47, 0, 0, 48, 0, 49, 50, 0, 51, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 53, 0, 54, 0,
|
|
0, 0, 0, 0, 0, 55, 0, 0, 56, 0, 0, 57, 0, 58, 59, 0, 60, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 62, 0, 63,
|
|
0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 65, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 69, 0, 0, 0, 0, 0, 0, 70, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 72, 0, 73, 0, 0, 0, 0, 0, 0, 74, 0, 75, 0, 76, 0,
|
|
77, 0, 78, 0, 79, 0, 0, 80, 0, 0, 81, 0, 0, 82, 0, 0, 83, 0, 0, 0, 84, 0, 0, 85, 0, 0, 0, 0, 0, 86, 0, 87,
|
|
88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 91, 0, 0, 92, 0, 0, 0, 0, 93, 0, 0, 94, 0, 0,
|
|
0, 0, 95, 0, 0, 96, 0, 0, 0, 0, 97, 0, 0, 98, 0, 0, 0, 0, 99, 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, 0, 102, 0,
|
|
0, 0, 0, 0, 103, 0, 0, 104, 0, 0, 0, 0, 105, 0, 0, 106, 0, 0, 0, 0, 0, 107, 108, 0, 0, 0, 109, 0, 0, 110, 0, 0,
|
|
0, 0, 0, 111, 112, 0, 0, 0, 113, 0, 0, 114, 0, 0, 0, 0, 0, 115, 116, 0, 0, 0, 117, 0, 0, 118, 0, 0, 0, 0, 0, 119,
|
|
120, 0, 0, 0, 121, 0, 0, 122, 0, 0, 0, 0, 123, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, 126, 0, 0, 0,
|
|
127, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 129, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, 132, 0, 0,
|
|
0, 133, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 136, 0, 0, 137, 0, 0, 0, 0, 0, 0, 138, 0, 0, 139, 0,
|
|
0, 0, 0, 0, 0, 0, 140, 0, 0, 141, 0, 0, 142, 0, 0, 143, 0, 0, 0, 0, 0, 144, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0,
|
|
146, 0, 0, 147, 0, 0, 0, 0, 148, 0, 0, 149, 0, 0, 0, 0, 150, 0, 0, 151, 0, 0, 0, 0, 0, 152, 0, 0, 153, 0, 0, 0,
|
|
0, 0, 154, 0, 0, 155, 0, 0, 0, 0, 156, 0, 0, 157, 0, 0, 0, 0, 158, 0, 0, 159, 0, 0, 0, 0, 160, 0, 0, 161, 0, 0,
|
|
0, 0, 162, 0, 0, 163, 0, 0, 0, 0, 0, 164, 0, 0, 165, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 167, 0, 0, 168, 0, 0, 0,
|
|
0, 0, 0, 169, 0, 0, 0, 170, 0, 171, 172, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 175, 0, 0,
|
|
176, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 178, 0, 0, 179, 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, 181, 0, 182, 183, 0, 0, 184,
|
|
0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 186, 0, 0, 187, 0, 0, 0, 0, 0, 188, 0, 0, 189, 0, 0, 0, 0, 190, 0, 0, 191, 0,
|
|
0, 0, 0, 192, 0, 0, 193, 0, 0, 0, 0, 0, 194, 0, 0, 195, 0, 0, 0, 0, 0, 196, 0, 0, 197, 0, 0, 0, 0, 0, 198, 0,
|
|
0, 199, 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 203, 0, 0, 204, 0, 205, 0, 206, 0, 0, 207, 0, 0, 0, 0, 208, 0,
|
|
0, 0, 209, 0, 0, 0, 0, 210, 0, 0, 0, 211, 0, 212, 0, 213, 0, 0, 0, 214, 0, 215, 0, 216, 0, 217, 0, 218, 0, 0, 0, 0,
|
|
219, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 221, 0, 0, 222, 0, 0, 0, 0, 223, 0, 0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
|
|
0, 226, 0, 227, 0, 228, 0, 0, 0, 229, 0, 230, 0, 231, 0, 232, 0, 233, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 235, 0, 236, 0, 0, 0, 0, 237, 0, 238, 0, 0, 0, 0, 239, 240, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0,
|
|
242, 0, 0, 243, 0, 244, 0, 245, 0, 246, 0, 247, 0, 248, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 250, 0, 251, 0, 252, 0,
|
|
253, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 256, 0, 0, 0, 0, 257, 0, 258, 0, 0, 0, 0,
|
|
259, 260, 0, 0, 0, 0, 0, 261, 0, 0, 262, 0, 263, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, 0, 0, 0,
|
|
266, 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0,
|
|
0, 270, 0, 271, 0, 0, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 275, 0, 276, 0, 0, 277, 0, 278, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 280, 0, 281, 0, 0, 0, 0, 0, 282, 0,
|
|
0, 0, 0, 0, 0, 283, 0, 284, 0, 285, 0, 0, 0, 286, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 0, 0, 289, 0, 0, 0,
|
|
0, 0, 290, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
292, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, 296, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 0,
|
|
0, 0, 299, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 302, 0, 0, 0, 0, 0, 0, 303, 0, 0,
|
|
0, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 0, 307, 0, 308, 0, 309, 0, 310, 0, 0, 0, 311, 0, 0, 0,
|
|
0, 0, 312, 0, 0, 313, 314, 0, 315, 0, 0, 0, 0, 0, 0, 316, 0, 317, 0, 0, 0, 0, 0, 318, 319, 0, 0, 320, 0, 321, 0, 0,
|
|
0, 322, 0, 0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 325, 0, 326, 0, 327, 0, 0, 328, 0, 0, 0, 0, 0, 329, 0,
|
|
330, 0, 331, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 333, 0, 0, 334, 0, 0, 335, 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, 338,
|
|
0, 0, 0, 0, 0, 339, 0, 340, 0, 0, 341, 342, 0, 343, 0, 0, 344, 0, 345, 346, 0, 347, 0, 0, 348, 0, 0, 0, 0, 0, 349, 0,
|
|
350, 0, 0, 351, 352, 0, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 356, 0, 0,
|
|
0, 0, 0, 0, 357, 0, 0, 358, 0, 359, 0, 360, 0, 361, 0, 362, 363, 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 366,
|
|
0, 0, 0, 0, 0, 0, 367, 0, 0, 368, 0, 0, 369, 0, 370, 0, 371, 0, 372, 0, 373, 0, 374, 375, 0, 376, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 377, 0, 0, 0, 0, 378, 0, 379, 0, 380, 0, 381, 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 0, 0,
|
|
0, 0, 384, 0, 385, 0, 386, 0, 387, 0, 0, 388, 0, 0, 0, 0, 0, 0, 389, 0, 0, 390, 0, 391, 0, 392, 393, 0, 394, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 397, 398, 0, 399, 0, 0, 0, 0, 0, 400, 0, 0, 0,
|
|
0, 0, 401, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 404, 405, 0, 0, 0, 0, 406, 0, 0, 0,
|
|
0, 407, 0, 408, 409, 0, 0, 410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 0, 0, 0, 412, 0,
|
|
0, 0, 413, 0, 414, 0, 0, 0, 415, 0, 416, 0, 417, 0, 418, 0, 0, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 422, 0, 0,
|
|
423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 424, 0, 0, 0, 425, 0, 0, 0, 0, 426, 427, 0, 0, 0, 0, 0, 0, 0, 428, 0, 429, 0, 430, 0, 0,
|
|
0, 431, 0, 0, 0, 0, 432, 0, 433, 0, 0, 0, 434, 0, 0, 0, 435, 0, 436, 0, 0, 0, 437, 0, 438, 0, 439, 0, 440, 0, 441, 442,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 443, 0, 444, 0, 445, 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447, 0, 0, 0, 448, 0, 0, 0, 0,
|
|
449, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451, 0, 0, 0, 452, 0, 453, 0, 454, 0, 455, 0, 0, 0, 456, 0,
|
|
0, 0, 0, 457, 0, 458, 0, 0, 459, 0, 460, 0, 0, 0, 461, 0, 462, 0, 463, 0, 464, 0, 465, 466, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 467, 0, 468, 0, 469, 470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 472, 0, 0, 0, 0, 473, 0, 474, 0, 0, 0, 475, 0,
|
|
0, 0, 0, 476, 477, 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479,
|
|
0, 0, 0, 0, 480, 0, 481, 0, 0, 482, 0, 483, 0, 484, 0, 485, 0, 486, 0, 487, 488, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 490,
|
|
0, 0, 0, 0, 0, 491, 0, 0, 492, 0, 0, 0, 0, 0, 493, 0, 0, 0, 494, 0, 0, 0, 0, 0, 495, 0, 0, 0, 496, 0, 0, 0,
|
|
0, 0, 497, 498, 0, 0, 0, 0, 499, 0, 0, 500, 0, 0, 0, 0, 0, 0, 501, 0, 0, 0, 0, 502, 0, 0, 503, 0, 0, 0, 0, 0,
|
|
0, 504, 0, 0, 0, 0, 505, 0, 0, 506, 0, 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 508, 0, 0, 509, 0, 0, 0, 0, 0, 0, 510,
|
|
0, 0, 0, 0, 511, 0, 0, 0, 512, 0, 513, 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 516, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 518, 0, 0, 0, 0, 519, 0, 520, 0, 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 524, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 533, 0, 534, 0, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 536, 0, 537, 0, 538, 0, 0, 0, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 540, 0, 541, 0, 0, 0, 0, 0, 542, 0, 543, 0, 544, 0, 545, 0, 546, 0, 547, 0, 548, 0, 0, 0, 0, 0, 549, 0, 0, 0,
|
|
0, 0, 0, 550, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 554,
|
|
555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 557, 0, 0, 0, 0, 0, 558, 559, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 561, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, 0, 0, 0, 0, 0, 0, 0, 565,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 570, 0, 571, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 573, 0,
|
|
0, 0, 0, 0, 574, 0, 575, 0, 576, 0, 577, 0, 578, 0, 579, 0, 580, 0, 0, 0, 0, 0, 581, 0, 0, 0, 0, 0, 0, 582, 583, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 586, 0, 0, 0, 0, 0, 587, 0, 0, 0, 0, 0, 0, 588, 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 590,
|
|
0, 0, 0, 0, 0, 0, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0,
|
|
594, 595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, 597, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 598, 0, 0, 599, 0, 0, 0, 0, 0, 0, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601, 0,
|
|
0, 0, 0, 0, 0, 602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 603, 0, 604, 0, 605, 0, 606, 0, 607, 0, 608, 0, 609,
|
|
0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 611, 612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 0, 0, 0,
|
|
0, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 615, 0, 0, 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, 617, 618,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0, 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 621, 0, 0, 0, 0, 0, 622, 0, 0, 0, 0, 0, 623, 624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625,
|
|
0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 628, 0, 0, 0, 0, 0, 0, 629, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 633, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 635, 636, 0, 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 638, 0, 0, 0, 0, 0, 0, 0, 0, 639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 640, 0, 641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 643, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 647, 0, 648, 0, 649, 0, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 651, 0, 652, 0, 0, 0, 653, 0, 0, 654, 0, 0, 655,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 657, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 659, 0, 0, 0, 660, 0, 0, 0, 661, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 663,
|
|
};
|
|
void recomp_unit_0024_entry(Runtime &rt, AllegrexContext &ctx, std::uint16_t direct_entry_id, GuestMemory::AotFastView &aot_mem) {
|
|
std::uint32_t jump_target = 0u;
|
|
std::uint32_t local_transfers = 0u;
|
|
std::uint32_t local_pc = ctx.pc;
|
|
std::uint32_t entry_id = direct_entry_id;
|
|
LOCAL_DISPATCH:
|
|
{
|
|
if (entry_id == 0u) {
|
|
const std::uint32_t entry_delta = local_pc - 0x08864004u;
|
|
entry_id = (entry_delta < 16352u && (entry_delta & 3u) == 0u) ? kEntryIds_recomp_unit_0024[entry_delta >> 2u] : 0u;
|
|
}
|
|
switch (entry_id) {
|
|
case 1u: goto L_08864004;
|
|
case 2u: goto L_08864010;
|
|
case 3u: goto L_08864014;
|
|
case 4u: goto L_0886401C;
|
|
case 5u: goto L_08864034;
|
|
case 6u: goto L_08864048;
|
|
case 7u: goto L_0886406C;
|
|
case 8u: goto L_08864074;
|
|
case 9u: goto L_0886408C;
|
|
case 10u: goto L_088640A0;
|
|
case 11u: goto L_088640C0;
|
|
case 12u: goto L_088640C4;
|
|
case 13u: goto L_088640CC;
|
|
case 14u: goto L_088640E8;
|
|
case 15u: goto L_088640F8;
|
|
case 16u: goto L_08864104;
|
|
case 17u: goto L_08864108;
|
|
case 18u: goto L_0886412C;
|
|
case 19u: goto L_08864134;
|
|
case 20u: goto L_08864150;
|
|
case 21u: goto L_08864198;
|
|
case 22u: goto L_088641B4;
|
|
case 23u: goto L_088641C4;
|
|
case 24u: goto L_088641D4;
|
|
case 25u: goto L_088641F4;
|
|
case 26u: goto L_08864200;
|
|
case 27u: goto L_08864208;
|
|
case 28u: goto L_08864218;
|
|
case 29u: goto L_08864224;
|
|
case 30u: goto L_08864230;
|
|
case 31u: goto L_08864238;
|
|
case 32u: goto L_0886423C;
|
|
case 33u: goto L_08864244;
|
|
case 34u: goto L_08864258;
|
|
case 35u: goto L_08864278;
|
|
case 36u: goto L_08864280;
|
|
case 37u: goto L_08864290;
|
|
case 38u: goto L_0886429C;
|
|
case 39u: goto L_088642A8;
|
|
case 40u: goto L_088642B0;
|
|
case 41u: goto L_088642B4;
|
|
case 42u: goto L_088642BC;
|
|
case 43u: goto L_088642D0;
|
|
case 44u: goto L_088642F0;
|
|
case 45u: goto L_088642F8;
|
|
case 46u: goto L_08864314;
|
|
case 47u: goto L_08864320;
|
|
case 48u: goto L_0886432C;
|
|
case 49u: goto L_08864334;
|
|
case 50u: goto L_08864338;
|
|
case 51u: goto L_08864340;
|
|
case 52u: goto L_08864354;
|
|
case 53u: goto L_08864374;
|
|
case 54u: goto L_0886437C;
|
|
case 55u: goto L_08864398;
|
|
case 56u: goto L_088643A4;
|
|
case 57u: goto L_088643B0;
|
|
case 58u: goto L_088643B8;
|
|
case 59u: goto L_088643BC;
|
|
case 60u: goto L_088643C4;
|
|
case 61u: goto L_088643D8;
|
|
case 62u: goto L_088643F8;
|
|
case 63u: goto L_08864400;
|
|
case 64u: goto L_0886441C;
|
|
case 65u: goto L_0886442C;
|
|
case 66u: goto L_08864438;
|
|
case 67u: goto L_08864448;
|
|
case 68u: goto L_08864458;
|
|
case 69u: goto L_08864460;
|
|
case 70u: goto L_0886447C;
|
|
case 71u: goto L_088644AC;
|
|
case 72u: goto L_088644C8;
|
|
case 73u: goto L_088644D0;
|
|
case 74u: goto L_088644EC;
|
|
case 75u: goto L_088644F4;
|
|
case 76u: goto L_088644FC;
|
|
case 77u: goto L_08864504;
|
|
case 78u: goto L_0886450C;
|
|
case 79u: goto L_08864514;
|
|
case 80u: goto L_08864520;
|
|
case 81u: goto L_0886452C;
|
|
case 82u: goto L_08864538;
|
|
case 83u: goto L_08864544;
|
|
case 84u: goto L_08864554;
|
|
case 85u: goto L_08864560;
|
|
case 86u: goto L_08864578;
|
|
case 87u: goto L_08864580;
|
|
case 88u: goto L_08864584;
|
|
case 89u: goto L_088645C4;
|
|
case 90u: goto L_088646B8;
|
|
case 91u: goto L_088646CC;
|
|
case 92u: goto L_088646D8;
|
|
case 93u: goto L_088646EC;
|
|
case 94u: goto L_088646F8;
|
|
case 95u: goto L_0886470C;
|
|
case 96u: goto L_08864718;
|
|
case 97u: goto L_0886472C;
|
|
case 98u: goto L_08864738;
|
|
case 99u: goto L_0886474C;
|
|
case 100u: goto L_08864758;
|
|
case 101u: goto L_08864770;
|
|
case 102u: goto L_0886477C;
|
|
case 103u: goto L_08864794;
|
|
case 104u: goto L_088647A0;
|
|
case 105u: goto L_088647B4;
|
|
case 106u: goto L_088647C0;
|
|
case 107u: goto L_088647D8;
|
|
case 108u: goto L_088647DC;
|
|
case 109u: goto L_088647EC;
|
|
case 110u: goto L_088647F8;
|
|
case 111u: goto L_08864810;
|
|
case 112u: goto L_08864814;
|
|
case 113u: goto L_08864824;
|
|
case 114u: goto L_08864830;
|
|
case 115u: goto L_08864848;
|
|
case 116u: goto L_0886484C;
|
|
case 117u: goto L_0886485C;
|
|
case 118u: goto L_08864868;
|
|
case 119u: goto L_08864880;
|
|
case 120u: goto L_08864884;
|
|
case 121u: goto L_08864894;
|
|
case 122u: goto L_088648A0;
|
|
case 123u: goto L_088648B4;
|
|
case 124u: goto L_088648C0;
|
|
case 125u: goto L_088648E8;
|
|
case 126u: goto L_088648F4;
|
|
case 127u: goto L_08864904;
|
|
case 128u: goto L_0886491C;
|
|
case 129u: goto L_08864930;
|
|
case 130u: goto L_0886493C;
|
|
case 131u: goto L_0886496C;
|
|
case 132u: goto L_08864978;
|
|
case 133u: goto L_08864988;
|
|
case 134u: goto L_0886499C;
|
|
case 135u: goto L_088649B4;
|
|
case 136u: goto L_088649C8;
|
|
case 137u: goto L_088649D4;
|
|
case 138u: goto L_088649F0;
|
|
case 139u: goto L_088649FC;
|
|
case 140u: goto L_08864A1C;
|
|
case 141u: goto L_08864A28;
|
|
case 142u: goto L_08864A34;
|
|
case 143u: goto L_08864A40;
|
|
case 144u: goto L_08864A58;
|
|
case 145u: goto L_08864A64;
|
|
case 146u: goto L_08864A84;
|
|
case 147u: goto L_08864A90;
|
|
case 148u: goto L_08864AA4;
|
|
case 149u: goto L_08864AB0;
|
|
case 150u: goto L_08864AC4;
|
|
case 151u: goto L_08864AD0;
|
|
case 152u: goto L_08864AE8;
|
|
case 153u: goto L_08864AF4;
|
|
case 154u: goto L_08864B0C;
|
|
case 155u: goto L_08864B18;
|
|
case 156u: goto L_08864B2C;
|
|
case 157u: goto L_08864B38;
|
|
case 158u: goto L_08864B4C;
|
|
case 159u: goto L_08864B58;
|
|
case 160u: goto L_08864B6C;
|
|
case 161u: goto L_08864B78;
|
|
case 162u: goto L_08864B8C;
|
|
case 163u: goto L_08864B98;
|
|
case 164u: goto L_08864BB0;
|
|
case 165u: goto L_08864BBC;
|
|
case 166u: goto L_08864BD8;
|
|
case 167u: goto L_08864BE8;
|
|
case 168u: goto L_08864BF4;
|
|
case 169u: goto L_08864C10;
|
|
case 170u: goto L_08864C20;
|
|
case 171u: goto L_08864C28;
|
|
case 172u: goto L_08864C2C;
|
|
case 173u: goto L_08864C38;
|
|
case 174u: goto L_08864C5C;
|
|
case 175u: goto L_08864C78;
|
|
case 176u: goto L_08864C84;
|
|
case 177u: goto L_08864CA0;
|
|
case 178u: goto L_08864CB0;
|
|
case 179u: goto L_08864CBC;
|
|
case 180u: goto L_08864CD8;
|
|
case 181u: goto L_08864CE8;
|
|
case 182u: goto L_08864CF0;
|
|
case 183u: goto L_08864CF4;
|
|
case 184u: goto L_08864D00;
|
|
case 185u: goto L_08864D1C;
|
|
case 186u: goto L_08864D2C;
|
|
case 187u: goto L_08864D38;
|
|
case 188u: goto L_08864D50;
|
|
case 189u: goto L_08864D5C;
|
|
case 190u: goto L_08864D70;
|
|
case 191u: goto L_08864D7C;
|
|
case 192u: goto L_08864D90;
|
|
case 193u: goto L_08864D9C;
|
|
case 194u: goto L_08864DB4;
|
|
case 195u: goto L_08864DC0;
|
|
case 196u: goto L_08864DD8;
|
|
case 197u: goto L_08864DE4;
|
|
case 198u: goto L_08864DFC;
|
|
case 199u: goto L_08864E08;
|
|
case 200u: goto L_08864E1C;
|
|
case 201u: goto L_08864E94;
|
|
case 202u: goto L_08864EB4;
|
|
case 203u: goto L_08864EC0;
|
|
case 204u: goto L_08864ECC;
|
|
case 205u: goto L_08864ED4;
|
|
case 206u: goto L_08864EDC;
|
|
case 207u: goto L_08864EE8;
|
|
case 208u: goto L_08864EFC;
|
|
case 209u: goto L_08864F0C;
|
|
case 210u: goto L_08864F20;
|
|
case 211u: goto L_08864F30;
|
|
case 212u: goto L_08864F38;
|
|
case 213u: goto L_08864F40;
|
|
case 214u: goto L_08864F50;
|
|
case 215u: goto L_08864F58;
|
|
case 216u: goto L_08864F60;
|
|
case 217u: goto L_08864F68;
|
|
case 218u: goto L_08864F70;
|
|
case 219u: goto L_08864F84;
|
|
case 220u: goto L_08864FA4;
|
|
case 221u: goto L_08864FB4;
|
|
case 222u: goto L_08864FC0;
|
|
case 223u: goto L_08864FD4;
|
|
case 224u: goto L_08864FE4;
|
|
case 225u: goto L_08864FF8;
|
|
case 226u: goto L_08865008;
|
|
case 227u: goto L_08865010;
|
|
case 228u: goto L_08865018;
|
|
case 229u: goto L_08865028;
|
|
case 230u: goto L_08865030;
|
|
case 231u: goto L_08865038;
|
|
case 232u: goto L_08865040;
|
|
case 233u: goto L_08865048;
|
|
case 234u: goto L_0886505C;
|
|
case 235u: goto L_08865090;
|
|
case 236u: goto L_08865098;
|
|
case 237u: goto L_088650AC;
|
|
case 238u: goto L_088650B4;
|
|
case 239u: goto L_088650C8;
|
|
case 240u: goto L_088650CC;
|
|
case 241u: goto L_088650E4;
|
|
case 242u: goto L_08865104;
|
|
case 243u: goto L_08865110;
|
|
case 244u: goto L_08865118;
|
|
case 245u: goto L_08865120;
|
|
case 246u: goto L_08865128;
|
|
case 247u: goto L_08865130;
|
|
case 248u: goto L_08865138;
|
|
case 249u: goto L_0886514C;
|
|
case 250u: goto L_0886516C;
|
|
case 251u: goto L_08865174;
|
|
case 252u: goto L_0886517C;
|
|
case 253u: goto L_08865184;
|
|
case 254u: goto L_08865198;
|
|
case 255u: goto L_088651CC;
|
|
case 256u: goto L_088651D4;
|
|
case 257u: goto L_088651E8;
|
|
case 258u: goto L_088651F0;
|
|
case 259u: goto L_08865204;
|
|
case 260u: goto L_08865208;
|
|
case 261u: goto L_08865220;
|
|
case 262u: goto L_0886522C;
|
|
case 263u: goto L_08865234;
|
|
case 264u: goto L_0886523C;
|
|
case 265u: goto L_08865270;
|
|
case 266u: goto L_08865284;
|
|
case 267u: goto L_088652A4;
|
|
case 268u: goto L_088652C4;
|
|
case 269u: goto L_088652FC;
|
|
case 270u: goto L_08865308;
|
|
case 271u: goto L_08865310;
|
|
case 272u: goto L_0886531C;
|
|
case 273u: goto L_08865344;
|
|
case 274u: goto L_08865360;
|
|
case 275u: goto L_08865394;
|
|
case 276u: goto L_0886539C;
|
|
case 277u: goto L_088653A8;
|
|
case 278u: goto L_088653B0;
|
|
case 279u: goto L_088653C4;
|
|
case 280u: goto L_088653DC;
|
|
case 281u: goto L_088653E4;
|
|
case 282u: goto L_088653FC;
|
|
case 283u: goto L_08865418;
|
|
case 284u: goto L_08865420;
|
|
case 285u: goto L_08865428;
|
|
case 286u: goto L_08865438;
|
|
case 287u: goto L_08865440;
|
|
case 288u: goto L_08865468;
|
|
case 289u: goto L_08865474;
|
|
case 290u: goto L_0886548C;
|
|
case 291u: goto L_088654A0;
|
|
case 292u: goto L_08865504;
|
|
case 293u: goto L_08865518;
|
|
case 294u: goto L_0886553C;
|
|
case 295u: goto L_08865568;
|
|
case 296u: goto L_0886557C;
|
|
case 297u: goto L_088655C0;
|
|
case 298u: goto L_088655F8;
|
|
case 299u: goto L_0886560C;
|
|
case 300u: goto L_08865628;
|
|
case 301u: goto L_08865650;
|
|
case 302u: goto L_0886565C;
|
|
case 303u: goto L_08865678;
|
|
case 304u: goto L_0886568C;
|
|
case 305u: goto L_088656B0;
|
|
case 306u: goto L_088656C4;
|
|
case 307u: goto L_088656CC;
|
|
case 308u: goto L_088656D4;
|
|
case 309u: goto L_088656DC;
|
|
case 310u: goto L_088656E4;
|
|
case 311u: goto L_088656F4;
|
|
case 312u: goto L_0886570C;
|
|
case 313u: goto L_08865718;
|
|
case 314u: goto L_0886571C;
|
|
case 315u: goto L_08865724;
|
|
case 316u: goto L_08865740;
|
|
case 317u: goto L_08865748;
|
|
case 318u: goto L_08865760;
|
|
case 319u: goto L_08865764;
|
|
case 320u: goto L_08865770;
|
|
case 321u: goto L_08865778;
|
|
case 322u: goto L_08865788;
|
|
case 323u: goto L_08865794;
|
|
case 324u: goto L_088657BC;
|
|
case 325u: goto L_088657C8;
|
|
case 326u: goto L_088657D0;
|
|
case 327u: goto L_088657D8;
|
|
case 328u: goto L_088657E4;
|
|
case 329u: goto L_088657FC;
|
|
case 330u: goto L_08865804;
|
|
case 331u: goto L_0886580C;
|
|
case 332u: goto L_08865820;
|
|
case 333u: goto L_0886583C;
|
|
case 334u: goto L_08865848;
|
|
case 335u: goto L_08865854;
|
|
case 336u: goto L_0886585C;
|
|
case 337u: goto L_08865864;
|
|
case 338u: goto L_08865880;
|
|
case 339u: goto L_08865898;
|
|
case 340u: goto L_088658A0;
|
|
case 341u: goto L_088658AC;
|
|
case 342u: goto L_088658B0;
|
|
case 343u: goto L_088658B8;
|
|
case 344u: goto L_088658C4;
|
|
case 345u: goto L_088658CC;
|
|
case 346u: goto L_088658D0;
|
|
case 347u: goto L_088658D8;
|
|
case 348u: goto L_088658E4;
|
|
case 349u: goto L_088658FC;
|
|
case 350u: goto L_08865904;
|
|
case 351u: goto L_08865910;
|
|
case 352u: goto L_08865914;
|
|
case 353u: goto L_0886591C;
|
|
case 354u: goto L_08865944;
|
|
case 355u: goto L_08865968;
|
|
case 356u: goto L_08865978;
|
|
case 357u: goto L_08865994;
|
|
case 358u: goto L_088659A0;
|
|
case 359u: goto L_088659A8;
|
|
case 360u: goto L_088659B0;
|
|
case 361u: goto L_088659B8;
|
|
case 362u: goto L_088659C0;
|
|
case 363u: goto L_088659C4;
|
|
case 364u: goto L_088659CC;
|
|
case 365u: goto L_088659F0;
|
|
case 366u: goto L_08865A00;
|
|
case 367u: goto L_08865A1C;
|
|
case 368u: goto L_08865A28;
|
|
case 369u: goto L_08865A34;
|
|
case 370u: goto L_08865A3C;
|
|
case 371u: goto L_08865A44;
|
|
case 372u: goto L_08865A4C;
|
|
case 373u: goto L_08865A54;
|
|
case 374u: goto L_08865A5C;
|
|
case 375u: goto L_08865A60;
|
|
case 376u: goto L_08865A68;
|
|
case 377u: goto L_08865A94;
|
|
case 378u: goto L_08865AA8;
|
|
case 379u: goto L_08865AB0;
|
|
case 380u: goto L_08865AB8;
|
|
case 381u: goto L_08865AC0;
|
|
case 382u: goto L_08865ACC;
|
|
case 383u: goto L_08865AF8;
|
|
case 384u: goto L_08865B0C;
|
|
case 385u: goto L_08865B14;
|
|
case 386u: goto L_08865B1C;
|
|
case 387u: goto L_08865B24;
|
|
case 388u: goto L_08865B30;
|
|
case 389u: goto L_08865B4C;
|
|
case 390u: goto L_08865B58;
|
|
case 391u: goto L_08865B60;
|
|
case 392u: goto L_08865B68;
|
|
case 393u: goto L_08865B6C;
|
|
case 394u: goto L_08865B74;
|
|
case 395u: goto L_08865BA4;
|
|
case 396u: goto L_08865BC8;
|
|
case 397u: goto L_08865BD0;
|
|
case 398u: goto L_08865BD4;
|
|
case 399u: goto L_08865BDC;
|
|
case 400u: goto L_08865BF4;
|
|
case 401u: goto L_08865C0C;
|
|
case 402u: goto L_08865C20;
|
|
case 403u: goto L_08865C44;
|
|
case 404u: goto L_08865C5C;
|
|
case 405u: goto L_08865C60;
|
|
case 406u: goto L_08865C74;
|
|
case 407u: goto L_08865C88;
|
|
case 408u: goto L_08865C90;
|
|
case 409u: goto L_08865C94;
|
|
case 410u: goto L_08865CA0;
|
|
case 411u: goto L_08865CEC;
|
|
case 412u: goto L_08865CFC;
|
|
case 413u: goto L_08865D0C;
|
|
case 414u: goto L_08865D14;
|
|
case 415u: goto L_08865D24;
|
|
case 416u: goto L_08865D2C;
|
|
case 417u: goto L_08865D34;
|
|
case 418u: goto L_08865D3C;
|
|
case 419u: goto L_08865D48;
|
|
case 420u: goto L_08865D4C;
|
|
case 421u: goto L_08865D70;
|
|
case 422u: goto L_08865D78;
|
|
case 423u: goto L_08865D84;
|
|
case 424u: goto L_08865E20;
|
|
case 425u: goto L_08865E30;
|
|
case 426u: goto L_08865E44;
|
|
case 427u: goto L_08865E48;
|
|
case 428u: goto L_08865E68;
|
|
case 429u: goto L_08865E70;
|
|
case 430u: goto L_08865E78;
|
|
case 431u: goto L_08865E88;
|
|
case 432u: goto L_08865E9C;
|
|
case 433u: goto L_08865EA4;
|
|
case 434u: goto L_08865EB4;
|
|
case 435u: goto L_08865EC4;
|
|
case 436u: goto L_08865ECC;
|
|
case 437u: goto L_08865EDC;
|
|
case 438u: goto L_08865EE4;
|
|
case 439u: goto L_08865EEC;
|
|
case 440u: goto L_08865EF4;
|
|
case 441u: goto L_08865EFC;
|
|
case 442u: goto L_08865F00;
|
|
case 443u: goto L_08865F2C;
|
|
case 444u: goto L_08865F34;
|
|
case 445u: goto L_08865F3C;
|
|
case 446u: goto L_08865F40;
|
|
case 447u: goto L_08865FE0;
|
|
case 448u: goto L_08865FF0;
|
|
case 449u: goto L_08866004;
|
|
case 450u: goto L_08866018;
|
|
case 451u: goto L_08866044;
|
|
case 452u: goto L_08866054;
|
|
case 453u: goto L_0886605C;
|
|
case 454u: goto L_08866064;
|
|
case 455u: goto L_0886606C;
|
|
case 456u: goto L_0886607C;
|
|
case 457u: goto L_08866090;
|
|
case 458u: goto L_08866098;
|
|
case 459u: goto L_088660A4;
|
|
case 460u: goto L_088660AC;
|
|
case 461u: goto L_088660BC;
|
|
case 462u: goto L_088660C4;
|
|
case 463u: goto L_088660CC;
|
|
case 464u: goto L_088660D4;
|
|
case 465u: goto L_088660DC;
|
|
case 466u: goto L_088660E0;
|
|
case 467u: goto L_0886610C;
|
|
case 468u: goto L_08866114;
|
|
case 469u: goto L_0886611C;
|
|
case 470u: goto L_08866120;
|
|
case 471u: goto L_088661C0;
|
|
case 472u: goto L_088661D0;
|
|
case 473u: goto L_088661E4;
|
|
case 474u: goto L_088661EC;
|
|
case 475u: goto L_088661FC;
|
|
case 476u: goto L_08866210;
|
|
case 477u: goto L_08866214;
|
|
case 478u: goto L_0886622C;
|
|
case 479u: goto L_08866280;
|
|
case 480u: goto L_08866294;
|
|
case 481u: goto L_0886629C;
|
|
case 482u: goto L_088662A8;
|
|
case 483u: goto L_088662B0;
|
|
case 484u: goto L_088662B8;
|
|
case 485u: goto L_088662C0;
|
|
case 486u: goto L_088662C8;
|
|
case 487u: goto L_088662D0;
|
|
case 488u: goto L_088662D4;
|
|
case 489u: goto L_088662EC;
|
|
case 490u: goto L_08866300;
|
|
case 491u: goto L_08866318;
|
|
case 492u: goto L_08866324;
|
|
case 493u: goto L_0886633C;
|
|
case 494u: goto L_0886634C;
|
|
case 495u: goto L_08866364;
|
|
case 496u: goto L_08866374;
|
|
case 497u: goto L_0886638C;
|
|
case 498u: goto L_08866390;
|
|
case 499u: goto L_088663A4;
|
|
case 500u: goto L_088663B0;
|
|
case 501u: goto L_088663CC;
|
|
case 502u: goto L_088663E0;
|
|
case 503u: goto L_088663EC;
|
|
case 504u: goto L_08866408;
|
|
case 505u: goto L_0886641C;
|
|
case 506u: goto L_08866428;
|
|
case 507u: goto L_08866444;
|
|
case 508u: goto L_08866458;
|
|
case 509u: goto L_08866464;
|
|
case 510u: goto L_08866480;
|
|
case 511u: goto L_08866494;
|
|
case 512u: goto L_088664A4;
|
|
case 513u: goto L_088664AC;
|
|
case 514u: goto L_088664B4;
|
|
case 515u: goto L_088664E8;
|
|
case 516u: goto L_08866510;
|
|
case 517u: goto L_08866524;
|
|
case 518u: goto L_0886658C;
|
|
case 519u: goto L_088665A0;
|
|
case 520u: goto L_088665A8;
|
|
case 521u: goto L_088665B0;
|
|
case 522u: goto L_08866640;
|
|
case 523u: goto L_088666D8;
|
|
case 524u: goto L_088666F8;
|
|
case 525u: goto L_08866760;
|
|
case 526u: goto L_08866784;
|
|
case 527u: goto L_0886685C;
|
|
case 528u: goto L_08866894;
|
|
case 529u: goto L_08866940;
|
|
case 530u: goto L_08866948;
|
|
case 531u: goto L_088669F4;
|
|
case 532u: goto L_08866A60;
|
|
case 533u: goto L_08866AB0;
|
|
case 534u: goto L_08866AB8;
|
|
case 535u: goto L_08866AC8;
|
|
case 536u: goto L_08866C18;
|
|
case 537u: goto L_08866C20;
|
|
case 538u: goto L_08866C28;
|
|
case 539u: goto L_08866C38;
|
|
case 540u: goto L_08866D8C;
|
|
case 541u: goto L_08866D94;
|
|
case 542u: goto L_08866DAC;
|
|
case 543u: goto L_08866DB4;
|
|
case 544u: goto L_08866DBC;
|
|
case 545u: goto L_08866DC4;
|
|
case 546u: goto L_08866DCC;
|
|
case 547u: goto L_08866DD4;
|
|
case 548u: goto L_08866DDC;
|
|
case 549u: goto L_08866DF4;
|
|
case 550u: goto L_08866E10;
|
|
case 551u: goto L_08866E14;
|
|
case 552u: goto L_08866E4C;
|
|
case 553u: goto L_08866E64;
|
|
case 554u: goto L_08866E80;
|
|
case 555u: goto L_08866E84;
|
|
case 556u: goto L_08866EBC;
|
|
case 557u: goto L_08866ED4;
|
|
case 558u: goto L_08866EEC;
|
|
case 559u: goto L_08866EF0;
|
|
case 560u: goto L_08866F28;
|
|
case 561u: goto L_08866F34;
|
|
case 562u: goto L_08866F50;
|
|
case 563u: goto L_08866F88;
|
|
case 564u: goto L_08866FE0;
|
|
case 565u: goto L_08867000;
|
|
case 566u: goto L_08867068;
|
|
case 567u: goto L_0886708C;
|
|
case 568u: goto L_08867164;
|
|
case 569u: goto L_0886719C;
|
|
case 570u: goto L_08867244;
|
|
case 571u: goto L_0886724C;
|
|
case 572u: goto L_08867264;
|
|
case 573u: goto L_0886727C;
|
|
case 574u: goto L_08867294;
|
|
case 575u: goto L_0886729C;
|
|
case 576u: goto L_088672A4;
|
|
case 577u: goto L_088672AC;
|
|
case 578u: goto L_088672B4;
|
|
case 579u: goto L_088672BC;
|
|
case 580u: goto L_088672C4;
|
|
case 581u: goto L_088672DC;
|
|
case 582u: goto L_088672F8;
|
|
case 583u: goto L_088672FC;
|
|
case 584u: goto L_08867338;
|
|
case 585u: goto L_08867354;
|
|
case 586u: goto L_0886738C;
|
|
case 587u: goto L_088673A4;
|
|
case 588u: goto L_088673C0;
|
|
case 589u: goto L_088673C4;
|
|
case 590u: goto L_08867400;
|
|
case 591u: goto L_0886741C;
|
|
case 592u: goto L_08867454;
|
|
case 593u: goto L_0886746C;
|
|
case 594u: goto L_08867484;
|
|
case 595u: goto L_08867488;
|
|
case 596u: goto L_088674C4;
|
|
case 597u: goto L_088674E0;
|
|
case 598u: goto L_08867518;
|
|
case 599u: goto L_08867524;
|
|
case 600u: goto L_08867540;
|
|
case 601u: goto L_0886757C;
|
|
case 602u: goto L_08867598;
|
|
case 603u: goto L_088675D0;
|
|
case 604u: goto L_088675D8;
|
|
case 605u: goto L_088675E0;
|
|
case 606u: goto L_088675E8;
|
|
case 607u: goto L_088675F0;
|
|
case 608u: goto L_088675F8;
|
|
case 609u: goto L_08867600;
|
|
case 610u: goto L_08867618;
|
|
case 611u: goto L_08867634;
|
|
case 612u: goto L_08867638;
|
|
case 613u: goto L_08867674;
|
|
case 614u: goto L_08867690;
|
|
case 615u: goto L_088676C8;
|
|
case 616u: goto L_088676E0;
|
|
case 617u: goto L_088676FC;
|
|
case 618u: goto L_08867700;
|
|
case 619u: goto L_0886773C;
|
|
case 620u: goto L_08867758;
|
|
case 621u: goto L_08867790;
|
|
case 622u: goto L_088677A8;
|
|
case 623u: goto L_088677C0;
|
|
case 624u: goto L_088677C4;
|
|
case 625u: goto L_08867800;
|
|
case 626u: goto L_0886781C;
|
|
case 627u: goto L_08867854;
|
|
case 628u: goto L_08867860;
|
|
case 629u: goto L_0886787C;
|
|
case 630u: goto L_088678B8;
|
|
case 631u: goto L_088678D4;
|
|
case 632u: goto L_0886790C;
|
|
case 633u: goto L_08867960;
|
|
case 634u: goto L_088679D0;
|
|
case 635u: goto L_08867A1C;
|
|
case 636u: goto L_08867A20;
|
|
case 637u: goto L_08867A40;
|
|
case 638u: goto L_08867AA8;
|
|
case 639u: goto L_08867ACC;
|
|
case 640u: goto L_08867BA4;
|
|
case 641u: goto L_08867BAC;
|
|
case 642u: goto L_08867BE4;
|
|
case 643u: goto L_08867C90;
|
|
case 644u: goto L_08867C98;
|
|
case 645u: goto L_08867D40;
|
|
case 646u: goto L_08867D7C;
|
|
case 647u: goto L_08867E10;
|
|
case 648u: goto L_08867E18;
|
|
case 649u: goto L_08867E20;
|
|
case 650u: goto L_08867E44;
|
|
case 651u: goto L_08867E50;
|
|
case 652u: goto L_08867E58;
|
|
case 653u: goto L_08867E68;
|
|
case 654u: goto L_08867E74;
|
|
case 655u: goto L_08867E80;
|
|
case 656u: goto L_08867ECC;
|
|
case 657u: goto L_08867EE8;
|
|
case 658u: goto L_08867F64;
|
|
case 659u: goto L_08867F90;
|
|
case 660u: goto L_08867FA0;
|
|
case 661u: goto L_08867FB0;
|
|
case 662u: goto L_08867FB8;
|
|
case 663u: goto L_08867FE0;
|
|
default:
|
|
if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry");
|
|
else ctx.pc = local_pc;
|
|
return;
|
|
}
|
|
}
|
|
L_08864004:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(-25852), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08864014;
|
|
}
|
|
goto L_08864010;
|
|
}
|
|
L_08864010:
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(-25852), static_cast<std::uint8_t>(0u));
|
|
goto L_08864014;
|
|
L_08864014:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_0886401C;
|
|
}
|
|
L_0886401C:
|
|
ctx.gpr[16] = (2269u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[17] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
ctx.gpr[31] = (0x08864034u);
|
|
ctx.gpr[7] = (ctx.gpr[16] + static_cast<std::uint32_t>(-2992));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 387u, 0x08961C7Cu>(ctx, &aot_mem) && ctx.pc == 0x08864034u) goto L_08864034;
|
|
return;
|
|
L_08864034:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(-2992)));
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-8107));
|
|
ctx.gpr[31] = (0x08864048u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
goto L_08864B98;
|
|
L_08864048:
|
|
ctx.gpr[4] = (0u < ctx.gpr[2] ? 1u : 0u);
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(534)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
ctx.gpr[5] = (0u < ctx.gpr[5] ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(532)));
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08864074;
|
|
}
|
|
goto L_0886406C;
|
|
}
|
|
L_0886406C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(525), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_088640C4;
|
|
}
|
|
goto L_08864074;
|
|
}
|
|
L_08864074:
|
|
ctx.gpr[5] = (ctx.gpr[17] + static_cast<std::uint32_t>(532));
|
|
ctx.gpr[6] = (aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (ctx.gpr[6] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[6]) < 9 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_mem.aot_store16(ctx.gpr[5] + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[7]));
|
|
if (branch_taken) {
|
|
goto L_088640A0;
|
|
}
|
|
goto L_0886408C;
|
|
}
|
|
L_0886408C:
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(525)));
|
|
ctx.gpr[5] = (0u < ctx.gpr[5] ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(525), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_088640C4;
|
|
}
|
|
goto L_088640A0;
|
|
}
|
|
L_088640A0:
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(525)));
|
|
ctx.gpr[6] = (aot_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(532)));
|
|
ctx.gpr[5] = (0u < ctx.gpr[5] ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | ctx.gpr[5]);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(525), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[6]) < 21 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088640C4;
|
|
}
|
|
goto L_088640C0;
|
|
}
|
|
L_088640C0:
|
|
aot_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(532), static_cast<std::uint16_t>(0u));
|
|
goto L_088640C4;
|
|
L_088640C4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_088640CC;
|
|
}
|
|
L_088640CC:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[16] = (2269u << 16u);
|
|
ctx.gpr[17] = (ctx.gpr[16] + static_cast<std::uint32_t>(-2992));
|
|
ctx.gpr[6] = (0u | 3u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x088640E8u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(24));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 387u, 0x08961C7Cu>(ctx, &aot_mem) && ctx.pc == 0x088640E8u) goto L_088640E8;
|
|
return;
|
|
L_088640E8:
|
|
ctx.gpr[4] = (2228u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(-24904)));
|
|
if (ctx.gpr[5] == 0u) {
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(-2992)));
|
|
goto L_08864108;
|
|
}
|
|
goto L_088640F8;
|
|
L_088640F8:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886412C;
|
|
}
|
|
goto L_08864104;
|
|
}
|
|
L_08864104:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(-2992)));
|
|
goto L_08864108;
|
|
L_08864108:
|
|
ctx.gpr[6] = (2228u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store8(ctx.gpr[6] + static_cast<std::uint32_t>(-24907), static_cast<std::uint8_t>(ctx.gpr[5]));
|
|
ctx.gpr[5] = (2228u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(-24906), static_cast<std::uint8_t>(ctx.gpr[7]));
|
|
aot_mem.aot_store16(ctx.gpr[4] + static_cast<std::uint32_t>(-24904), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
ctx.gpr[4] = (2228u << 16u);
|
|
aot_mem.aot_store8(ctx.gpr[4] + static_cast<std::uint32_t>(-24902), static_cast<std::uint8_t>(0u));
|
|
goto L_0886412C;
|
|
L_0886412C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_08864134;
|
|
}
|
|
L_08864134:
|
|
ctx.gpr[5] = (ctx.gpr[17] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[16] = (2269u << 16u);
|
|
ctx.gpr[18] = (ctx.gpr[16] + static_cast<std::uint32_t>(-2992));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[6] = (0u | 3u);
|
|
ctx.gpr[31] = (0x08864150u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 387u, 0x08961C7Cu>(ctx, &aot_mem) && ctx.pc == 0x08864150u) goto L_08864150;
|
|
return;
|
|
L_08864150:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(-2992)));
|
|
ctx.gpr[4] = (2269u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(-2864), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-2864));
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_08864198;
|
|
}
|
|
L_08864198:
|
|
ctx.gpr[18] = (2269u << 16u);
|
|
ctx.gpr[16] = (ctx.gpr[18] + static_cast<std::uint32_t>(-2992));
|
|
ctx.gpr[5] = (ctx.gpr[17] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
ctx.gpr[31] = (0x088641B4u);
|
|
ctx.gpr[7] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 387u, 0x08961C7Cu>(ctx, &aot_mem) && ctx.pc == 0x088641B4u) goto L_088641B4;
|
|
return;
|
|
L_088641B4:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-2992)));
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
ctx.gpr[31] = (0x088641C4u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-15316)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0189_entry, 189u, 840u, 0x08AFBA58u>(ctx, &aot_mem) && ctx.pc == 0x088641C4u) goto L_088641C4;
|
|
return;
|
|
L_088641C4:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[17] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[4] = (0u + static_cast<std::uint32_t>(-257));
|
|
if (branch_taken) {
|
|
goto L_088641F4;
|
|
}
|
|
goto L_088641D4;
|
|
}
|
|
L_088641D4:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(420)));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
ctx.gpr[5] = (ctx.gpr[6] & 1u);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(420), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08864200;
|
|
}
|
|
goto L_088641F4;
|
|
}
|
|
L_088641F4:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(420)));
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(420), ctx.gpr[4]);
|
|
goto L_08864200;
|
|
L_08864200:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_08864208;
|
|
}
|
|
L_08864208:
|
|
ctx.gpr[19] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
goto L_08864244;
|
|
}
|
|
goto L_08864218;
|
|
L_08864218:
|
|
ctx.gpr[16] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08864224u);
|
|
ctx.gpr[4] = (0u | 2452u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0167_entry, 167u, 663u, 0x08AA3190u>(ctx, &aot_mem) && ctx.pc == 0x08864224u) goto L_08864224;
|
|
return;
|
|
L_08864224:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886423C;
|
|
}
|
|
goto L_08864230;
|
|
}
|
|
L_08864230:
|
|
ctx.gpr[31] = (0x08864238u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 395u, 0x089139BCu>(ctx, &aot_mem) && ctx.pc == 0x08864238u) goto L_08864238;
|
|
return;
|
|
L_08864238:
|
|
ctx.gpr[16] = (ctx.gpr[18] | 0u);
|
|
goto L_0886423C;
|
|
L_0886423C:
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(24444), ctx.gpr[16]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
goto L_08864244;
|
|
L_08864244:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[6] = (2228u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-29572)));
|
|
ctx.gpr[31] = (0x08864258u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 415u, 0x08913B70u>(ctx, &aot_mem) && ctx.pc == 0x08864258u) goto L_08864258;
|
|
return;
|
|
L_08864258:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(24), ctx.gpr[5]);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08864278u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0096_entry, 96u, 440u, 0x08986B94u>(ctx, &aot_mem) && ctx.pc == 0x08864278u) goto L_08864278;
|
|
return;
|
|
L_08864278:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_08864280;
|
|
}
|
|
L_08864280:
|
|
ctx.gpr[19] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
goto L_088642BC;
|
|
}
|
|
goto L_08864290;
|
|
L_08864290:
|
|
ctx.gpr[16] = (0u | 0u);
|
|
ctx.gpr[31] = (0x0886429Cu);
|
|
ctx.gpr[4] = (0u | 2452u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0167_entry, 167u, 663u, 0x08AA3190u>(ctx, &aot_mem) && ctx.pc == 0x0886429Cu) goto L_0886429C;
|
|
return;
|
|
L_0886429C:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088642B4;
|
|
}
|
|
goto L_088642A8;
|
|
}
|
|
L_088642A8:
|
|
ctx.gpr[31] = (0x088642B0u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 395u, 0x089139BCu>(ctx, &aot_mem) && ctx.pc == 0x088642B0u) goto L_088642B0;
|
|
return;
|
|
L_088642B0:
|
|
ctx.gpr[16] = (ctx.gpr[18] | 0u);
|
|
goto L_088642B4;
|
|
L_088642B4:
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(24444), ctx.gpr[16]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
goto L_088642BC;
|
|
L_088642BC:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[6] = (2228u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-29572)));
|
|
ctx.gpr[31] = (0x088642D0u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 415u, 0x08913B70u>(ctx, &aot_mem) && ctx.pc == 0x088642D0u) goto L_088642D0;
|
|
return;
|
|
L_088642D0:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(24), ctx.gpr[5]);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
ctx.gpr[31] = (0x088642F0u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0096_entry, 96u, 440u, 0x08986B94u>(ctx, &aot_mem) && ctx.pc == 0x088642F0u) goto L_088642F0;
|
|
return;
|
|
L_088642F0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_088642F8;
|
|
}
|
|
L_088642F8:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(-7376), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[19] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
goto L_08864340;
|
|
}
|
|
goto L_08864314;
|
|
L_08864314:
|
|
ctx.gpr[16] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08864320u);
|
|
ctx.gpr[4] = (0u | 2452u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0167_entry, 167u, 663u, 0x08AA3190u>(ctx, &aot_mem) && ctx.pc == 0x08864320u) goto L_08864320;
|
|
return;
|
|
L_08864320:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864338;
|
|
}
|
|
goto L_0886432C;
|
|
}
|
|
L_0886432C:
|
|
ctx.gpr[31] = (0x08864334u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 395u, 0x089139BCu>(ctx, &aot_mem) && ctx.pc == 0x08864334u) goto L_08864334;
|
|
return;
|
|
L_08864334:
|
|
ctx.gpr[16] = (ctx.gpr[18] | 0u);
|
|
goto L_08864338;
|
|
L_08864338:
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(24444), ctx.gpr[16]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(24444)));
|
|
goto L_08864340;
|
|
L_08864340:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[6] = (2228u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-29572)));
|
|
ctx.gpr[31] = (0x08864354u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 415u, 0x08913B70u>(ctx, &aot_mem) && ctx.pc == 0x08864354u) goto L_08864354;
|
|
return;
|
|
L_08864354:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(24), ctx.gpr[5]);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08864374u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0096_entry, 96u, 440u, 0x08986B94u>(ctx, &aot_mem) && ctx.pc == 0x08864374u) goto L_08864374;
|
|
return;
|
|
L_08864374:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_0886437C;
|
|
}
|
|
L_0886437C:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(-7376), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[16] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(24444)));
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(24444)));
|
|
goto L_088643C4;
|
|
}
|
|
goto L_08864398;
|
|
L_08864398:
|
|
ctx.gpr[18] = (0u | 0u);
|
|
ctx.gpr[31] = (0x088643A4u);
|
|
ctx.gpr[4] = (0u | 2452u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0167_entry, 167u, 663u, 0x08AA3190u>(ctx, &aot_mem) && ctx.pc == 0x088643A4u) goto L_088643A4;
|
|
return;
|
|
L_088643A4:
|
|
ctx.gpr[19] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088643BC;
|
|
}
|
|
goto L_088643B0;
|
|
}
|
|
L_088643B0:
|
|
ctx.gpr[31] = (0x088643B8u);
|
|
ctx.gpr[4] = (ctx.gpr[19] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 395u, 0x089139BCu>(ctx, &aot_mem) && ctx.pc == 0x088643B8u) goto L_088643B8;
|
|
return;
|
|
L_088643B8:
|
|
ctx.gpr[18] = (ctx.gpr[19] | 0u);
|
|
goto L_088643BC;
|
|
L_088643BC:
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(24444), ctx.gpr[18]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(24444)));
|
|
goto L_088643C4;
|
|
L_088643C4:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[6] = (2228u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-29572)));
|
|
ctx.gpr[31] = (0x088643D8u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0067_entry, 67u, 415u, 0x08913B70u>(ctx, &aot_mem) && ctx.pc == 0x088643D8u) goto L_088643D8;
|
|
return;
|
|
L_088643D8:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(8));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(24), ctx.gpr[5]);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
ctx.gpr[31] = (0x088643F8u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0096_entry, 96u, 440u, 0x08986B94u>(ctx, &aot_mem) && ctx.pc == 0x088643F8u) goto L_088643F8;
|
|
return;
|
|
L_088643F8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_08864400;
|
|
}
|
|
L_08864400:
|
|
ctx.gpr[16] = (2269u << 16u);
|
|
ctx.gpr[18] = (ctx.gpr[16] + static_cast<std::uint32_t>(-2992));
|
|
ctx.gpr[5] = (ctx.gpr[17] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
ctx.gpr[31] = (0x0886441Cu);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 387u, 0x08961C7Cu>(ctx, &aot_mem) && ctx.pc == 0x0886441Cu) goto L_0886441C;
|
|
return;
|
|
L_0886441C:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(-2992)));
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
ctx.gpr[31] = (0x0886442Cu);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-15312)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0189_entry, 189u, 836u, 0x08AFBA04u>(ctx, &aot_mem) && ctx.pc == 0x0886442Cu) goto L_0886442C;
|
|
return;
|
|
L_0886442C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[17] = (ctx.gpr[2] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864448;
|
|
}
|
|
goto L_08864438;
|
|
}
|
|
L_08864438:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(603))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 64u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(603), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08864458;
|
|
}
|
|
goto L_08864448;
|
|
}
|
|
L_08864448:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(603))))));
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-65));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(603), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08864458;
|
|
L_08864458:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_08864460;
|
|
}
|
|
L_08864460:
|
|
ctx.gpr[18] = (2269u << 16u);
|
|
ctx.gpr[16] = (ctx.gpr[18] + static_cast<std::uint32_t>(-2992));
|
|
ctx.gpr[5] = (ctx.gpr[17] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
ctx.gpr[31] = (0x0886447Cu);
|
|
ctx.gpr[7] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 387u, 0x08961C7Cu>(ctx, &aot_mem) && ctx.pc == 0x0886447Cu) goto L_0886447C;
|
|
return;
|
|
L_0886447C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-2992)));
|
|
ctx.gpr[5] = (ctx.gpr[4] << 7u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 4u);
|
|
ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]);
|
|
ctx.gpr[5] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-26096));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864578;
|
|
}
|
|
goto L_088644AC;
|
|
}
|
|
L_088644AC:
|
|
ctx.gpr[18] = (2229u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-15316)));
|
|
ctx.gpr[19] = (0u | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[22] = (0u | 15u);
|
|
if (branch_taken) {
|
|
goto L_08864578;
|
|
}
|
|
goto L_088644C8;
|
|
}
|
|
L_088644C8:
|
|
ctx.gpr[23] = (0u + static_cast<std::uint32_t>(-2));
|
|
ctx.gpr[20] = (0u | 0u);
|
|
goto L_088644D0;
|
|
L_088644D0:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-15316)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[19]);
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 128u);
|
|
if (ctx.gpr[4] == 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-15316)));
|
|
goto L_088644F4;
|
|
}
|
|
goto L_088644EC;
|
|
L_088644EC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_088644FC;
|
|
}
|
|
goto L_088644F4;
|
|
}
|
|
L_088644F4:
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[21] = (ctx.gpr[21] + ctx.gpr[20]);
|
|
goto L_088644FC;
|
|
L_088644FC:
|
|
{ const bool branch_taken = ctx.gpr[21] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864560;
|
|
}
|
|
goto L_08864504;
|
|
}
|
|
L_08864504:
|
|
ctx.gpr[31] = (0x0886450Cu);
|
|
ctx.gpr[4] = (ctx.gpr[21] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0102_entry, 102u, 153u, 0x0899D3B0u>(ctx, &aot_mem) && ctx.pc == 0x0886450Cu) goto L_0886450C;
|
|
return;
|
|
L_0886450C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864560;
|
|
}
|
|
goto L_08864514;
|
|
}
|
|
L_08864514:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[21] + static_cast<std::uint32_t>(628)));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[17];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864538;
|
|
}
|
|
goto L_08864520;
|
|
}
|
|
L_08864520:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[21] + static_cast<std::uint32_t>(600)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[17];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864560;
|
|
}
|
|
goto L_0886452C;
|
|
}
|
|
L_0886452C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[21] + static_cast<std::uint32_t>(592)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[22];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864560;
|
|
}
|
|
goto L_08864538;
|
|
}
|
|
L_08864538:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864554;
|
|
}
|
|
goto L_08864544;
|
|
}
|
|
L_08864544:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[21] + static_cast<std::uint32_t>(323))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 1u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[21] + static_cast<std::uint32_t>(323), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08864560;
|
|
}
|
|
goto L_08864554;
|
|
}
|
|
L_08864554:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[21] + static_cast<std::uint32_t>(323))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[23]);
|
|
aot_mem.aot_store8(ctx.gpr[21] + static_cast<std::uint32_t>(323), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08864560;
|
|
L_08864560:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-15316)));
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(3248));
|
|
if (branch_taken) {
|
|
goto L_088644D0;
|
|
}
|
|
goto L_08864578;
|
|
}
|
|
L_08864578:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864584;
|
|
}
|
|
goto L_08864580;
|
|
}
|
|
L_08864580:
|
|
ctx.gpr[2] = (0u + static_cast<std::uint32_t>(-1));
|
|
goto L_08864584;
|
|
L_08864584:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(196)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(200)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(204)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(212)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(216)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(220)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(224)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(228)));
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(232)));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(240)));
|
|
ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(244)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(248)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(256));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088645C4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(5156)));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = ctx.fpr[13] / ctx.fpr[12];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[17];
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.gpr[4] = (17096u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(5152)));
|
|
ctx.gpr[2] = (2227u << 16u);
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[2] + static_cast<std::uint32_t>(5160), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[7] = (2227u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(5180)));
|
|
ctx.gpr[3] = (2227u << 16u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[15] = ctx.fpr[16] / ctx.fpr[15];
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(5192)));
|
|
ctx.fpr[18] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[3] + static_cast<std::uint32_t>(5188)));
|
|
ctx.gpr[24] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
ctx.gpr[5] = (16014u << 16u);
|
|
ctx.gpr[16] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[24] + static_cast<std::uint32_t>(5196), std::bit_cast<std::uint32_t>(ctx.fpr[18]));
|
|
ctx.gpr[5] = (ctx.gpr[5] | 14571u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(5204), std::bit_cast<std::uint32_t>(ctx.fpr[18]));
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[12] = ctx.fpr[18] / ctx.fpr[12];
|
|
ctx.gpr[13] = (2227u << 16u);
|
|
ctx.gpr[12] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[13] + static_cast<std::uint32_t>(5168), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[10] = (16672u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[12] + static_cast<std::uint32_t>(5164), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.gpr[11] = (15744u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[10]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[11]);
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[19]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.gpr[14] = (2227u << 16u);
|
|
ctx.gpr[8] = (16281u << 16u);
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[14] + static_cast<std::uint32_t>(5172), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[9] = (16268u << 16u);
|
|
ctx.gpr[15] = (2227u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[8] | 39322u);
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(5176), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[6]);
|
|
ctx.gpr[7] = (ctx.gpr[9] | 52429u);
|
|
aot_mem.aot_store32(ctx.gpr[15] + static_cast<std::uint32_t>(5184), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[7]);
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.gpr[25] = (2227u << 16u);
|
|
ctx.gpr[2] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[25] + static_cast<std::uint32_t>(5200), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[2] + static_cast<std::uint32_t>(5208), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088646B8:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088646CCu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 703u, 0x08A9A53Cu>(ctx, &aot_mem) && ctx.pc == 0x088646CCu) goto L_088646CC;
|
|
return;
|
|
L_088646CC:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088646D8:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088646ECu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 712u, 0x08A9A5B8u>(ctx, &aot_mem) && ctx.pc == 0x088646ECu) goto L_088646EC;
|
|
return;
|
|
L_088646EC:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088646F8:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x0886470Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 725u, 0x08A9A694u>(ctx, &aot_mem) && ctx.pc == 0x0886470Cu) goto L_0886470C;
|
|
return;
|
|
L_0886470C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864718:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x0886472Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 735u, 0x08A9A744u>(ctx, &aot_mem) && ctx.pc == 0x0886472Cu) goto L_0886472C;
|
|
return;
|
|
L_0886472C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864738:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x0886474Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 749u, 0x08A9A80Cu>(ctx, &aot_mem) && ctx.pc == 0x0886474Cu) goto L_0886474C;
|
|
return;
|
|
L_0886474C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864758:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864770u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 761u, 0x08A9A8E8u>(ctx, &aot_mem) && ctx.pc == 0x08864770u) goto L_08864770;
|
|
return;
|
|
L_08864770:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886477C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 65535u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864794u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 961u, 0x08A9B8F8u>(ctx, &aot_mem) && ctx.pc == 0x08864794u) goto L_08864794;
|
|
return;
|
|
L_08864794:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088647A0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088647B4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 788u, 0x08A9AA50u>(ctx, &aot_mem) && ctx.pc == 0x088647B4u) goto L_088647B4;
|
|
return;
|
|
L_088647B4:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088647C0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 128 ? 1u : 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088647DC;
|
|
}
|
|
goto L_088647D8;
|
|
}
|
|
L_088647D8:
|
|
ctx.gpr[4] = (0u | 127u);
|
|
goto L_088647DC;
|
|
L_088647DC:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x088647ECu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 798u, 0x08A9AAF0u>(ctx, &aot_mem) && ctx.pc == 0x088647ECu) goto L_088647EC;
|
|
return;
|
|
L_088647EC:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088647F8:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 128 ? 1u : 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864814;
|
|
}
|
|
goto L_08864810;
|
|
}
|
|
L_08864810:
|
|
ctx.gpr[4] = (0u | 127u);
|
|
goto L_08864814;
|
|
L_08864814:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x08864824u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 800u, 0x08A9AB14u>(ctx, &aot_mem) && ctx.pc == 0x08864824u) goto L_08864824;
|
|
return;
|
|
L_08864824:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864830:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 128 ? 1u : 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886484C;
|
|
}
|
|
goto L_08864848;
|
|
}
|
|
L_08864848:
|
|
ctx.gpr[4] = (0u | 127u);
|
|
goto L_0886484C;
|
|
L_0886484C:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x0886485Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 802u, 0x08A9AB38u>(ctx, &aot_mem) && ctx.pc == 0x0886485Cu) goto L_0886485C;
|
|
return;
|
|
L_0886485C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864868:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 128 ? 1u : 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864884;
|
|
}
|
|
goto L_08864880;
|
|
}
|
|
L_08864880:
|
|
ctx.gpr[4] = (0u | 127u);
|
|
goto L_08864884;
|
|
L_08864884:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x08864894u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 804u, 0x08A9AB5Cu>(ctx, &aot_mem) && ctx.pc == 0x08864894u) goto L_08864894;
|
|
return;
|
|
L_08864894:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088648A0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088648B4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0015_entry, 15u, 386u, 0x08842A40u>(ctx, &aot_mem) && ctx.pc == 0x088648B4u) goto L_088648B4;
|
|
return;
|
|
L_088648B4:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088648C0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
ctx.gpr[17] = (2233u << 16u);
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(10384));
|
|
ctx.gpr[6] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088648E8u);
|
|
ctx.gpr[5] = (0u | 4u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 735u, 0x08A9A744u>(ctx, &aot_mem) && ctx.pc == 0x088648E8u) goto L_088648E8;
|
|
return;
|
|
L_088648E8:
|
|
ctx.gpr[16] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[16]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864904;
|
|
}
|
|
goto L_088648F4;
|
|
}
|
|
L_088648F4:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08864904u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 761u, 0x08A9A8E8u>(ctx, &aot_mem) && ctx.pc == 0x08864904u) goto L_08864904;
|
|
return;
|
|
L_08864904:
|
|
ctx.gpr[2] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886491C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864930u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 749u, 0x08A9A80Cu>(ctx, &aot_mem) && ctx.pc == 0x08864930u) goto L_08864930;
|
|
return;
|
|
L_08864930:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886493C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[18]);
|
|
ctx.gpr[18] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[18] = (ctx.gpr[18] + static_cast<std::uint32_t>(10384));
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[5] = (0u | 4u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x0886496Cu);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 735u, 0x08A9A744u>(ctx, &aot_mem) && ctx.pc == 0x0886496Cu) goto L_0886496C;
|
|
return;
|
|
L_0886496C:
|
|
ctx.gpr[17] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[17]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886499C;
|
|
}
|
|
goto L_08864978;
|
|
}
|
|
L_08864978:
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08864988u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 761u, 0x08A9A8E8u>(ctx, &aot_mem) && ctx.pc == 0x08864988u) goto L_08864988;
|
|
return;
|
|
L_08864988:
|
|
ctx.gpr[6] = (aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x0886499Cu);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 961u, 0x08A9B8F8u>(ctx, &aot_mem) && ctx.pc == 0x0886499Cu) goto L_0886499C;
|
|
return;
|
|
L_0886499C:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(28)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088649B4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088649C8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0015_entry, 15u, 418u, 0x08842C60u>(ctx, &aot_mem) && ctx.pc == 0x088649C8u) goto L_088649C8;
|
|
return;
|
|
L_088649C8:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088649D4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-48));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
ctx.gpr[8] = (ctx.gpr[8] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088649F0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0172_entry, 172u, 296u, 0x08AB5FBCu>(ctx, &aot_mem) && ctx.pc == 0x088649F0u) goto L_088649F0;
|
|
return;
|
|
L_088649F0:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088649FC:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[6]);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 65535u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) >= 0;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (branch_taken) {
|
|
goto L_08864A28;
|
|
}
|
|
goto L_08864A1C;
|
|
}
|
|
L_08864A1C:
|
|
ctx.gpr[6] = (20352u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[6]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
goto L_08864A28;
|
|
L_08864A28:
|
|
ctx.gpr[6] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[31] = (0x08864A34u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(19952)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 961u, 0x08A9B8F8u>(ctx, &aot_mem) && ctx.pc == 0x08864A34u) goto L_08864A34;
|
|
return;
|
|
L_08864A34:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864A40:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864A58u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 487u, 0x088BA978u>(ctx, &aot_mem) && ctx.pc == 0x08864A58u) goto L_08864A58;
|
|
return;
|
|
L_08864A58:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864A64:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864A84u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 530u, 0x088BABA0u>(ctx, &aot_mem) && ctx.pc == 0x08864A84u) goto L_08864A84;
|
|
return;
|
|
L_08864A84:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864A90:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864AA4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 553u, 0x088BACB4u>(ctx, &aot_mem) && ctx.pc == 0x08864AA4u) goto L_08864AA4;
|
|
return;
|
|
L_08864AA4:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864AB0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864AC4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 767u, 0x08A9A92Cu>(ctx, &aot_mem) && ctx.pc == 0x08864AC4u) goto L_08864AC4;
|
|
return;
|
|
L_08864AC4:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864AD0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864AE8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 461u, 0x088BA804u>(ctx, &aot_mem) && ctx.pc == 0x08864AE8u) goto L_08864AE8;
|
|
return;
|
|
L_08864AE8:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864AF4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864B0Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 492u, 0x088BA9A8u>(ctx, &aot_mem) && ctx.pc == 0x08864B0Cu) goto L_08864B0C;
|
|
return;
|
|
L_08864B0C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864B18:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864B2Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 509u, 0x088BAA84u>(ctx, &aot_mem) && ctx.pc == 0x08864B2Cu) goto L_08864B2C;
|
|
return;
|
|
L_08864B2C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864B38:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864B4Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 517u, 0x088BAB0Cu>(ctx, &aot_mem) && ctx.pc == 0x08864B4Cu) goto L_08864B4C;
|
|
return;
|
|
L_08864B4C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864B58:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864B6Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 558u, 0x088BACECu>(ctx, &aot_mem) && ctx.pc == 0x08864B6Cu) goto L_08864B6C;
|
|
return;
|
|
L_08864B6C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864B78:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864B8Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 559u, 0x088BACF4u>(ctx, &aot_mem) && ctx.pc == 0x08864B8Cu) goto L_08864B8C;
|
|
return;
|
|
L_08864B8C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864B98:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864BB0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 669u, 0x088BB2ACu>(ctx, &aot_mem) && ctx.pc == 0x08864BB0u) goto L_08864BB0;
|
|
return;
|
|
L_08864BB0:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864BBC:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(17332)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[7] != 0u;
|
|
ctx.gpr[4] = (ctx.gpr[6] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864BE8;
|
|
}
|
|
goto L_08864BD8;
|
|
}
|
|
L_08864BD8:
|
|
ctx.gpr[6] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x08864BE8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 249u, 0x08A6D164u>(ctx, &aot_mem) && ctx.pc == 0x08864BE8u) goto L_08864BE8;
|
|
return;
|
|
L_08864BE8:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864BF4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(17332)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864C28;
|
|
}
|
|
goto L_08864C10;
|
|
}
|
|
L_08864C10:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x08864C20u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 257u, 0x08A6D27Cu>(ctx, &aot_mem) && ctx.pc == 0x08864C20u) goto L_08864C20;
|
|
return;
|
|
L_08864C20:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864C2C;
|
|
}
|
|
goto L_08864C28;
|
|
}
|
|
L_08864C28:
|
|
ctx.gpr[2] = (0u | 1u);
|
|
goto L_08864C2C;
|
|
L_08864C2C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864C38:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-48));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(17332)));
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
if (branch_taken) {
|
|
goto L_08864C78;
|
|
}
|
|
goto L_08864C5C;
|
|
}
|
|
L_08864C5C:
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
ctx.gpr[31] = (0x08864C78u);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 263u, 0x08A6D2D8u>(ctx, &aot_mem) && ctx.pc == 0x08864C78u) goto L_08864C78;
|
|
return;
|
|
L_08864C78:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864C84:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(17332)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864CB0;
|
|
}
|
|
goto L_08864CA0;
|
|
}
|
|
L_08864CA0:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x08864CB0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 267u, 0x08A6D314u>(ctx, &aot_mem) && ctx.pc == 0x08864CB0u) goto L_08864CB0;
|
|
return;
|
|
L_08864CB0:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864CBC:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(17332)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864CF0;
|
|
}
|
|
goto L_08864CD8;
|
|
}
|
|
L_08864CD8:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x08864CE8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 274u, 0x08A6D380u>(ctx, &aot_mem) && ctx.pc == 0x08864CE8u) goto L_08864CE8;
|
|
return;
|
|
L_08864CE8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864CF4;
|
|
}
|
|
goto L_08864CF0;
|
|
}
|
|
L_08864CF0:
|
|
ctx.gpr[2] = (0u | 1u);
|
|
goto L_08864CF4;
|
|
L_08864CF4:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864D00:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(17332)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864D2C;
|
|
}
|
|
goto L_08864D1C;
|
|
}
|
|
L_08864D1C:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[31] = (0x08864D2Cu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 294u, 0x08A6D488u>(ctx, &aot_mem) && ctx.pc == 0x08864D2Cu) goto L_08864D2C;
|
|
return;
|
|
L_08864D2C:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864D38:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864D50u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0165_entry, 165u, 806u, 0x08A9AB80u>(ctx, &aot_mem) && ctx.pc == 0x08864D50u) goto L_08864D50;
|
|
return;
|
|
L_08864D50:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864D5C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864D70u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 606u, 0x088BAFBCu>(ctx, &aot_mem) && ctx.pc == 0x08864D70u) goto L_08864D70;
|
|
return;
|
|
L_08864D70:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864D7C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864D90u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 632u, 0x088BB0D8u>(ctx, &aot_mem) && ctx.pc == 0x08864D90u) goto L_08864D90;
|
|
return;
|
|
L_08864D90:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864D9C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864DB4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-3080));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0045_entry, 45u, 600u, 0x088BAF60u>(ctx, &aot_mem) && ctx.pc == 0x08864DB4u) goto L_08864DB4;
|
|
return;
|
|
L_08864DB4:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864DC0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864DD8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0151_entry, 151u, 154u, 0x08A60F10u>(ctx, &aot_mem) && ctx.pc == 0x08864DD8u) goto L_08864DD8;
|
|
return;
|
|
L_08864DD8:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864DE4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864DFCu);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(10384));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0151_entry, 151u, 150u, 0x08A60EDCu>(ctx, &aot_mem) && ctx.pc == 0x08864DFCu) goto L_08864DFC;
|
|
return;
|
|
L_08864DFC:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864E08:
|
|
ctx.gpr[4] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (2233u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(10384));
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(17224), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864E1C:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(5220)));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = ctx.fpr[13] / ctx.fpr[12];
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.gpr[4] = (17096u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(5216)));
|
|
ctx.gpr[7] = (2227u << 16u);
|
|
ctx.gpr[5] = (16014u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 14571u);
|
|
ctx.gpr[9] = (2227u << 16u);
|
|
ctx.gpr[8] = (2227u << 16u);
|
|
ctx.gpr[6] = (16672u << 16u);
|
|
ctx.gpr[10] = (2227u << 16u);
|
|
ctx.gpr[11] = (2227u << 16u);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[17];
|
|
aot_mem.aot_store32(ctx.gpr[7] + static_cast<std::uint32_t>(5224), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[14] = ctx.fpr[16] / ctx.fpr[15];
|
|
aot_mem.aot_store32(ctx.gpr[9] + static_cast<std::uint32_t>(5232), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[12] = ctx.fpr[18] / ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[8] + static_cast<std::uint32_t>(5228), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[10] + static_cast<std::uint32_t>(5236), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_store32(ctx.gpr[11] + static_cast<std::uint32_t>(5240), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864E94:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864EB4u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(20)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0075_entry, 75u, 184u, 0x08930EBCu>(ctx, &aot_mem) && ctx.pc == 0x08864EB4u) goto L_08864EB4;
|
|
return;
|
|
L_08864EB4:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864ED4;
|
|
}
|
|
goto L_08864EC0;
|
|
}
|
|
L_08864EC0:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
if (branch_taken) {
|
|
goto L_08864EDC;
|
|
}
|
|
goto L_08864ECC;
|
|
}
|
|
L_08864ECC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864F50;
|
|
}
|
|
goto L_08864ED4;
|
|
}
|
|
L_08864ED4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864F70;
|
|
}
|
|
goto L_08864EDC;
|
|
}
|
|
L_08864EDC:
|
|
ctx.gpr[7] = (2230u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(-25176));
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(1));
|
|
goto L_08864EE8;
|
|
L_08864EE8:
|
|
ctx.gpr[8] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[8] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[8] = (ctx.gpr[8] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864F0C;
|
|
}
|
|
goto L_08864EFC;
|
|
}
|
|
L_08864EFC:
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 24u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[5]) >> 24u));
|
|
if (branch_taken) {
|
|
goto L_08864F0C;
|
|
}
|
|
goto L_08864F0C;
|
|
}
|
|
L_08864F0C:
|
|
ctx.gpr[8] = (ctx.gpr[7] + ctx.gpr[6]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[8] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[8] = (ctx.gpr[8] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864F30;
|
|
}
|
|
goto L_08864F20;
|
|
}
|
|
L_08864F20:
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[6] = (ctx.gpr[6] << 24u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[6]) >> 24u));
|
|
if (branch_taken) {
|
|
goto L_08864F30;
|
|
}
|
|
goto L_08864F30;
|
|
}
|
|
L_08864F30:
|
|
{ const bool branch_taken = ctx.gpr[5] == ctx.gpr[6];
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
|
|
if (branch_taken) {
|
|
goto L_08864F40;
|
|
}
|
|
goto L_08864F38;
|
|
}
|
|
L_08864F38:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08864F60;
|
|
}
|
|
goto L_08864F40;
|
|
}
|
|
L_08864F40:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
if (branch_taken) {
|
|
goto L_08864EE8;
|
|
}
|
|
goto L_08864F50;
|
|
}
|
|
L_08864F50:
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08864F60;
|
|
}
|
|
goto L_08864F58;
|
|
}
|
|
L_08864F58:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08864F60;
|
|
}
|
|
goto L_08864F60;
|
|
}
|
|
L_08864F60:
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864F70;
|
|
}
|
|
goto L_08864F68;
|
|
}
|
|
L_08864F68:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(5248), ctx.gpr[16]);
|
|
goto L_08864F70;
|
|
L_08864F70:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08864F84:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08864FA4u);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0136_entry, 136u, 261u, 0x08A25784u>(ctx, &aot_mem) && ctx.pc == 0x08864FA4u) goto L_08864FA4;
|
|
return;
|
|
L_08864FA4:
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
if (branch_taken) {
|
|
goto L_08865028;
|
|
}
|
|
goto L_08864FB4;
|
|
}
|
|
L_08864FB4:
|
|
ctx.gpr[7] = (2230u << 16u);
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(-25176));
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(1));
|
|
goto L_08864FC0;
|
|
L_08864FC0:
|
|
ctx.gpr[8] = (ctx.gpr[7] + ctx.gpr[6]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[8] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[8] = (ctx.gpr[8] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08864FE4;
|
|
}
|
|
goto L_08864FD4;
|
|
}
|
|
L_08864FD4:
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[6] = (ctx.gpr[6] << 24u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[6]) >> 24u));
|
|
if (branch_taken) {
|
|
goto L_08864FE4;
|
|
}
|
|
goto L_08864FE4;
|
|
}
|
|
L_08864FE4:
|
|
ctx.gpr[8] = (ctx.gpr[7] + ctx.gpr[4]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[8] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[8] = (ctx.gpr[8] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865008;
|
|
}
|
|
goto L_08864FF8;
|
|
}
|
|
L_08864FF8:
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 24u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[4]) >> 24u));
|
|
if (branch_taken) {
|
|
goto L_08865008;
|
|
}
|
|
goto L_08865008;
|
|
}
|
|
L_08865008:
|
|
{ const bool branch_taken = ctx.gpr[6] == ctx.gpr[4];
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
|
|
if (branch_taken) {
|
|
goto L_08865018;
|
|
}
|
|
goto L_08865010;
|
|
}
|
|
L_08865010:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865038;
|
|
}
|
|
goto L_08865018;
|
|
}
|
|
L_08865018:
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
if (branch_taken) {
|
|
goto L_08864FC0;
|
|
}
|
|
goto L_08865028;
|
|
}
|
|
L_08865028:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08865038;
|
|
}
|
|
goto L_08865030;
|
|
}
|
|
L_08865030:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865038;
|
|
}
|
|
goto L_08865038;
|
|
}
|
|
L_08865038:
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865048;
|
|
}
|
|
goto L_08865040;
|
|
}
|
|
L_08865040:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(5248), ctx.gpr[16]);
|
|
goto L_08865048;
|
|
L_08865048:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886505C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(27512)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[18]);
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[17] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865090u);
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(5248), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 241u, 0x08A4D008u>(ctx, &aot_mem) && ctx.pc == 0x08865090u) goto L_08865090;
|
|
return;
|
|
L_08865090:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088650B4;
|
|
}
|
|
goto L_08865098;
|
|
}
|
|
L_08865098:
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x088650ACu);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(20116));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x088650ACu) goto L_088650AC;
|
|
return;
|
|
L_088650AC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(5248)));
|
|
if (branch_taken) {
|
|
goto L_088650CC;
|
|
}
|
|
goto L_088650B4;
|
|
}
|
|
L_088650B4:
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x088650C8u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(20356));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x088650C8u) goto L_088650C8;
|
|
return;
|
|
L_088650C8:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(5248)));
|
|
goto L_088650CC;
|
|
L_088650CC:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(28)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088650E4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865104u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(20)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0075_entry, 75u, 184u, 0x08930EBCu>(ctx, &aot_mem) && ctx.pc == 0x08865104u) goto L_08865104;
|
|
return;
|
|
L_08865104:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865128;
|
|
}
|
|
goto L_08865110;
|
|
}
|
|
L_08865110:
|
|
ctx.gpr[31] = (0x08865118u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0096_entry, 96u, 410u, 0x089866B8u>(ctx, &aot_mem) && ctx.pc == 0x08865118u) goto L_08865118;
|
|
return;
|
|
L_08865118:
|
|
{ const bool branch_taken = ctx.gpr[2] == ctx.gpr[16];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865130;
|
|
}
|
|
goto L_08865120;
|
|
}
|
|
L_08865120:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865138;
|
|
}
|
|
goto L_08865128;
|
|
}
|
|
L_08865128:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865138;
|
|
}
|
|
goto L_08865130;
|
|
}
|
|
L_08865130:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(5248), ctx.gpr[17]);
|
|
goto L_08865138;
|
|
L_08865138:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886514C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x0886516Cu);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0136_entry, 136u, 261u, 0x08A25784u>(ctx, &aot_mem) && ctx.pc == 0x0886516Cu) goto L_0886516C;
|
|
return;
|
|
L_0886516C:
|
|
ctx.gpr[31] = (0x08865174u);
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0096_entry, 96u, 410u, 0x089866B8u>(ctx, &aot_mem) && ctx.pc == 0x08865174u) goto L_08865174;
|
|
return;
|
|
L_08865174:
|
|
{ const bool branch_taken = ctx.gpr[2] != ctx.gpr[17];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865184;
|
|
}
|
|
goto L_0886517C;
|
|
}
|
|
L_0886517C:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(5248), ctx.gpr[16]);
|
|
goto L_08865184;
|
|
L_08865184:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865198:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(27512)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[18]);
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[17] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088651CCu);
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(5248), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 241u, 0x08A4D008u>(ctx, &aot_mem) && ctx.pc == 0x088651CCu) goto L_088651CC;
|
|
return;
|
|
L_088651CC:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088651F0;
|
|
}
|
|
goto L_088651D4;
|
|
}
|
|
L_088651D4:
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x088651E8u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(20708));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x088651E8u) goto L_088651E8;
|
|
return;
|
|
L_088651E8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(5248)));
|
|
if (branch_taken) {
|
|
goto L_08865208;
|
|
}
|
|
goto L_088651F0;
|
|
}
|
|
L_088651F0:
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08865204u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(20812));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x08865204u) goto L_08865204;
|
|
return;
|
|
L_08865204:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(5248)));
|
|
goto L_08865208;
|
|
L_08865208:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(28)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865220:
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(20)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865234;
|
|
}
|
|
goto L_0886522C;
|
|
}
|
|
L_0886522C:
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[5] + static_cast<std::uint32_t>(5248), ctx.gpr[4]);
|
|
goto L_08865234;
|
|
L_08865234:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886523C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(27512)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[7]);
|
|
ctx.gpr[6] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[16] = (2227u << 16u);
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(5248), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865270u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21024));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x08865270u) goto L_08865270;
|
|
return;
|
|
L_08865270:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(5248)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865284:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088652A4u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0072_entry, 72u, 312u, 0x08925FA0u>(ctx, &aot_mem) && ctx.pc == 0x088652A4u) goto L_088652A4;
|
|
return;
|
|
L_088652A4:
|
|
ctx.gpr[4] = (ctx.gpr[2] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088652C4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-48));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[18]);
|
|
ctx.gpr[18] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[19]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), ctx.gpr[31]);
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27512)));
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[18] + ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x088652FCu);
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 259u, 0x08A4D17Cu>(ctx, &aot_mem) && ctx.pc == 0x088652FCu) goto L_088652FC;
|
|
return;
|
|
L_088652FC:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[17] = (0u | 1u);
|
|
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(4));
|
|
goto L_08865308;
|
|
L_08865308:
|
|
ctx.gpr[31] = (0x08865310u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0075_entry, 75u, 210u, 0x08930FF4u>(ctx, &aot_mem) && ctx.pc == 0x08865310u) goto L_08865310;
|
|
return;
|
|
L_08865310:
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x0886531Cu);
|
|
ctx.gpr[5] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 179u, 0x0890D00Cu>(ctx, &aot_mem) && ctx.pc == 0x0886531Cu) goto L_0886531C;
|
|
return;
|
|
L_0886531C:
|
|
ctx.gpr[4] = (ctx.gpr[2] << 3u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(0), ctx.gpr[4]);
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[17]) < 18 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08865308;
|
|
}
|
|
goto L_08865344;
|
|
}
|
|
L_08865344:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(28)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865360:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27512)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[18]);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865394u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 241u, 0x08A4D008u>(ctx, &aot_mem) && ctx.pc == 0x08865394u) goto L_08865394;
|
|
return;
|
|
L_08865394:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088653B0;
|
|
}
|
|
goto L_0886539C;
|
|
}
|
|
L_0886539C:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x088653A8u);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
goto L_088652C4;
|
|
L_088653A8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088653C4;
|
|
}
|
|
goto L_088653B0;
|
|
}
|
|
L_088653B0:
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x088653C4u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21124));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x088653C4u) goto L_088653C4;
|
|
return;
|
|
L_088653C4:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(28)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088653DC:
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_store8(ctx.gpr[4] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088653E4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-816));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(796), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(800), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(804), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088653FCu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(784), ctx.gpr[4]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0072_entry, 72u, 230u, 0x089259E4u>(ctx, &aot_mem) && ctx.pc == 0x088653FCu) goto L_088653FC;
|
|
return;
|
|
L_088653FC:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(784)));
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27512)));
|
|
ctx.gpr[4] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[31] = (0x08865418u);
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 233u, 0x08A4CF6Cu>(ctx, &aot_mem) && ctx.pc == 0x08865418u) goto L_08865418;
|
|
return;
|
|
L_08865418:
|
|
ctx.gpr[31] = (0x08865420u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(20)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 136u, 0x0890CBD0u>(ctx, &aot_mem) && ctx.pc == 0x08865420u) goto L_08865420;
|
|
return;
|
|
L_08865420:
|
|
ctx.gpr[31] = (0x08865428u);
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 137u, 0x0890CBE4u>(ctx, &aot_mem) && ctx.pc == 0x08865428u) goto L_08865428;
|
|
return;
|
|
L_08865428:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(792), ctx.gpr[2]);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08865438u);
|
|
ctx.gpr[5] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 616u, 0x08942CCCu>(ctx, &aot_mem) && ctx.pc == 0x08865438u) goto L_08865438;
|
|
return;
|
|
L_08865438:
|
|
ctx.gpr[31] = (0x08865440u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(784)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 259u, 0x08A4D17Cu>(ctx, &aot_mem) && ctx.pc == 0x08865440u) goto L_08865440;
|
|
return;
|
|
L_08865440:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(788), ctx.gpr[2]);
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), 0u);
|
|
ctx.gpr[17] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), 0u);
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(12));
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08865468u);
|
|
ctx.gpr[6] = (0u | 756u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0186_entry, 186u, 390u, 0x08AED5D0u>(ctx, &aot_mem) && ctx.pc == 0x08865468u) goto L_08865468;
|
|
return;
|
|
L_08865468:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(784)));
|
|
ctx.gpr[31] = (0x08865474u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 274u, 0x08A4D334u>(ctx, &aot_mem) && ctx.pc == 0x08865474u) goto L_08865474;
|
|
return;
|
|
L_08865474:
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(792)));
|
|
ctx.gpr[7] = (0u | 0u);
|
|
ctx.gpr[8] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[8] == 0u;
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(788)));
|
|
if (branch_taken) {
|
|
goto L_08865504;
|
|
}
|
|
goto L_0886548C;
|
|
}
|
|
L_0886548C:
|
|
ctx.gpr[9] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[5] + static_cast<std::uint32_t>(92));
|
|
ctx.gpr[6] = (0u | 0u);
|
|
ctx.gpr[10] = (ctx.gpr[9] + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[11] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
goto L_088654A0;
|
|
L_088654A0:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(48)));
|
|
ctx.gpr[3] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(60)));
|
|
ctx.gpr[2] = (ctx.gpr[2] + ctx.gpr[6]);
|
|
{ const std::int64_t product = static_cast<std::int64_t>(static_cast<std::int32_t>(ctx.gpr[7])) * static_cast<std::int64_t>(static_cast<std::int32_t>(ctx.gpr[3])); ctx.lo = static_cast<std::uint32_t>(product); ctx.hi = static_cast<std::uint32_t>(static_cast<std::uint64_t>(product) >> 32u); }
|
|
ctx.gpr[2] = (aot_mem.aot_load8(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_store32(ctx.gpr[9] + static_cast<std::uint32_t>(20), ctx.gpr[2]);
|
|
ctx.gpr[2] = (ctx.lo);
|
|
ctx.gpr[2] = (ctx.gpr[8] + ctx.gpr[2]);
|
|
aot_mem.aot_store32(ctx.gpr[9] + static_cast<std::uint32_t>(16), ctx.gpr[2]);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[11] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[11] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[2] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[11] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[3] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[10] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[2] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[10] + static_cast<std::uint32_t>(4), ctx.gpr[3]);
|
|
aot_mem.aot_store32(ctx.gpr[10] + static_cast<std::uint32_t>(8), ctx.gpr[2]);
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[6] = (ctx.gpr[6] + static_cast<std::uint32_t>(8));
|
|
ctx.gpr[9] = (ctx.gpr[9] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[10] = (ctx.gpr[10] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[2] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
ctx.gpr[11] = (ctx.gpr[11] + static_cast<std::uint32_t>(12));
|
|
if (branch_taken) {
|
|
goto L_088654A0;
|
|
}
|
|
goto L_08865504;
|
|
}
|
|
L_08865504:
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08865518u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21468));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x08865518u) goto L_08865518;
|
|
return;
|
|
L_08865518:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (ctx.gpr[5] | 8u);
|
|
aot_mem.aot_store8(ctx.gpr[4] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(ctx.gpr[5]));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(796)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(800)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(804)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(816));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886553C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[6] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(1));
|
|
aot_mem.aot_store32(ctx.gpr[6] + static_cast<std::uint32_t>(0), ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865568u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21820));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 121u, 0x08A5D08Cu>(ctx, &aot_mem) && ctx.pc == 0x08865568u) goto L_08865568;
|
|
return;
|
|
L_08865568:
|
|
ctx.gpr[2] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886557C:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_store8(ctx.gpr[4] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[6] + static_cast<std::uint32_t>(0), ctx.gpr[7]);
|
|
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[6] + static_cast<std::uint32_t>(4), ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[6] + static_cast<std::uint32_t>(8), ctx.gpr[7]);
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-1));
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(20), ctx.gpr[5]);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088655C0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[6] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(24));
|
|
aot_mem.aot_store32(ctx.gpr[6] + static_cast<std::uint32_t>(0), ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088655F8u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21952));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 121u, 0x08A5D08Cu>(ctx, &aot_mem) && ctx.pc == 0x088655F8u) goto L_088655F8;
|
|
return;
|
|
L_088655F8:
|
|
ctx.gpr[2] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886560C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-48));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865628u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0072_entry, 72u, 230u, 0x089259E4u>(ctx, &aot_mem) && ctx.pc == 0x08865628u) goto L_08865628;
|
|
return;
|
|
L_08865628:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27512)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]);
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08865650u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21820));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 121u, 0x08A5D08Cu>(ctx, &aot_mem) && ctx.pc == 0x08865650u) goto L_08865650;
|
|
return;
|
|
L_08865650:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (0x0886565Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 616u, 0x08942CCCu>(ctx, &aot_mem) && ctx.pc == 0x0886565Cu) goto L_0886565C;
|
|
return;
|
|
L_0886565C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[4]);
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(20));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08865678u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21952));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0150_entry, 150u, 121u, 0x08A5D08Cu>(ctx, &aot_mem) && ctx.pc == 0x08865678u) goto L_08865678;
|
|
return;
|
|
L_08865678:
|
|
ctx.gpr[5] = (2182u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
ctx.gpr[31] = (0x0886568Cu);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(21884));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 620u, 0x08942D20u>(ctx, &aot_mem) && ctx.pc == 0x0886568Cu) goto L_0886568C;
|
|
return;
|
|
L_0886568C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (ctx.gpr[5] | 8u);
|
|
aot_mem.aot_store8(ctx.gpr[4] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(ctx.gpr[5]));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(28)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088656B0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x088656C4u);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0146_entry, 146u, 241u, 0x08A4D008u>(ctx, &aot_mem) && ctx.pc == 0x088656C4u) goto L_088656C4;
|
|
return;
|
|
L_088656C4:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088656DC;
|
|
}
|
|
goto L_088656CC;
|
|
}
|
|
L_088656CC:
|
|
ctx.gpr[31] = (0x088656D4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_088653E4;
|
|
L_088656D4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088656E4;
|
|
}
|
|
goto L_088656DC;
|
|
}
|
|
L_088656DC:
|
|
ctx.gpr[31] = (0x088656E4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_0886560C;
|
|
L_088656E4:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088656F4:
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(27512)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_0886571C;
|
|
}
|
|
goto L_0886570C;
|
|
}
|
|
L_0886570C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(8)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886571C;
|
|
}
|
|
goto L_08865718;
|
|
}
|
|
L_08865718:
|
|
ctx.gpr[5] = (0u | 1u);
|
|
goto L_0886571C;
|
|
L_0886571C:
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[2] = (ctx.gpr[5] & 255u);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865724:
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(27512)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865770;
|
|
}
|
|
goto L_08865740;
|
|
}
|
|
L_08865740:
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_08865760;
|
|
}
|
|
goto L_08865748;
|
|
}
|
|
L_08865748:
|
|
ctx.gpr[7] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[7] = (ctx.gpr[7] & ctx.gpr[5]);
|
|
ctx.gpr[7] = (0u < ctx.gpr[7] ? 1u : 0u);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865764;
|
|
}
|
|
goto L_08865760;
|
|
}
|
|
L_08865760:
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08865764;
|
|
L_08865764:
|
|
ctx.gpr[4] = (ctx.gpr[6] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865740;
|
|
}
|
|
goto L_08865770;
|
|
}
|
|
L_08865770:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865778:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865788u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_08865794;
|
|
L_08865788:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865794:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(27512)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[17]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
if (branch_taken) {
|
|
goto L_088657D0;
|
|
}
|
|
goto L_088657BC;
|
|
}
|
|
L_088657BC:
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[17] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088657D8;
|
|
}
|
|
goto L_088657C8;
|
|
}
|
|
L_088657C8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886580C;
|
|
}
|
|
goto L_088657D0;
|
|
}
|
|
L_088657D0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886580C;
|
|
}
|
|
goto L_088657D8;
|
|
}
|
|
L_088657D8:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[16] == 0u;
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
if (branch_taken) {
|
|
goto L_088657FC;
|
|
}
|
|
goto L_088657E4;
|
|
}
|
|
L_088657E4:
|
|
ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[16]);
|
|
ctx.gpr[5] = (0u < ctx.gpr[5] ? 1u : 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865804;
|
|
}
|
|
goto L_088657FC;
|
|
}
|
|
L_088657FC:
|
|
ctx.gpr[31] = (0x08865804u);
|
|
ctx.gpr[5] = (0u | 3u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0043_entry, 43u, 870u, 0x088B3F48u>(ctx, &aot_mem) && ctx.pc == 0x08865804u) goto L_08865804;
|
|
return;
|
|
L_08865804:
|
|
{ const bool branch_taken = ctx.gpr[17] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088657D8;
|
|
}
|
|
goto L_0886580C;
|
|
}
|
|
L_0886580C:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865820:
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(27512)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865854;
|
|
}
|
|
goto L_0886583C;
|
|
}
|
|
L_0886583C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[2] + static_cast<std::uint32_t>(48))))));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886585C;
|
|
}
|
|
goto L_08865848;
|
|
}
|
|
L_08865848:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886583C;
|
|
}
|
|
goto L_08865854;
|
|
}
|
|
L_08865854:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_0886585C;
|
|
}
|
|
goto L_0886585C;
|
|
}
|
|
L_0886585C:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865864:
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(27512)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088658AC;
|
|
}
|
|
goto L_08865880;
|
|
}
|
|
L_08865880:
|
|
ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[2] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088658A0;
|
|
}
|
|
goto L_08865898;
|
|
}
|
|
L_08865898:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088658B0;
|
|
}
|
|
goto L_088658A0;
|
|
}
|
|
L_088658A0:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865880;
|
|
}
|
|
goto L_088658AC;
|
|
}
|
|
L_088658AC:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_088658B0;
|
|
L_088658B0:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088658B8:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088658CC;
|
|
}
|
|
goto L_088658C4;
|
|
}
|
|
L_088658C4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088658D0;
|
|
}
|
|
goto L_088658CC;
|
|
}
|
|
L_088658CC:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_088658D0;
|
|
L_088658D0:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088658D8:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865910;
|
|
}
|
|
goto L_088658E4;
|
|
}
|
|
L_088658E4:
|
|
ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[2] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865904;
|
|
}
|
|
goto L_088658FC;
|
|
}
|
|
L_088658FC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865914;
|
|
}
|
|
goto L_08865904;
|
|
}
|
|
L_08865904:
|
|
ctx.gpr[2] = (aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088658E4;
|
|
}
|
|
goto L_08865910;
|
|
}
|
|
L_08865910:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08865914;
|
|
L_08865914:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886591C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865944:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7968)));
|
|
ctx.gpr[4] = (16268u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088659B8;
|
|
}
|
|
goto L_08865968;
|
|
}
|
|
L_08865968:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(5292)));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088659B0;
|
|
}
|
|
goto L_08865978;
|
|
}
|
|
L_08865978:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-8148)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 32767u);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 1u);
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(5000) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088659A8;
|
|
}
|
|
goto L_08865994;
|
|
}
|
|
L_08865994:
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(6000) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088659C0;
|
|
}
|
|
goto L_088659A0;
|
|
}
|
|
L_088659A0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_088659C4;
|
|
}
|
|
goto L_088659A8;
|
|
}
|
|
L_088659A8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_088659C4;
|
|
}
|
|
goto L_088659B0;
|
|
}
|
|
L_088659B0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_088659C4;
|
|
}
|
|
goto L_088659B8;
|
|
}
|
|
L_088659B8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_088659C4;
|
|
}
|
|
goto L_088659C0;
|
|
}
|
|
L_088659C0:
|
|
ctx.gpr[2] = (0u | 2u);
|
|
goto L_088659C4;
|
|
L_088659C4:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_088659CC:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7968)));
|
|
ctx.gpr[4] = (16268u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865A54;
|
|
}
|
|
goto L_088659F0;
|
|
}
|
|
L_088659F0:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(5292)));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865A4C;
|
|
}
|
|
goto L_08865A00;
|
|
}
|
|
L_08865A00:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-8148)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 32767u);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 1u);
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(6000) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865A44;
|
|
}
|
|
goto L_08865A1C;
|
|
}
|
|
L_08865A1C:
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(11000) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865A3C;
|
|
}
|
|
goto L_08865A28;
|
|
}
|
|
L_08865A28:
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(12000) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865A5C;
|
|
}
|
|
goto L_08865A34;
|
|
}
|
|
L_08865A34:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865A60;
|
|
}
|
|
goto L_08865A3C;
|
|
}
|
|
L_08865A3C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08865A60;
|
|
}
|
|
goto L_08865A44;
|
|
}
|
|
L_08865A44:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 2u);
|
|
if (branch_taken) {
|
|
goto L_08865A60;
|
|
}
|
|
goto L_08865A4C;
|
|
}
|
|
L_08865A4C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08865A60;
|
|
}
|
|
goto L_08865A54;
|
|
}
|
|
L_08865A54:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08865A60;
|
|
}
|
|
goto L_08865A5C;
|
|
}
|
|
L_08865A5C:
|
|
ctx.gpr[2] = (0u | 2u);
|
|
goto L_08865A60;
|
|
L_08865A60:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865A68:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7968)));
|
|
ctx.gpr[4] = (16268u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[31]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865AB8;
|
|
}
|
|
goto L_08865A94;
|
|
}
|
|
L_08865A94:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-8148)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1024u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865AB0;
|
|
}
|
|
goto L_08865AA8;
|
|
}
|
|
L_08865AA8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 3u);
|
|
if (branch_taken) {
|
|
goto L_08865AC0;
|
|
}
|
|
goto L_08865AB0;
|
|
}
|
|
L_08865AB0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865AC0;
|
|
}
|
|
goto L_08865AB8;
|
|
}
|
|
L_08865AB8:
|
|
ctx.gpr[31] = (0x08865AC0u);
|
|
// nop
|
|
goto L_08865944;
|
|
L_08865AC0:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865ACC:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7968)));
|
|
ctx.gpr[4] = (16268u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[31]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865B1C;
|
|
}
|
|
goto L_08865AF8;
|
|
}
|
|
L_08865AF8:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-8148)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1024u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865B14;
|
|
}
|
|
goto L_08865B0C;
|
|
}
|
|
L_08865B0C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 3u);
|
|
if (branch_taken) {
|
|
goto L_08865B24;
|
|
}
|
|
goto L_08865B14;
|
|
}
|
|
L_08865B14:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865B24;
|
|
}
|
|
goto L_08865B1C;
|
|
}
|
|
L_08865B1C:
|
|
ctx.gpr[31] = (0x08865B24u);
|
|
// nop
|
|
goto L_088659CC;
|
|
L_08865B24:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865B30:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-8148)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 32767u);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 1u);
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(12000) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865B60;
|
|
}
|
|
goto L_08865B4C;
|
|
}
|
|
L_08865B4C:
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(15384) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865B68;
|
|
}
|
|
goto L_08865B58;
|
|
}
|
|
L_08865B58:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08865B6C;
|
|
}
|
|
goto L_08865B60;
|
|
}
|
|
L_08865B60:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 2u);
|
|
if (branch_taken) {
|
|
goto L_08865B6C;
|
|
}
|
|
goto L_08865B68;
|
|
}
|
|
L_08865B68:
|
|
ctx.gpr[2] = (0u | 1u);
|
|
goto L_08865B6C;
|
|
L_08865B6C:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865B74:
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(376)));
|
|
ctx.gpr[5] = (2228u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-26868)));
|
|
ctx.gpr[7] = (ctx.gpr[6] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]);
|
|
ctx.gpr[6] = (ctx.gpr[6] << 2u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[6] + static_cast<std::uint32_t>(9))))));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865BD0;
|
|
}
|
|
goto L_08865BA4;
|
|
}
|
|
L_08865BA4:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(372)));
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(9))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865BD0;
|
|
}
|
|
goto L_08865BC8;
|
|
}
|
|
L_08865BC8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865BD4;
|
|
}
|
|
goto L_08865BD0;
|
|
}
|
|
L_08865BD0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08865BD4;
|
|
L_08865BD4:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865BDC:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(16));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08865BF4u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 288u, 0x089D96E8u>(ctx, &aot_mem) && ctx.pc == 0x08865BF4u) goto L_08865BF4;
|
|
return;
|
|
L_08865BF4:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
ctx.gpr[4] = (16997u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08865C20;
|
|
}
|
|
goto L_08865C0C;
|
|
}
|
|
L_08865C0C:
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
ctx.gpr[4] = (16997u << 16u);
|
|
goto L_08865C20;
|
|
L_08865C20:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 12000u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
ctx.gpr[4] = (17008u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[14]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
ctx.gpr[4] = (17264u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08865C60;
|
|
}
|
|
goto L_08865C44;
|
|
}
|
|
L_08865C44:
|
|
ctx.gpr[4] = (17174u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865C88;
|
|
}
|
|
goto L_08865C5C;
|
|
}
|
|
L_08865C5C:
|
|
ctx.gpr[4] = (17264u << 16u);
|
|
goto L_08865C60;
|
|
L_08865C60:
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
ctx.gpr[4] = (17317u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08865C90;
|
|
}
|
|
goto L_08865C74;
|
|
}
|
|
L_08865C74:
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865C90;
|
|
}
|
|
goto L_08865C88;
|
|
}
|
|
L_08865C88:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865C94;
|
|
}
|
|
goto L_08865C90;
|
|
}
|
|
L_08865C90:
|
|
ctx.gpr[2] = (0u | 2u);
|
|
goto L_08865C94;
|
|
L_08865C94:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08865CA0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(376)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
ctx.gpr[17] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), ctx.gpr[18]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[18] = (2228u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
ctx.gpr[6] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(9))))));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[31]);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 3u);
|
|
if (ctx.gpr[6] == 0u) {
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
goto L_08865E48;
|
|
}
|
|
goto L_08865CEC;
|
|
L_08865CEC:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(8))))));
|
|
ctx.gpr[7] = (ctx.gpr[7] & 64u);
|
|
{ const bool branch_taken = ctx.gpr[7] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865D0C;
|
|
}
|
|
goto L_08865CFC;
|
|
}
|
|
L_08865CFC:
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(4))))));
|
|
ctx.gpr[9] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(356)));
|
|
if (ctx.gpr[8] != ctx.gpr[9]) {
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
goto L_08865E48;
|
|
}
|
|
goto L_08865D0C;
|
|
L_08865D0C:
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865D24;
|
|
}
|
|
goto L_08865D14;
|
|
}
|
|
L_08865D14:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(4))))));
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(356)));
|
|
if (ctx.gpr[5] == ctx.gpr[7]) {
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
goto L_08865E48;
|
|
}
|
|
goto L_08865D24;
|
|
L_08865D24:
|
|
{ const bool branch_taken = ctx.gpr[17] != 0u;
|
|
ctx.gpr[5] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865D84;
|
|
}
|
|
goto L_08865D2C;
|
|
}
|
|
L_08865D2C:
|
|
if (ctx.gpr[6] != ctx.gpr[5]) {
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(376)));
|
|
goto L_08865D4C;
|
|
}
|
|
goto L_08865D34;
|
|
L_08865D34:
|
|
ctx.gpr[31] = (0x08865D3Cu);
|
|
// nop
|
|
goto L_08865944;
|
|
L_08865D3C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
if (branch_taken) {
|
|
goto L_08865D84;
|
|
}
|
|
goto L_08865D48;
|
|
}
|
|
L_08865D48:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(376)));
|
|
goto L_08865D4C;
|
|
L_08865D4C:
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(9))))));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 3u);
|
|
if (ctx.gpr[5] != ctx.gpr[6]) {
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
goto L_08865E48;
|
|
}
|
|
goto L_08865D70;
|
|
L_08865D70:
|
|
ctx.gpr[31] = (0x08865D78u);
|
|
// nop
|
|
goto L_088659CC;
|
|
L_08865D78:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
if (branch_taken) {
|
|
goto L_08865E44;
|
|
}
|
|
goto L_08865D84;
|
|
}
|
|
L_08865D84:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(376)));
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[6] + static_cast<std::uint32_t>(6))))));
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(2))))));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[7] = (15872u << 16u);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[8] = (15395u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[6] + static_cast<std::uint32_t>(7))))));
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[8] = (ctx.gpr[8] | 55050u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[7] = (ctx.gpr[16] + static_cast<std::uint32_t>(48));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[17] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[17])));
|
|
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
ctx.fpr[18] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[18])));
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[16] - ctx.fpr[13];
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(394))))));
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[15] = ctx.fpr[19] - ctx.fpr[15];
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-1));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[6];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
if (branch_taken) {
|
|
goto L_08865E78;
|
|
}
|
|
goto L_08865E20;
|
|
}
|
|
L_08865E20:
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
ctx.gpr[5] = (16640u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08865E44;
|
|
}
|
|
goto L_08865E30;
|
|
}
|
|
L_08865E30:
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865E70;
|
|
}
|
|
goto L_08865E44;
|
|
}
|
|
L_08865E44:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
goto L_08865E48;
|
|
L_08865E48:
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(9))))));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 3u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865EA4;
|
|
}
|
|
goto L_08865E68;
|
|
}
|
|
L_08865E68:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_08865E70;
|
|
}
|
|
L_08865E70:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08866214;
|
|
}
|
|
goto L_08865E78;
|
|
}
|
|
L_08865E78:
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
ctx.gpr[5] = (49408u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08865E44;
|
|
}
|
|
goto L_08865E88;
|
|
}
|
|
L_08865E88:
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
if (ctx.fpu_condition()) {
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
goto L_08865E48;
|
|
}
|
|
goto L_08865E9C;
|
|
L_08865E9C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08866214;
|
|
}
|
|
goto L_08865EA4;
|
|
}
|
|
L_08865EA4:
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(8))))));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 64u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865EC4;
|
|
}
|
|
goto L_08865EB4;
|
|
}
|
|
L_08865EB4:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(4))))));
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(352)));
|
|
{ const bool branch_taken = ctx.gpr[7] != ctx.gpr[8];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_08865EC4;
|
|
}
|
|
L_08865EC4:
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08865EDC;
|
|
}
|
|
goto L_08865ECC;
|
|
}
|
|
L_08865ECC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(4))))));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(352)));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_08865EDC;
|
|
}
|
|
L_08865EDC:
|
|
{ const bool branch_taken = ctx.gpr[17] != 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08865F3C;
|
|
}
|
|
goto L_08865EE4;
|
|
}
|
|
L_08865EE4:
|
|
if (ctx.gpr[5] != ctx.gpr[4]) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_08865F00;
|
|
}
|
|
goto L_08865EEC;
|
|
L_08865EEC:
|
|
ctx.gpr[31] = (0x08865EF4u);
|
|
// nop
|
|
goto L_08865944;
|
|
L_08865EF4:
|
|
if (ctx.gpr[2] != 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_08865F40;
|
|
}
|
|
goto L_08865EFC;
|
|
L_08865EFC:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_08865F00;
|
|
L_08865F00:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(9))))));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 3u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_08865F2C;
|
|
}
|
|
L_08865F2C:
|
|
ctx.gpr[31] = (0x08865F34u);
|
|
// nop
|
|
goto L_088659CC;
|
|
L_08865F34:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_08865F3C;
|
|
}
|
|
L_08865F3C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_08865F40;
|
|
L_08865F40:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(372)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[6] + static_cast<std::uint32_t>(6))))));
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(2))))));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[5] = (15872u << 16u);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[7] = (15395u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[6] + static_cast<std::uint32_t>(7))))));
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[7] = (ctx.gpr[7] | 55050u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[5] = (ctx.gpr[16] + static_cast<std::uint32_t>(48));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[17] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[17])));
|
|
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
ctx.fpr[18] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[18])));
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[16] - ctx.fpr[13];
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(393))))));
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[15] = ctx.fpr[19] - ctx.fpr[15];
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-1));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
if (branch_taken) {
|
|
goto L_0886606C;
|
|
}
|
|
goto L_08865FE0;
|
|
}
|
|
L_08865FE0:
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
ctx.gpr[4] = (16640u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_08865FF0;
|
|
}
|
|
L_08865FF0:
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866064;
|
|
}
|
|
goto L_08866004;
|
|
}
|
|
L_08866004:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(68)));
|
|
ctx.gpr[5] = (0u | 48u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 496u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_08866018;
|
|
}
|
|
L_08866018:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(380)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(9))))));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 3u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_08866044;
|
|
}
|
|
L_08866044:
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(8))))));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 64u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088660A4;
|
|
}
|
|
goto L_08866054;
|
|
}
|
|
L_08866054:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(4))))));
|
|
if (branch_taken) {
|
|
goto L_08866098;
|
|
}
|
|
goto L_0886605C;
|
|
}
|
|
L_0886605C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08866214;
|
|
}
|
|
goto L_08866064;
|
|
}
|
|
L_08866064:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08866214;
|
|
}
|
|
goto L_0886606C;
|
|
}
|
|
L_0886606C:
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
ctx.gpr[4] = (49408u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_0886607C;
|
|
}
|
|
L_0886607C:
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866004;
|
|
}
|
|
goto L_08866090;
|
|
}
|
|
L_08866090:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08866214;
|
|
}
|
|
goto L_08866098;
|
|
}
|
|
L_08866098:
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(360)));
|
|
{ const bool branch_taken = ctx.gpr[7] != ctx.gpr[8];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_088660A4;
|
|
}
|
|
L_088660A4:
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088660BC;
|
|
}
|
|
goto L_088660AC;
|
|
}
|
|
L_088660AC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(4))))));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(360)));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_088660BC;
|
|
}
|
|
L_088660BC:
|
|
{ const bool branch_taken = ctx.gpr[17] != 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_0886611C;
|
|
}
|
|
goto L_088660C4;
|
|
}
|
|
L_088660C4:
|
|
if (ctx.gpr[5] != ctx.gpr[4]) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_088660E0;
|
|
}
|
|
goto L_088660CC;
|
|
L_088660CC:
|
|
ctx.gpr[31] = (0x088660D4u);
|
|
// nop
|
|
goto L_08865944;
|
|
L_088660D4:
|
|
if (ctx.gpr[2] != 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_08866120;
|
|
}
|
|
goto L_088660DC;
|
|
L_088660DC:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_088660E0;
|
|
L_088660E0:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(380)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(9))))));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 3u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_0886610C;
|
|
}
|
|
L_0886610C:
|
|
ctx.gpr[31] = (0x08866114u);
|
|
// nop
|
|
goto L_088659CC;
|
|
L_08866114:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_0886611C;
|
|
}
|
|
L_0886611C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(-26868)));
|
|
goto L_08866120;
|
|
L_08866120:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(380)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[6] + static_cast<std::uint32_t>(6))))));
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(2))))));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[5] = (15872u << 16u);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[7] = (15395u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[6] + static_cast<std::uint32_t>(7))))));
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[7] = (ctx.gpr[7] | 55050u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[5] = (ctx.gpr[16] + static_cast<std::uint32_t>(48));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[17] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[17])));
|
|
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
ctx.fpr[18] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[18])));
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[16] - ctx.fpr[13];
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(392))))));
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[15] = ctx.fpr[19] - ctx.fpr[15];
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-1));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14];
|
|
if (branch_taken) {
|
|
goto L_088661EC;
|
|
}
|
|
goto L_088661C0;
|
|
}
|
|
L_088661C0:
|
|
ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[12]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
ctx.gpr[4] = (16576u << 16u);
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_088661D0;
|
|
}
|
|
L_088661D0:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[12]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_088661E4;
|
|
}
|
|
L_088661E4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08866214;
|
|
}
|
|
goto L_088661EC;
|
|
}
|
|
L_088661EC:
|
|
ctx.set_fpu_condition((ctx.fpr[13] < ctx.fpr[12]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
ctx.gpr[4] = (49344u << 16u);
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_088661FC;
|
|
}
|
|
L_088661FC:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[12]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886605C;
|
|
}
|
|
goto L_08866210;
|
|
}
|
|
L_08866210:
|
|
ctx.gpr[2] = (0u | 1u);
|
|
goto L_08866214;
|
|
L_08866214:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(12)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_0886622C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-1520));
|
|
ctx.gpr[5] = (16245u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(40)));
|
|
ctx.gpr[5] = (ctx.gpr[5] | 49807u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1464), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1468), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1472), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1476), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1480), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1484), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1488), ctx.gpr[19]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1492), ctx.gpr[20]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1496), ctx.gpr[21]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1500), ctx.gpr[22]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1504), ctx.gpr[23]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1508), ctx.gpr[30]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1512), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
if (branch_taken) {
|
|
goto L_088662C0;
|
|
}
|
|
goto L_08866280;
|
|
}
|
|
L_08866280:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(68)));
|
|
ctx.gpr[5] = (512u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088662B8;
|
|
}
|
|
goto L_08866294;
|
|
}
|
|
L_08866294:
|
|
ctx.gpr[31] = (0x0886629Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08865BDC;
|
|
L_0886629C:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
{ const bool branch_taken = ctx.gpr[2] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088662C8;
|
|
}
|
|
goto L_088662A8;
|
|
}
|
|
L_088662A8:
|
|
ctx.gpr[31] = (0x088662B0u);
|
|
// nop
|
|
goto L_08865A68;
|
|
L_088662B0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
if (branch_taken) {
|
|
goto L_088662D4;
|
|
}
|
|
goto L_088662B8;
|
|
}
|
|
L_088662B8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_088662C0;
|
|
}
|
|
L_088662C0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_088662C8;
|
|
}
|
|
L_088662C8:
|
|
ctx.gpr[31] = (0x088662D0u);
|
|
// nop
|
|
goto L_08865ACC;
|
|
L_088662D0:
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
goto L_088662D4;
|
|
L_088662D4:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(88))))));
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-8152)));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[7]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08866300;
|
|
}
|
|
goto L_088662EC;
|
|
}
|
|
L_088662EC:
|
|
ctx.gpr[4] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[5] = (2229u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-11604)));
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
goto L_08866300;
|
|
L_08866300:
|
|
ctx.gpr[5] = (2228u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-31116)));
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(88))))));
|
|
ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[7] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866D94;
|
|
}
|
|
goto L_08866318;
|
|
}
|
|
L_08866318:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_0886633C;
|
|
}
|
|
goto L_08866324;
|
|
}
|
|
L_08866324:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[7] = (2230u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_0886633C;
|
|
}
|
|
goto L_0886633C;
|
|
}
|
|
L_0886633C:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08866364;
|
|
}
|
|
goto L_0886634C;
|
|
}
|
|
L_0886634C:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[7] = (2230u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08866364;
|
|
}
|
|
goto L_08866364;
|
|
}
|
|
L_08866364:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_0886638C;
|
|
}
|
|
goto L_08866374;
|
|
}
|
|
L_08866374:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[7] = (2230u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08866390;
|
|
}
|
|
goto L_0886638C;
|
|
}
|
|
L_0886638C:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_08866390;
|
|
L_08866390:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[5] = (0u | 1u);
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[5]) < 6 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (branch_taken) {
|
|
goto L_088664A4;
|
|
}
|
|
goto L_088663A4;
|
|
}
|
|
L_088663A4:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[7]) < 0;
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_088663CC;
|
|
}
|
|
goto L_088663B0;
|
|
}
|
|
L_088663B0:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[8] = (2230u << 16u);
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[8] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
ctx.gpr[7] = (ctx.gpr[7] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[7] = (ctx.gpr[8] + ctx.gpr[7]);
|
|
if (branch_taken) {
|
|
goto L_088663CC;
|
|
}
|
|
goto L_088663CC;
|
|
}
|
|
L_088663CC:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
ctx.set_fpu_condition((ctx.fpr[22] < ctx.fpr[14]));
|
|
// nop
|
|
if (!ctx.fpu_condition()) {
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
goto L_088663E0;
|
|
}
|
|
goto L_088663E0;
|
|
L_088663E0:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[7]) < 0;
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08866408;
|
|
}
|
|
goto L_088663EC;
|
|
}
|
|
L_088663EC:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[8] = (2230u << 16u);
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[8] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
ctx.gpr[7] = (ctx.gpr[7] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[7] = (ctx.gpr[8] + ctx.gpr[7]);
|
|
if (branch_taken) {
|
|
goto L_08866408;
|
|
}
|
|
goto L_08866408;
|
|
}
|
|
L_08866408:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[14]));
|
|
// nop
|
|
if (ctx.fpu_condition()) {
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
goto L_0886641C;
|
|
}
|
|
goto L_0886641C;
|
|
L_0886641C:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[7]) < 0;
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08866444;
|
|
}
|
|
goto L_08866428;
|
|
}
|
|
L_08866428:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[8] = (2230u << 16u);
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[8] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
ctx.gpr[7] = (ctx.gpr[7] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[7] = (ctx.gpr[8] + ctx.gpr[7]);
|
|
if (branch_taken) {
|
|
goto L_08866444;
|
|
}
|
|
goto L_08866444;
|
|
}
|
|
L_08866444:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(8)));
|
|
ctx.set_fpu_condition((ctx.fpr[24] < ctx.fpr[14]));
|
|
// nop
|
|
if (!ctx.fpu_condition()) {
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(8)));
|
|
goto L_08866458;
|
|
}
|
|
goto L_08866458;
|
|
L_08866458:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[7]) < 0;
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08866480;
|
|
}
|
|
goto L_08866464;
|
|
}
|
|
L_08866464:
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[8] = (2230u << 16u);
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[8] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[5]);
|
|
ctx.gpr[7] = (ctx.gpr[7] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[7] = (ctx.gpr[8] + ctx.gpr[7]);
|
|
if (branch_taken) {
|
|
goto L_08866480;
|
|
}
|
|
goto L_08866480;
|
|
}
|
|
L_08866480:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(8)));
|
|
ctx.set_fpu_condition((ctx.fpr[13] <= ctx.fpr[14]));
|
|
// nop
|
|
if (ctx.fpu_condition()) {
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(8)));
|
|
goto L_08866494;
|
|
}
|
|
goto L_08866494;
|
|
L_08866494:
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[5]) < 6 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[7] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088663A4;
|
|
}
|
|
goto L_088664A4;
|
|
}
|
|
L_088664A4:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) > 0;
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[6]) < 2 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_088665A0;
|
|
}
|
|
goto L_088664AC;
|
|
}
|
|
L_088664AC:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866524;
|
|
}
|
|
goto L_088664B4;
|
|
}
|
|
L_088664B4:
|
|
ctx.gpr[20] = (0u | 0u);
|
|
ctx.gpr[19] = (0u | 255u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[21] = (ctx.gpr[29] + static_cast<std::uint32_t>(208));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(228), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(232), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.gpr[22] = (ctx.gpr[29] + static_cast<std::uint32_t>(224));
|
|
ctx.gpr[4] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x088664E8u);
|
|
ctx.gpr[6] = (ctx.gpr[22] | 0u);
|
|
goto L_0886591C;
|
|
L_088664E8:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.gpr[4] = (ctx.gpr[22] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08866510u);
|
|
ctx.gpr[6] = (ctx.gpr[21] | 0u);
|
|
goto L_0886591C;
|
|
L_08866510:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088666D8;
|
|
}
|
|
goto L_08866524;
|
|
}
|
|
L_08866524:
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[24];
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(208));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[17] = (ctx.gpr[29] + static_cast<std::uint32_t>(224));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x0886658Cu);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
goto L_0886591C;
|
|
L_0886658C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_088665A0;
|
|
}
|
|
L_088665A0:
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[6]) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08866640;
|
|
}
|
|
goto L_088665A8;
|
|
}
|
|
L_088665A8:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866524;
|
|
}
|
|
goto L_088665B0;
|
|
}
|
|
L_088665B0:
|
|
ctx.gpr[20] = (0u | 255u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
ctx.gpr[17] = (0u | 2u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(208));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(224));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088666D8;
|
|
}
|
|
goto L_08866640;
|
|
}
|
|
L_08866640:
|
|
ctx.gpr[20] = (0u | 255u);
|
|
ctx.gpr[19] = (0u | 128u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
ctx.gpr[17] = (0u | 1u);
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[24];
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(208));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(224));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
goto L_088666D8;
|
|
L_088666D8:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866760;
|
|
}
|
|
goto L_088666F8;
|
|
}
|
|
L_088666F8:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(240));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(256), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(260), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(264), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(256));
|
|
ctx.gpr[4] = (16640u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[20]);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (15232u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
{ const float fs = ctx.fpr[16]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[31] = (0x08866760u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0184_entry, 184u, 343u, 0x08AE5E5Cu>(ctx, &aot_mem) && ctx.pc == 0x08866760u) goto L_08866760;
|
|
return;
|
|
L_08866760:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.gpr[4] = (15692u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886685C;
|
|
}
|
|
goto L_08866784;
|
|
}
|
|
L_08866784:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[20]);
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[5] = (2229u << 16u);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[18] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[15])));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11156)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[5] = (15872u << 16u);
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[4] = (16640u << 16u);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[6] = (49408u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[19]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[5] = (16704u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[8] = (16256u << 16u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[19]));
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27668)));
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[17]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.gpr[2] = (16928u << 16u);
|
|
ctx.gpr[9] = (std::bit_cast<std::uint32_t>(ctx.fpr[19]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[18]));
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[10] = (std::bit_cast<std::uint32_t>(ctx.fpr[17]));
|
|
ctx.gpr[9] = (ctx.gpr[9] & 255u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[10] = (ctx.gpr[10] & 255u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(ctx.fpr[18]));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[11] = (ctx.gpr[11] & 255u);
|
|
ctx.fpr[19] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[8] = (0u | 128u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x0886685Cu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0073_entry, 73u, 328u, 0x0892AA10u>(ctx, &aot_mem) && ctx.pc == 0x0886685Cu) goto L_0886685C;
|
|
return;
|
|
L_0886685C:
|
|
ctx.gpr[4] = (2232u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(12960));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08866948;
|
|
}
|
|
goto L_08866894;
|
|
}
|
|
L_08866894:
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[20]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.gpr[5] = (16179u << 16u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11136)));
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.gpr[4] = (ctx.gpr[5] | 13107u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
ctx.gpr[7] = (16352u << 16u);
|
|
ctx.gpr[2] = (0u | 1u);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[8] = (16968u << 16u);
|
|
ctx.gpr[10] = (16320u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[10]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[17]);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[9] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
ctx.gpr[31] = (0x08866940u);
|
|
ctx.gpr[8] = (0u | 255u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0125_entry, 125u, 328u, 0x089FA154u>(ctx, &aot_mem) && ctx.pc == 0x08866940u) goto L_08866940;
|
|
return;
|
|
L_08866940:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088669F4;
|
|
}
|
|
goto L_08866948;
|
|
}
|
|
L_08866948:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[20]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.gpr[5] = (16179u << 16u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11136)));
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.gpr[4] = (ctx.gpr[5] | 13107u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
ctx.gpr[7] = (16352u << 16u);
|
|
ctx.gpr[2] = (0u | 1u);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[8] = (16968u << 16u);
|
|
ctx.gpr[10] = (16320u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[14]));
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[17]);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[10]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(3));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[9] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
ctx.gpr[8] = (0u | 255u);
|
|
ctx.gpr[31] = (0x088669F4u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0125_entry, 125u, 328u, 0x089FA154u>(ctx, &aot_mem) && ctx.pc == 0x088669F4u) goto L_088669F4;
|
|
return;
|
|
L_088669F4:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[18] = (ctx.gpr[29] + static_cast<std::uint32_t>(144));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[19] = (ctx.gpr[16] + static_cast<std::uint32_t>(32));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[20] = (ctx.gpr[29] + static_cast<std::uint32_t>(160));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[21] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[20] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(192), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(196), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(200), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[22] = (ctx.gpr[29] + static_cast<std::uint32_t>(192));
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[17] = (ctx.gpr[4] & 255u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[22] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08866A60u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 184u, 0x088250B4u>(ctx, &aot_mem) && ctx.pc == 0x08866A60u) goto L_08866A60;
|
|
return;
|
|
L_08866A60:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = -vfpu_s[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(144), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(152), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (ctx.gpr[22] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08866AB0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 184u, 0x088250B4u>(ctx, &aot_mem) && ctx.pc == 0x08866AB0u) goto L_08866AB0;
|
|
return;
|
|
L_08866AB0:
|
|
ctx.gpr[31] = (0x08866AB8u);
|
|
// nop
|
|
goto L_08865B30;
|
|
L_08866AB8:
|
|
ctx.gpr[17] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[4] = (0u | 2u);
|
|
{ const bool branch_taken = ctx.gpr[17] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866C20;
|
|
}
|
|
goto L_08866AC8;
|
|
}
|
|
L_08866AC8:
|
|
ctx.gpr[4] = (16428u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(288), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (16180u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 48234u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(292), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (48642u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 3146u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(296), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(288));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(272));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(320), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (16288u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 50332u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(324), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(328), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(304));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(352), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(356), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (48845u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] | 42816u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[6]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(360), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(352));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(336));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(384), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(388), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(392), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(384));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(368));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[8] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.gpr[8] = (17008u << 16u);
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[16] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[17] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[18] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[19] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 255u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08866C18u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 200u, 0x088252C4u>(ctx, &aot_mem) && ctx.pc == 0x08866C18u) goto L_08866C18;
|
|
return;
|
|
L_08866C18:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866D8C;
|
|
}
|
|
goto L_08866C20;
|
|
}
|
|
L_08866C20:
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08866C38;
|
|
}
|
|
goto L_08866C28;
|
|
}
|
|
L_08866C28:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-8148)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 256u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866D8C;
|
|
}
|
|
goto L_08866C38;
|
|
}
|
|
L_08866C38:
|
|
ctx.gpr[4] = (16428u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(416), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (16180u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 48234u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(420), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (48845u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 42816u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(424), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(416));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(400));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(448), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (16288u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 50332u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(452), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(456), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(448));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(432));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(480), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(484), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (48905u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] | 64487u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[6]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(488), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(480));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(464));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(512), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(516), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(520), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(512));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(496));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[8] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[8] = (16128u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.gpr[8] = (17008u << 16u);
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[16] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[17] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[18] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[19] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 255u);
|
|
ctx.gpr[10] = (0u | 255u);
|
|
ctx.gpr[11] = (0u | 255u);
|
|
ctx.gpr[31] = (0x08866D8Cu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 200u, 0x088252C4u>(ctx, &aot_mem) && ctx.pc == 0x08866D8Cu) goto L_08866D8C;
|
|
return;
|
|
L_08866D8C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_08866D94;
|
|
}
|
|
L_08866D94:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(88))))));
|
|
ctx.gpr[7] = (2228u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(-31116)));
|
|
ctx.gpr[7] = (aot_mem.aot_load16(ctx.gpr[7] + static_cast<std::uint32_t>(10)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[7];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886724C;
|
|
}
|
|
goto L_08866DAC;
|
|
}
|
|
L_08866DAC:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) > 0;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 2 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08866DC4;
|
|
}
|
|
goto L_08866DB4;
|
|
}
|
|
L_08866DB4:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866F28;
|
|
}
|
|
goto L_08866DBC;
|
|
}
|
|
L_08866DBC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866DDC;
|
|
}
|
|
goto L_08866DC4;
|
|
}
|
|
L_08866DC4:
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08866E4C;
|
|
}
|
|
goto L_08866DCC;
|
|
}
|
|
L_08866DCC:
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866EBC;
|
|
}
|
|
goto L_08866DD4;
|
|
}
|
|
L_08866DD4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866F28;
|
|
}
|
|
goto L_08866DDC;
|
|
}
|
|
L_08866DDC:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[20] = (0u | 0u);
|
|
ctx.gpr[19] = (0u | 255u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[17] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08866E10;
|
|
}
|
|
goto L_08866DF4;
|
|
}
|
|
L_08866DF4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(128));
|
|
if (branch_taken) {
|
|
goto L_08866E14;
|
|
}
|
|
goto L_08866E10;
|
|
}
|
|
L_08866E10:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08866E14;
|
|
L_08866E14:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(592));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866F88;
|
|
}
|
|
goto L_08866E4C;
|
|
}
|
|
L_08866E4C:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[20] = (0u | 255u);
|
|
ctx.gpr[19] = (0u | 128u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[17] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08866E80;
|
|
}
|
|
goto L_08866E64;
|
|
}
|
|
L_08866E64:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(64));
|
|
if (branch_taken) {
|
|
goto L_08866E84;
|
|
}
|
|
goto L_08866E80;
|
|
}
|
|
L_08866E80:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08866E84;
|
|
L_08866E84:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(592));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866F88;
|
|
}
|
|
goto L_08866EBC;
|
|
}
|
|
L_08866EBC:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[20] = (0u | 255u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[17] = (0u | 2u);
|
|
if (branch_taken) {
|
|
goto L_08866EEC;
|
|
}
|
|
goto L_08866ED4;
|
|
}
|
|
L_08866ED4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08866EF0;
|
|
}
|
|
goto L_08866EEC;
|
|
}
|
|
L_08866EEC:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08866EF0;
|
|
L_08866EF0:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(592));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08866F88;
|
|
}
|
|
goto L_08866F28;
|
|
}
|
|
L_08866F28:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08866F50;
|
|
}
|
|
goto L_08866F34;
|
|
L_08866F34:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(64));
|
|
if (branch_taken) {
|
|
goto L_08866F50;
|
|
}
|
|
goto L_08866F50;
|
|
}
|
|
L_08866F50:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(592));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_08866F88;
|
|
}
|
|
L_08866F88:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(528));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (ctx.gpr[16] + static_cast<std::uint32_t>(32));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(544));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(560));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(576), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(580), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(584), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(576));
|
|
ctx.gpr[8] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[8] = (ctx.gpr[8] & 255u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08866FE0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 184u, 0x088250B4u>(ctx, &aot_mem) && ctx.pc == 0x08866FE0u) goto L_08866FE0;
|
|
return;
|
|
L_08866FE0:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867068;
|
|
}
|
|
goto L_08867000;
|
|
}
|
|
L_08867000:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(608));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(624), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(628), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(632), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(624));
|
|
ctx.gpr[4] = (16640u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[20]);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (15232u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
{ const float fs = ctx.fpr[16]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[31] = (0x08867068u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0184_entry, 184u, 343u, 0x08AE5E5Cu>(ctx, &aot_mem) && ctx.pc == 0x08867068u) goto L_08867068;
|
|
return;
|
|
L_08867068:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.gpr[4] = (15692u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867164;
|
|
}
|
|
goto L_0886708C;
|
|
}
|
|
L_0886708C:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[20]);
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[5] = (2229u << 16u);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[18] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[15])));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11156)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[5] = (15872u << 16u);
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[4] = (16640u << 16u);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[6] = (49408u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[19]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[5] = (16704u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[8] = (16256u << 16u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[19]));
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27668)));
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[17]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.gpr[2] = (16928u << 16u);
|
|
ctx.gpr[9] = (std::bit_cast<std::uint32_t>(ctx.fpr[19]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[18]));
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[10] = (std::bit_cast<std::uint32_t>(ctx.fpr[17]));
|
|
ctx.gpr[9] = (ctx.gpr[9] & 255u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[10] = (ctx.gpr[10] & 255u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(ctx.fpr[18]));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[11] = (ctx.gpr[11] & 255u);
|
|
ctx.fpr[19] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[8] = (0u | 128u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x08867164u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0073_entry, 73u, 328u, 0x0892AA10u>(ctx, &aot_mem) && ctx.pc == 0x08867164u) goto L_08867164;
|
|
return;
|
|
L_08867164:
|
|
ctx.gpr[4] = (2232u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(12960));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.set_fpu_condition((ctx.fpr[12] < ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = !ctx.fpu_condition();
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08867244;
|
|
}
|
|
goto L_0886719C;
|
|
}
|
|
L_0886719C:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[20]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.gpr[5] = (16179u << 16u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11136)));
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.gpr[4] = (ctx.gpr[5] | 13107u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
ctx.gpr[7] = (16352u << 16u);
|
|
ctx.gpr[2] = (0u | 1u);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[8] = (16968u << 16u);
|
|
ctx.gpr[10] = (16320u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[10]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[17]);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[9] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
ctx.gpr[31] = (0x08867244u);
|
|
ctx.gpr[8] = (0u | 255u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0125_entry, 125u, 328u, 0x089FA154u>(ctx, &aot_mem) && ctx.pc == 0x08867244u) goto L_08867244;
|
|
return;
|
|
L_08867244:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_0886724C;
|
|
}
|
|
L_0886724C:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(88))))));
|
|
ctx.gpr[7] = (2228u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(-31116)));
|
|
ctx.gpr[7] = (aot_mem.aot_load16(ctx.gpr[7] + static_cast<std::uint32_t>(12)));
|
|
{ const bool branch_taken = ctx.gpr[5] == ctx.gpr[7];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886727C;
|
|
}
|
|
goto L_08867264;
|
|
}
|
|
L_08867264:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(88))))));
|
|
ctx.gpr[7] = (2228u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(-31116)));
|
|
ctx.gpr[7] = (aot_mem.aot_load16(ctx.gpr[7] + static_cast<std::uint32_t>(14)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[7];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_0886727C;
|
|
}
|
|
L_0886727C:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(88))))));
|
|
ctx.gpr[7] = (2228u << 16u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(-31116)));
|
|
ctx.gpr[7] = (aot_mem.aot_load16(ctx.gpr[7] + static_cast<std::uint32_t>(12)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[7];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088675D0;
|
|
}
|
|
goto L_08867294;
|
|
}
|
|
L_08867294:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) > 0;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 2 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_088672AC;
|
|
}
|
|
goto L_0886729C;
|
|
}
|
|
L_0886729C:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867518;
|
|
}
|
|
goto L_088672A4;
|
|
}
|
|
L_088672A4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_088672C4;
|
|
}
|
|
goto L_088672AC;
|
|
}
|
|
L_088672AC:
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_0886738C;
|
|
}
|
|
goto L_088672B4;
|
|
}
|
|
L_088672B4:
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867454;
|
|
}
|
|
goto L_088672BC;
|
|
}
|
|
L_088672BC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867518;
|
|
}
|
|
goto L_088672C4;
|
|
}
|
|
L_088672C4:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[18] = (0u | 255u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[20] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_088672F8;
|
|
}
|
|
goto L_088672DC;
|
|
}
|
|
L_088672DC:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(256));
|
|
if (branch_taken) {
|
|
goto L_088672FC;
|
|
}
|
|
goto L_088672F8;
|
|
}
|
|
L_088672F8:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_088672FC;
|
|
L_088672FC:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08867354;
|
|
}
|
|
goto L_08867338;
|
|
L_08867338:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(320));
|
|
if (branch_taken) {
|
|
goto L_08867354;
|
|
}
|
|
goto L_08867354;
|
|
}
|
|
L_08867354:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886790C;
|
|
}
|
|
goto L_0886738C;
|
|
}
|
|
L_0886738C:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[17] = (0u | 255u);
|
|
ctx.gpr[18] = (0u | 128u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[20] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_088673C0;
|
|
}
|
|
goto L_088673A4;
|
|
}
|
|
L_088673A4:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(128));
|
|
if (branch_taken) {
|
|
goto L_088673C4;
|
|
}
|
|
goto L_088673C0;
|
|
}
|
|
L_088673C0:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_088673C4;
|
|
L_088673C4:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_0886741C;
|
|
}
|
|
goto L_08867400;
|
|
L_08867400:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
if (branch_taken) {
|
|
goto L_0886741C;
|
|
}
|
|
goto L_0886741C;
|
|
}
|
|
L_0886741C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886790C;
|
|
}
|
|
goto L_08867454;
|
|
}
|
|
L_08867454:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[17] = (0u | 255u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[20] = (0u | 2u);
|
|
if (branch_taken) {
|
|
goto L_08867484;
|
|
}
|
|
goto L_0886746C;
|
|
}
|
|
L_0886746C:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08867488;
|
|
}
|
|
goto L_08867484;
|
|
}
|
|
L_08867484:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_08867488;
|
|
L_08867488:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_088674E0;
|
|
}
|
|
goto L_088674C4;
|
|
L_088674C4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(64));
|
|
if (branch_taken) {
|
|
goto L_088674E0;
|
|
}
|
|
goto L_088674E0;
|
|
}
|
|
L_088674E0:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886790C;
|
|
}
|
|
goto L_08867518;
|
|
}
|
|
L_08867518:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08867540;
|
|
}
|
|
goto L_08867524;
|
|
}
|
|
L_08867524:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(128));
|
|
if (branch_taken) {
|
|
goto L_08867540;
|
|
}
|
|
goto L_08867540;
|
|
}
|
|
L_08867540:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08867598;
|
|
}
|
|
goto L_0886757C;
|
|
L_0886757C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
if (branch_taken) {
|
|
goto L_08867598;
|
|
}
|
|
goto L_08867598;
|
|
}
|
|
L_08867598:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(672));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_088675D0;
|
|
}
|
|
L_088675D0:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) > 0;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 2 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_088675E8;
|
|
}
|
|
goto L_088675D8;
|
|
}
|
|
L_088675D8:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867854;
|
|
}
|
|
goto L_088675E0;
|
|
}
|
|
L_088675E0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867600;
|
|
}
|
|
goto L_088675E8;
|
|
}
|
|
L_088675E8:
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 3 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_088676C8;
|
|
}
|
|
goto L_088675F0;
|
|
}
|
|
L_088675F0:
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867790;
|
|
}
|
|
goto L_088675F8;
|
|
}
|
|
L_088675F8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867854;
|
|
}
|
|
goto L_08867600;
|
|
}
|
|
L_08867600:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[18] = (0u | 255u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[20] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08867634;
|
|
}
|
|
goto L_08867618;
|
|
}
|
|
L_08867618:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(128));
|
|
if (branch_taken) {
|
|
goto L_08867638;
|
|
}
|
|
goto L_08867634;
|
|
}
|
|
L_08867634:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_08867638;
|
|
L_08867638:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08867690;
|
|
}
|
|
goto L_08867674;
|
|
L_08867674:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(320));
|
|
if (branch_taken) {
|
|
goto L_08867690;
|
|
}
|
|
goto L_08867690;
|
|
}
|
|
L_08867690:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886790C;
|
|
}
|
|
goto L_088676C8;
|
|
}
|
|
L_088676C8:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[17] = (0u | 255u);
|
|
ctx.gpr[18] = (0u | 128u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[20] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_088676FC;
|
|
}
|
|
goto L_088676E0;
|
|
}
|
|
L_088676E0:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(64));
|
|
if (branch_taken) {
|
|
goto L_08867700;
|
|
}
|
|
goto L_088676FC;
|
|
}
|
|
L_088676FC:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_08867700;
|
|
L_08867700:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08867758;
|
|
}
|
|
goto L_0886773C;
|
|
L_0886773C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(256));
|
|
if (branch_taken) {
|
|
goto L_08867758;
|
|
}
|
|
goto L_08867758;
|
|
}
|
|
L_08867758:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886790C;
|
|
}
|
|
goto L_08867790;
|
|
}
|
|
L_08867790:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[17] = (0u | 255u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
ctx.gpr[19] = (0u | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[20] = (0u | 2u);
|
|
if (branch_taken) {
|
|
goto L_088677C0;
|
|
}
|
|
goto L_088677A8;
|
|
}
|
|
L_088677A8:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_088677C4;
|
|
}
|
|
goto L_088677C0;
|
|
}
|
|
L_088677C0:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_088677C4;
|
|
L_088677C4:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_0886781C;
|
|
}
|
|
goto L_08867800;
|
|
L_08867800:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
if (branch_taken) {
|
|
goto L_0886781C;
|
|
}
|
|
goto L_0886781C;
|
|
}
|
|
L_0886781C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_0886790C;
|
|
}
|
|
goto L_08867854;
|
|
}
|
|
L_08867854:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[5]) < 0;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_0886787C;
|
|
}
|
|
goto L_08867860;
|
|
}
|
|
L_08867860:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[6] = (2230u << 16u);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 6u);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(64));
|
|
if (branch_taken) {
|
|
goto L_0886787C;
|
|
}
|
|
goto L_0886787C;
|
|
}
|
|
L_0886787C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
if (static_cast<std::int32_t>(ctx.gpr[5]) < 0) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_088678D4;
|
|
}
|
|
goto L_088678B8;
|
|
L_088678B8:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(24))))));
|
|
ctx.gpr[5] = (2230u << 16u);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(-7372)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(256));
|
|
if (branch_taken) {
|
|
goto L_088678D4;
|
|
}
|
|
goto L_088678D4;
|
|
}
|
|
L_088678D4:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(48);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
{ float vfpu_matrix[16]{}, vfpu_target_raw[4]{}, vfpu_target[4]{}, vfpu_result[4]{};
|
|
ctx.read_vfpu_matrix(vfpu_matrix, 36u, 3u);
|
|
ctx.read_vfpu_vector_ct<1u, 3u>(vfpu_target_raw);
|
|
constexpr std::uint32_t vfpu_side = 3u;
|
|
constexpr std::uint32_t vfpu_input_length = 3u;
|
|
for (std::uint32_t i = 0; i < 4u; ++i) vfpu_target[i] = i < vfpu_input_length ? vfpu_target_raw[i] : 0.0f;
|
|
if (vfpu_side - 1u >= vfpu_input_length) vfpu_target[vfpu_side - 1u] = 1.0f;
|
|
for (std::uint32_t row = 0; row + 1u < vfpu_side; ++row) {
|
|
float sum = 0.0f;
|
|
for (std::uint32_t column = 0; column < vfpu_side; ++column) sum += vfpu_matrix[row * 4u + column] * vfpu_target[column];
|
|
vfpu_result[row] = sum;
|
|
}
|
|
float vfpu_final_row[4]{vfpu_matrix[(vfpu_side - 1u) * 4u + 0u], vfpu_matrix[(vfpu_side - 1u) * 4u + 1u],
|
|
vfpu_matrix[(vfpu_side - 1u) * 4u + 2u], vfpu_matrix[(vfpu_side - 1u) * 4u + 3u]};
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 0u>(vfpu_final_row);
|
|
ctx.apply_vfpu_source_prefix_ct<4u, 1u>(vfpu_target);
|
|
for (std::uint32_t column = 0; column < 4u; ++column) vfpu_result[vfpu_side - 1u] += vfpu_final_row[column] * vfpu_target[column];
|
|
const std::uint32_t vfpu_destination_prefix = ctx.vfpu_ctrl[2];
|
|
const std::uint32_t vfpu_last_lane = vfpu_side - 1u;
|
|
ctx.vfpu_ctrl[2] = ((vfpu_destination_prefix & (1u << 8u)) << vfpu_last_lane) |
|
|
((vfpu_destination_prefix & 3u) << (vfpu_last_lane * 2u));
|
|
ctx.write_vfpu_vector_with_destination_prefix(vfpu_result, 0u, vfpu_side); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<7u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(688));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_0886790C;
|
|
}
|
|
L_0886790C:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(656));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (16384u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / vfpu_s[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(640));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[20]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867A20;
|
|
}
|
|
goto L_08867960;
|
|
}
|
|
L_08867960:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[21] = (ctx.gpr[29] + static_cast<std::uint32_t>(704));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[22] = (ctx.gpr[16] + static_cast<std::uint32_t>(32));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[23] = (ctx.gpr[29] + static_cast<std::uint32_t>(720));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(736));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[20] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(752), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(756), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(760), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(1));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(1456), ctx.gpr[20]);
|
|
ctx.gpr[20] = (ctx.gpr[4] & 255u);
|
|
ctx.gpr[4] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[21] = (ctx.gpr[29] + static_cast<std::uint32_t>(752));
|
|
ctx.gpr[7] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[31] = (0x088679D0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 184u, 0x088250B4u>(ctx, &aot_mem) && ctx.pc == 0x088679D0u) goto L_088679D0;
|
|
return;
|
|
L_088679D0:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(704), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(708), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(712), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(704));
|
|
ctx.gpr[8] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08867A1Cu);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 184u, 0x088250B4u>(ctx, &aot_mem) && ctx.pc == 0x08867A1Cu) goto L_08867A1C;
|
|
return;
|
|
L_08867A1C:
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1456)));
|
|
goto L_08867A20;
|
|
L_08867A20:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867AA8;
|
|
}
|
|
goto L_08867A40;
|
|
}
|
|
L_08867A40:
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(768));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(784), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(788), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(792), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(784));
|
|
ctx.gpr[4] = (16672u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[17]);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (15232u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
{ const float fs = ctx.fpr[16]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[31] = (0x08867AA8u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0184_entry, 184u, 343u, 0x08AE5E5Cu>(ctx, &aot_mem) && ctx.pc == 0x08867AA8u) goto L_08867AA8;
|
|
return;
|
|
L_08867AA8:
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.gpr[4] = (15692u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867BA4;
|
|
}
|
|
goto L_08867ACC;
|
|
}
|
|
L_08867ACC:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[17]);
|
|
ctx.gpr[4] = (2230u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(-7368)));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[5] = (2229u << 16u);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[18] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[15])));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11156)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[5] = (15872u << 16u);
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[4] = (16672u << 16u);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[6] = (49440u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[19]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.gpr[5] = (16704u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[8] = (16256u << 16u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[19]));
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[0]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27668)));
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[17]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.gpr[2] = (16928u << 16u);
|
|
ctx.gpr[9] = (std::bit_cast<std::uint32_t>(ctx.fpr[19]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[18]));
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
ctx.gpr[10] = (std::bit_cast<std::uint32_t>(ctx.fpr[17]));
|
|
ctx.gpr[9] = (ctx.gpr[9] & 255u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[10] = (ctx.gpr[10] & 255u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[11] = (std::bit_cast<std::uint32_t>(ctx.fpr[18]));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[11] = (ctx.gpr[11] & 255u);
|
|
ctx.fpr[19] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[8] = (0u | 128u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[31] = (0x08867BA4u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0073_entry, 73u, 328u, 0x0892AA10u>(ctx, &aot_mem) && ctx.pc == 0x08867BA4u) goto L_08867BA4;
|
|
return;
|
|
L_08867BA4:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[20]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_08867BAC;
|
|
}
|
|
L_08867BAC:
|
|
ctx.gpr[4] = (2232u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(12960));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.set_fpu_condition((ctx.fpr[12] <= ctx.fpr[13]));
|
|
// nop
|
|
{ const bool branch_taken = ctx.fpu_condition();
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08867C98;
|
|
}
|
|
goto L_08867BE4;
|
|
}
|
|
L_08867BE4:
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[17]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.gpr[5] = (16179u << 16u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11136)));
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.gpr[4] = (ctx.gpr[5] | 13107u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
ctx.gpr[7] = (16352u << 16u);
|
|
ctx.gpr[2] = (0u | 1u);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[8] = (16968u << 16u);
|
|
ctx.gpr[10] = (16320u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[10]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[20]);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[9] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
ctx.gpr[31] = (0x08867C90u);
|
|
ctx.gpr[8] = (0u | 255u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0125_entry, 125u, 328u, 0x089FA154u>(ctx, &aot_mem) && ctx.pc == 0x08867C90u) goto L_08867C90;
|
|
return;
|
|
L_08867C90:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867D40;
|
|
}
|
|
goto L_08867C98;
|
|
}
|
|
L_08867C98:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[17]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(22640)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[18]);
|
|
ctx.gpr[5] = (16179u << 16u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(11136)));
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.gpr[4] = (ctx.gpr[5] | 13107u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[16])));
|
|
ctx.gpr[7] = (16352u << 16u);
|
|
ctx.gpr[2] = (0u | 1u);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[2]);
|
|
ctx.gpr[8] = (16968u << 16u);
|
|
ctx.gpr[10] = (16320u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[10]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[20]);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[9] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[7]);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.gpr[7] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
ctx.gpr[31] = (0x08867D40u);
|
|
ctx.gpr[8] = (0u | 255u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0125_entry, 125u, 328u, 0x089FA154u>(ctx, &aot_mem) && ctx.pc == 0x08867D40u) goto L_08867D40;
|
|
return;
|
|
L_08867D40:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1464)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1468)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1472)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1476)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1480)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1484)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1488)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1492)));
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1496)));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1500)));
|
|
ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1504)));
|
|
ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1508)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(1512)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(1520));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08867D7C:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(5260)));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = ctx.fpr[13] / ctx.fpr[12];
|
|
ctx.gpr[5] = (2227u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(5256)));
|
|
ctx.gpr[6] = (2227u << 16u);
|
|
ctx.gpr[4] = (17096u << 16u);
|
|
ctx.gpr[9] = (2227u << 16u);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(5284)));
|
|
ctx.gpr[5] = (16014u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 14571u);
|
|
ctx.gpr[11] = (2227u << 16u);
|
|
ctx.gpr[10] = (2227u << 16u);
|
|
ctx.gpr[7] = (16672u << 16u);
|
|
ctx.gpr[8] = (15744u << 16u);
|
|
ctx.gpr[2] = (2227u << 16u);
|
|
ctx.gpr[3] = (2227u << 16u);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[18];
|
|
aot_mem.aot_store32(ctx.gpr[9] + static_cast<std::uint32_t>(5264), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[12] = (2227u << 16u);
|
|
ctx.fpr[14] = ctx.fpr[17] / ctx.fpr[15];
|
|
aot_mem.aot_store32(ctx.gpr[11] + static_cast<std::uint32_t>(5272), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[12] = ctx.fpr[19] / ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[10] + static_cast<std::uint32_t>(5268), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[7]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[8]);
|
|
{ const float fs = ctx.fpr[16]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[16] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[2] + static_cast<std::uint32_t>(5276), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[3] + static_cast<std::uint32_t>(5280), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_store32(ctx.gpr[12] + static_cast<std::uint32_t>(5288), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08867E10:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08867E18:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08867E20:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-48));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(24), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08867E44u);
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 395u, 0x0894E368u>(ctx, &aot_mem) && ctx.pc == 0x08867E44u) goto L_08867E44;
|
|
return;
|
|
L_08867E44:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867ECC;
|
|
}
|
|
goto L_08867E50;
|
|
}
|
|
L_08867E50:
|
|
ctx.gpr[31] = (0x08867E58u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 393u, 0x0894E348u>(ctx, &aot_mem) && ctx.pc == 0x08867E58u) goto L_08867E58;
|
|
return;
|
|
L_08867E58:
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08867E68u);
|
|
ctx.fpr[20] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[20])));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0082_entry, 82u, 394u, 0x0894E358u>(ctx, &aot_mem) && ctx.pc == 0x08867E68u) goto L_08867E68;
|
|
return;
|
|
L_08867E68:
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[2]);
|
|
{ const bool branch_taken = ctx.gpr[16] == 0u;
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
if (branch_taken) {
|
|
goto L_08867ECC;
|
|
}
|
|
goto L_08867E74;
|
|
}
|
|
L_08867E74:
|
|
ctx.gpr[4] = (18175u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 65024u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08867E80;
|
|
L_08867E80:
|
|
ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (aot_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(2)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.fpr[14] = ctx.fpr[14] / ctx.fpr[12];
|
|
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(-1));
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[15] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[15])));
|
|
ctx.fpr[15] = ctx.fpr[15] / ctx.fpr[12];
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[14]));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[15]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_store16(ctx.gpr[17] + static_cast<std::uint32_t>(2), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
{ const bool branch_taken = ctx.gpr[16] != 0u;
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(16));
|
|
if (branch_taken) {
|
|
goto L_08867E80;
|
|
}
|
|
goto L_08867ECC;
|
|
}
|
|
L_08867ECC:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(28)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 2048u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08867EE8:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-80));
|
|
ctx.gpr[5] = (ctx.gpr[6] << 4u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(60), ctx.gpr[19]);
|
|
ctx.gpr[19] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[9] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), ctx.gpr[6]);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(4), ctx.gpr[8]);
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(8), ctx.gpr[9]);
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(12), ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[7] << 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_store32(ctx.gpr[5] + static_cast<std::uint32_t>(0), ctx.gpr[6]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_store32(ctx.gpr[5] + static_cast<std::uint32_t>(4), ctx.gpr[7]);
|
|
aot_mem.aot_store32(ctx.gpr[5] + static_cast<std::uint32_t>(8), ctx.gpr[8]);
|
|
aot_mem.aot_store32(ctx.gpr[5] + static_cast<std::uint32_t>(12), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[19] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08867F64u);
|
|
ctx.gpr[5] = (0u | 2u);
|
|
goto L_08867E20;
|
|
L_08867F64:
|
|
ctx.gpr[17] = (2233u << 16u);
|
|
ctx.gpr[16] = (ctx.gpr[17] + static_cast<std::uint32_t>(-5168));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[18] = (0u + static_cast<std::uint32_t>(-16));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-32));
|
|
ctx.gpr[18] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
ctx.gpr[6] = (0u | 32u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(12), ctx.gpr[18]);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08867F90u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 296u, 0x089D9784u>(ctx, &aot_mem) && ctx.pc == 0x08867F90u) goto L_08867F90;
|
|
return;
|
|
L_08867F90:
|
|
ctx.gpr[4] = (2227u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(13696)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08867FE0;
|
|
}
|
|
goto L_08867FA0;
|
|
}
|
|
L_08867FA0:
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[7] + static_cast<std::uint32_t>(32));
|
|
{ const bool branch_taken = ctx.gpr[7] == ctx.gpr[6];
|
|
ctx.gpr[5] = (2229u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08867FE0;
|
|
}
|
|
goto L_08867FB0;
|
|
}
|
|
L_08867FB0:
|
|
ctx.gpr[4] = (2229u << 16u);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[7] + static_cast<std::uint32_t>(8))))));
|
|
goto L_08867FB8;
|
|
L_08867FB8:
|
|
ctx.gpr[9] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(27020)));
|
|
ctx.gpr[10] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[7] + static_cast<std::uint32_t>(10))))));
|
|
ctx.gpr[8] = (ctx.gpr[9] - ctx.gpr[8]);
|
|
aot_mem.aot_store16(ctx.gpr[7] + static_cast<std::uint32_t>(8), static_cast<std::uint16_t>(ctx.gpr[8]));
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(27024)));
|
|
ctx.gpr[8] = (ctx.gpr[8] - ctx.gpr[10]);
|
|
aot_mem.aot_store16(ctx.gpr[7] + static_cast<std::uint32_t>(10), static_cast<std::uint16_t>(ctx.gpr[8]));
|
|
ctx.gpr[7] = (ctx.gpr[7] + static_cast<std::uint32_t>(16));
|
|
if (ctx.gpr[7] != ctx.gpr[6]) {
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[7] + static_cast<std::uint32_t>(8))))));
|
|
goto L_08867FB8;
|
|
}
|
|
goto L_08867FE0;
|
|
L_08867FE0:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(-5168)));
|
|
ctx.gpr[5] = (4736u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(286));
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), ctx.gpr[5]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(-5168)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(4));
|
|
{ const bool branch_taken = ctx.gpr[18] == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(-5168), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0025_entry, 25u, 2u, 0x0886804Cu>(ctx, &aot_mem); return;
|
|
}
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0025_entry, 25u, 1u, 0x08868000u>(ctx, &aot_mem); return;
|
|
}
|
|
}
|
|
|
|
void recomp_unit_0024(Runtime &rt, AllegrexContext &ctx) {
|
|
auto aot_mem = rt.memory().aot_fast_view();
|
|
recomp_unit_0024_entry(rt, ctx, 0u, aot_mem);
|
|
}
|
|
|
|
void register_generated_unit_24(Runtime &runtime) {
|
|
runtime.register_generated_unit(24u, 0x08864000u, 16384u, &recomp_unit_0024, &recomp_unit_0024_entry);
|
|
runtime.register_function(0x08864004u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864010u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864014u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886401Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864034u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864048u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886406Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864074u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886408Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088640A0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088640C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088640C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088640CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088640E8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088640F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864104u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864108u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886412Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864134u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864150u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864198u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088641B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088641C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088641D4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088641F4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864200u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864208u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864218u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864224u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864230u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864238u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886423Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864244u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864258u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864278u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864280u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864290u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886429Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088642A8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088642B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088642B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088642BCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088642D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088642F0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088642F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864314u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864320u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886432Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864334u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864338u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864340u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864354u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864374u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886437Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864398u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088643A4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088643B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088643B8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088643BCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088643C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088643D8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088643F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864400u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886441Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886442Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864438u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864448u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864458u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864460u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886447Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088644ACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088644C8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088644D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088644ECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088644F4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088644FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864504u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886450Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864514u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864520u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886452Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864538u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864544u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864554u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864560u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864578u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864580u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864584u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088645C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088646B8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088646CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088646D8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088646ECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088646F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886470Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864718u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886472Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864738u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886474Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864758u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864770u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886477Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864794u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088647A0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088647B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088647C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088647D8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088647DCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088647ECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088647F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864810u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864814u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864824u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864830u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864848u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886484Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886485Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864868u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864880u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864884u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864894u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088648A0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088648B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088648C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088648E8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088648F4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864904u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886491Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864930u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886493Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886496Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864978u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864988u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886499Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088649B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088649C8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088649D4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088649F0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088649FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A1Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A28u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A34u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A40u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A58u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A64u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A84u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864A90u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864AA4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864AB0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864AC4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864AD0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864AE8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864AF4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B0Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B18u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B2Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B38u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B4Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B58u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B6Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B78u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B8Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864B98u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864BB0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864BBCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864BD8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864BE8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864BF4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C10u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C20u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C28u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C2Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C38u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C5Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C78u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864C84u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864CA0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864CB0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864CBCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864CD8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864CE8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864CF0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864CF4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D00u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D1Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D2Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D38u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D50u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D5Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D70u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D7Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D90u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864D9Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864DB4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864DC0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864DD8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864DE4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864DFCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864E08u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864E1Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864E94u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864EB4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864EC0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864ECCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864ED4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864EDCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864EE8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864EFCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F0Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F20u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F30u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F38u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F40u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F50u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F58u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F60u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F68u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F70u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864F84u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864FA4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864FB4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864FC0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864FD4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864FE4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08864FF8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865008u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865010u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865018u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865028u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865030u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865038u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865040u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865048u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886505Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865090u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865098u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088650ACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088650B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088650C8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088650CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088650E4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865104u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865110u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865118u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865120u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865128u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865130u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865138u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886514Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886516Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865174u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886517Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865184u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865198u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088651CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088651D4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088651E8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088651F0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865204u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865208u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865220u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886522Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865234u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886523Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865270u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865284u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088652A4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088652C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088652FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865308u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865310u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886531Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865344u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865360u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865394u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886539Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088653A8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088653B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088653C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088653DCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088653E4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088653FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865418u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865420u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865428u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865438u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865440u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865468u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865474u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886548Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088654A0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865504u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865518u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886553Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865568u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886557Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088655C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088655F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886560Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865628u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865650u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886565Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865678u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886568Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088656B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088656C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088656CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088656D4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088656DCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088656E4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088656F4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886570Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865718u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886571Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865724u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865740u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865748u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865760u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865764u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865770u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865778u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865788u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865794u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088657BCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088657C8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088657D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088657D8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088657E4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088657FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865804u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886580Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865820u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886583Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865848u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865854u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886585Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865864u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865880u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865898u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658A0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658ACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658B8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658D8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658E4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088658FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865904u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865910u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865914u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886591Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865944u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865968u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865978u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865994u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659A0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659A8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659B8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088659F0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A00u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A1Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A28u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A34u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A3Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A44u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A4Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A54u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A5Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A60u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A68u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865A94u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865AA8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865AB0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865AB8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865AC0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865ACCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865AF8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B0Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B14u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B1Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B24u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B30u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B4Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B58u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B60u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B68u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B6Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865B74u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865BA4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865BC8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865BD0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865BD4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865BDCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865BF4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C0Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C20u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C44u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C5Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C60u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C74u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C88u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C90u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865C94u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865CA0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865CECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865CFCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D0Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D14u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D24u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D2Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D34u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D3Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D48u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D4Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D70u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D78u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865D84u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E20u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E30u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E44u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E48u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E68u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E70u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E78u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E88u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865E9Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EA4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EB4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EC4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865ECCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EDCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EE4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EF4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865EFCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865F00u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865F2Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865F34u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865F3Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865F40u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865FE0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08865FF0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866004u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866018u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866044u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866054u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886605Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866064u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886606Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886607Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866090u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866098u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660A4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660ACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660BCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660D4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660DCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088660E0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886610Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866114u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886611Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866120u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088661C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088661D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088661E4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088661ECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088661FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866210u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866214u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886622Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866280u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866294u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886629Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662A8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662B8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662C8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662D4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088662ECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866300u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866318u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866324u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886633Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886634Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866364u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866374u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886638Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866390u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088663A4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088663B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088663CCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088663E0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088663ECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866408u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886641Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866428u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866444u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866458u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866464u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866480u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866494u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088664A4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088664ACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088664B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088664E8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866510u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866524u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886658Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088665A0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088665A8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088665B0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866640u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088666D8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088666F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866760u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866784u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886685Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866894u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866940u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866948u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088669F4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866A60u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866AB0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866AB8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866AC8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866C18u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866C20u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866C28u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866C38u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866D8Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866D94u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DB4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DBCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DC4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DCCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DD4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DDCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866DF4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866E10u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866E14u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866E4Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866E64u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866E80u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866E84u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866EBCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866ED4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866EECu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866EF0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866F28u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866F34u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866F50u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866F88u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08866FE0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867000u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867068u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886708Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867164u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886719Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867244u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886724Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867264u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886727Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867294u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886729Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672A4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672ACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672B4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672BCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672DCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088672FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867338u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867354u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886738Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088673A4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088673C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088673C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867400u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886741Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867454u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886746Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867484u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867488u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088674C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088674E0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867518u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867524u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867540u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886757Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867598u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088675D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088675D8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088675E0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088675E8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088675F0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088675F8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867600u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867618u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867634u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867638u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867674u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867690u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088676C8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088676E0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088676FCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867700u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886773Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867758u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867790u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088677A8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088677C0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088677C4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867800u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886781Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867854u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867860u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886787Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088678B8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088678D4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x0886790Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867960u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x088679D0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867A1Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867A20u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867A40u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867AA8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867ACCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867BA4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867BACu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867BE4u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867C90u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867C98u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867D40u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867D7Cu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E10u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E18u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E20u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E44u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E50u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E58u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E68u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E74u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867E80u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867ECCu, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867EE8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867F64u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867F90u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867FA0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867FB0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867FB8u, &recomp_unit_0024, "recomp_unit_0024");
|
|
runtime.register_function(0x08867FE0u, &recomp_unit_0024, "recomp_unit_0024");
|
|
}
|
|
} // namespace psprecomp
|