mirror of
https://github.com/jessicanataliagta/PSPRecomp
synced 2026-09-29 01:19:59 -04:00
b87c41da5d
otimizações round 14 (severo), radio fix
10332 lines
491 KiB
C++
10332 lines
491 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_0153[4094] = {
|
|
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 5, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 7,
|
|
8, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
11, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 16, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 19, 20, 0, 0,
|
|
0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 24, 0, 0, 25, 0, 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, 0, 28, 0, 29, 0,
|
|
0, 0, 0, 0, 30, 0, 0, 0, 0, 31, 0, 0, 0, 32, 0, 33, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 0, 37, 0,
|
|
38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 40, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 46, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 47, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 54, 0, 55, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0,
|
|
0, 0, 0, 58, 0, 0, 0, 59, 0, 0, 0, 0, 60, 0, 0, 61, 0, 0, 0, 0, 0, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 67, 0, 0, 0, 68, 0, 69, 0, 0, 70, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 72, 0, 0, 0, 73, 0, 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 78,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 80, 0, 0, 81, 0, 0, 0, 0, 0, 0, 82, 0,
|
|
0, 83, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 86, 0, 87, 0, 88, 0, 0, 0, 0, 0, 0, 0, 89, 0, 90, 91,
|
|
0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 94, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0,
|
|
97, 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 99, 0, 100, 0, 101, 0, 102, 0, 103, 0, 104, 0, 105, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, 110, 0, 0, 0, 0,
|
|
0, 0, 0, 111, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 114, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 0,
|
|
0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 119, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 121, 0, 0,
|
|
0, 0, 122, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 124, 0, 125, 0, 0, 0, 126, 0, 0, 127, 0, 128, 0, 129, 0, 130, 0, 131,
|
|
0, 0, 132, 0, 0, 133, 0, 0, 134, 0, 0, 135, 136, 0, 137, 0, 0, 0, 138, 0, 0, 139, 0, 140, 0, 141, 0, 142, 0, 143, 0, 0,
|
|
144, 0, 0, 145, 0, 0, 146, 0, 0, 147, 148, 0, 0, 149, 0, 0, 150, 0, 151, 0, 0, 0, 152, 0, 153, 0, 0, 0, 154, 0, 0, 155,
|
|
0, 0, 0, 156, 0, 0, 0, 157, 0, 158, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
|
|
0, 165, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 170, 0, 171, 0, 0,
|
|
172, 0, 173, 0, 174, 0, 175, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 177, 0, 0, 0, 0, 178, 0, 179, 0, 180, 0, 0, 0, 0,
|
|
181, 0, 182, 0, 0, 0, 0, 183, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 187, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, 190, 0, 0, 0, 0, 191, 0, 0, 0, 0, 192, 0, 0, 0,
|
|
0, 0, 0, 193, 0, 0, 194, 0, 0, 0, 195, 0, 0, 196, 0, 197, 0, 198, 0, 199, 0, 200, 0, 0, 201, 0, 0, 202, 0, 0, 203, 0,
|
|
0, 204, 205, 0, 206, 0, 0, 0, 207, 0, 0, 208, 0, 209, 0, 210, 0, 211, 0, 212, 0, 0, 213, 0, 0, 214, 0, 0, 215, 0, 0, 216,
|
|
217, 0, 218, 0, 0, 0, 0, 219, 0, 220, 0, 0, 221, 0, 222, 0, 223, 0, 224, 0, 0, 0, 225, 0, 226, 0, 0, 0, 0, 227, 0, 0,
|
|
228, 0, 0, 229, 0, 230, 0, 0, 0, 231, 0, 232, 0, 0, 0, 233, 0, 0, 234, 0, 0, 0, 235, 0, 0, 0, 236, 0, 237, 238, 0, 0,
|
|
0, 239, 0, 0, 0, 0, 0, 0, 240, 0, 241, 0, 0, 0, 0, 242, 0, 243, 0, 0, 244, 0, 245, 0, 246, 0, 247, 0, 248, 0, 249, 0,
|
|
0, 0, 0, 250, 0, 251, 0, 0, 252, 0, 253, 0, 254, 0, 255, 0, 256, 0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 265, 0, 266, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0,
|
|
0, 268, 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 0, 270, 0, 271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 273, 0, 274, 0, 275,
|
|
0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 278, 0, 279, 0, 0, 0, 0, 0, 0, 280, 0, 0, 0, 281, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 285, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 0, 287, 0, 288, 0, 289, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 291, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 292, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 296, 0, 0,
|
|
297, 0, 298, 0, 0, 0, 0, 0, 299, 0, 300, 0, 0, 0, 0, 301, 0, 0, 0, 302, 0, 303, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, 306, 0, 307, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 0, 0, 0, 0,
|
|
0, 311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 312, 0, 0, 0, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, 0, 315, 0, 0, 316, 0, 0, 317, 0,
|
|
0, 0, 0, 0, 318, 0, 319, 0, 0, 0, 0, 0, 320, 0, 321, 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, 323, 0, 0, 0, 0, 324, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, 327, 0, 0, 328, 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 332, 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 336, 0, 0, 0, 337, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 342, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 344,
|
|
0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
348, 0, 0, 349, 0, 0, 0, 0, 0, 0, 350, 0, 0, 0, 351, 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 353, 0, 0, 354, 0, 355, 0, 0, 0, 356, 0, 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 359, 0,
|
|
360, 0, 361, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 364, 0, 0, 0, 365, 0, 366, 0, 0, 367, 0, 0,
|
|
0, 0, 0, 368, 0, 0, 369, 0, 370, 0, 371, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 374, 0, 0, 0,
|
|
375, 0, 376, 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 379, 0, 0, 380, 381, 0, 0, 0, 0, 0, 0, 0, 0, 382, 0, 383,
|
|
0, 0, 384, 0, 0, 385, 386, 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0,
|
|
390, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 393, 0, 0, 0, 0, 394, 0, 0, 0, 0, 395, 0, 0, 0, 0,
|
|
396, 0, 0, 0, 0, 397, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 399, 0, 0, 0, 400, 401, 0, 0, 0, 0, 0, 402, 0, 403, 0, 404,
|
|
0, 0, 0, 0, 0, 0, 405, 0, 0, 406, 0, 407, 0, 408, 0, 0, 409, 0, 0, 0, 0, 410, 0, 0, 411, 0, 412, 0, 413, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 415, 0,
|
|
0, 416, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 419, 0, 0, 420, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 422, 0, 423, 0, 0, 0, 0, 424, 0, 425, 0,
|
|
426, 0, 0, 0, 0, 0, 0, 427, 0, 428, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0,
|
|
431, 0, 0, 0, 0, 0, 0, 432, 0, 0, 433, 0, 0, 0, 0, 434, 0, 0, 0, 0, 435, 436, 0, 437, 0, 0, 438, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 439, 0, 0, 440, 0, 0, 0, 0, 0, 441, 0, 0, 442, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 444, 0, 445, 0, 0,
|
|
0, 446, 0, 0, 0, 447, 0, 448, 0, 449, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 451, 0, 0, 452, 0, 0, 453, 0, 454, 455, 0, 0,
|
|
456, 0, 0, 0, 0, 457, 0, 0, 0, 458, 0, 0, 0, 459, 0, 460, 0, 461, 0, 0, 0, 462, 0, 0, 463, 0, 464, 0, 0, 465, 0, 466,
|
|
0, 0, 467, 0, 0, 0, 468, 0, 0, 469, 0, 470, 0, 471, 0, 0, 472, 0, 473, 0, 0, 474, 0, 0, 0, 475, 0, 0, 476, 0, 477, 0,
|
|
478, 0, 0, 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, 0, 480, 0, 481,
|
|
0, 482, 0, 0, 483, 0, 0, 0, 0, 484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 485, 0, 486, 0, 0, 0, 487, 0, 0, 488, 0,
|
|
489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 491, 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 493, 0, 0, 494, 0, 0, 0, 0, 0, 495, 0, 496,
|
|
0, 497, 0, 0, 0, 498, 0, 0, 499, 0, 500, 0, 0, 0, 501, 0, 0, 502, 0, 503, 0, 0, 0, 0, 0, 504, 0, 505, 0, 506, 0, 507,
|
|
0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 509, 0, 0, 0, 0, 510, 0, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 0, 512, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 513, 0, 514, 0, 0, 0, 0, 0, 0, 515, 0, 0, 516, 0, 517, 0, 0, 0, 518, 0, 0, 519, 0, 520, 0,
|
|
0, 0, 521, 0, 0, 0, 522, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 524,
|
|
0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 526, 527, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0,
|
|
530, 0, 531, 0, 0, 0, 532, 0, 0, 0, 533, 0, 534, 0, 535, 0, 536, 0, 0, 0, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 538, 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, 540, 0, 0, 0, 0, 0, 0, 0, 0, 541, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 0, 543, 0, 0, 0, 0, 544, 0, 0, 0, 545, 0, 0, 0, 546, 0, 0, 0, 547,
|
|
0, 548, 0, 0, 549, 0, 0, 0, 550, 0, 551, 0, 552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 554, 0, 0, 0,
|
|
555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, 557,
|
|
0, 0, 0, 0, 558, 0, 0, 0, 559, 0, 0, 0, 560, 0, 0, 0, 561, 0, 562, 0, 0, 563, 0, 0, 0, 564, 0, 565, 0, 566, 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, 568, 0, 0, 0, 0, 0, 0, 0, 0, 569, 0, 570, 0, 0, 0, 571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 573, 0, 574, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 576, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 578, 0, 0, 0, 579, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, 0, 581, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 0,
|
|
0, 0, 583, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 586, 0, 0, 0, 587, 0, 0, 0, 588, 0,
|
|
0, 0, 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 590, 0, 0, 0, 0, 0, 0, 0, 591, 0, 592, 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0, 594, 595, 0, 0, 0, 0, 596, 597, 0,
|
|
0, 598, 0, 0, 0, 0, 599, 0, 0, 0, 600, 0, 0, 0, 601, 0, 0, 0, 602, 0, 603, 0, 0, 604, 0, 0, 0, 605, 0, 606, 0, 607,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 608, 0, 609, 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 0,
|
|
0, 612, 0, 0, 0, 0, 0, 613, 0, 0, 0, 0, 0, 614, 0, 0, 0, 0, 615, 0, 0, 616, 0, 0, 0, 0, 617, 0, 0, 0, 618, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0, 620, 0, 0, 0, 0, 621, 622, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 624, 0,
|
|
0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 0, 0, 0, 0, 0, 627, 0, 0, 0, 0, 0, 628, 0, 629, 0, 0,
|
|
0, 0, 630, 0, 0, 0, 631, 0, 0, 0, 632, 0, 633, 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, 635, 0, 0, 0, 0, 636, 0, 0, 0,
|
|
637, 0, 0, 0, 638, 0, 0, 0, 639, 0, 640, 0, 0, 641, 0, 0, 0, 642, 0, 643, 0, 644, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 648, 0,
|
|
0, 0, 649, 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 0, 651, 0, 0, 652, 0, 0, 0, 0, 0, 0, 0, 653, 0, 654, 0, 0, 0, 655,
|
|
0, 0, 0, 656, 0, 657, 0, 658, 0, 0, 0, 659, 0, 660, 0, 661, 0, 662, 0, 0, 0, 0, 0, 663, 0, 0, 0, 0, 0, 664, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
665, 0, 0, 0, 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 668, 0, 669, 670, 0, 0, 0, 0, 0, 671, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 673, 0, 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 675, 0, 0, 0, 0, 676, 0, 677, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0, 0, 679, 0, 680, 0, 0, 681, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 682, 0, 0, 0, 0, 683, 0, 684, 0, 685,
|
|
};
|
|
void recomp_unit_0153_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 - 0x08A68000u;
|
|
entry_id = (entry_delta < 16376u && (entry_delta & 3u) == 0u) ? kEntryIds_recomp_unit_0153[entry_delta >> 2u] : 0u;
|
|
}
|
|
switch (entry_id) {
|
|
case 1u: goto L_08A68000;
|
|
case 2u: goto L_08A6804C;
|
|
case 3u: goto L_08A68068;
|
|
case 4u: goto L_08A68070;
|
|
case 5u: goto L_08A68078;
|
|
case 6u: goto L_08A680DC;
|
|
case 7u: goto L_08A680FC;
|
|
case 8u: goto L_08A68100;
|
|
case 9u: goto L_08A68118;
|
|
case 10u: goto L_08A6815C;
|
|
case 11u: goto L_08A68180;
|
|
case 12u: goto L_08A68188;
|
|
case 13u: goto L_08A68190;
|
|
case 14u: goto L_08A681AC;
|
|
case 15u: goto L_08A681C8;
|
|
case 16u: goto L_08A6820C;
|
|
case 17u: goto L_08A68220;
|
|
case 18u: goto L_08A68250;
|
|
case 19u: goto L_08A68270;
|
|
case 20u: goto L_08A68274;
|
|
case 21u: goto L_08A6828C;
|
|
case 22u: goto L_08A682E4;
|
|
case 23u: goto L_08A6831C;
|
|
case 24u: goto L_08A68330;
|
|
case 25u: goto L_08A6833C;
|
|
case 26u: goto L_08A68350;
|
|
case 27u: goto L_08A68358;
|
|
case 28u: goto L_08A68370;
|
|
case 29u: goto L_08A68378;
|
|
case 30u: goto L_08A68390;
|
|
case 31u: goto L_08A683A4;
|
|
case 32u: goto L_08A683B4;
|
|
case 33u: goto L_08A683BC;
|
|
case 34u: goto L_08A683C4;
|
|
case 35u: goto L_08A683D4;
|
|
case 36u: goto L_08A683E8;
|
|
case 37u: goto L_08A683F8;
|
|
case 38u: goto L_08A68400;
|
|
case 39u: goto L_08A68404;
|
|
case 40u: goto L_08A68494;
|
|
case 41u: goto L_08A684A0;
|
|
case 42u: goto L_08A684C8;
|
|
case 43u: goto L_08A684FC;
|
|
case 44u: goto L_08A68528;
|
|
case 45u: goto L_08A68564;
|
|
case 46u: goto L_08A68570;
|
|
case 47u: goto L_08A68604;
|
|
case 48u: goto L_08A68610;
|
|
case 49u: goto L_08A68654;
|
|
case 50u: goto L_08A686F0;
|
|
case 51u: goto L_08A68738;
|
|
case 52u: goto L_08A6873C;
|
|
case 53u: goto L_08A68768;
|
|
case 54u: goto L_08A68770;
|
|
case 55u: goto L_08A68778;
|
|
case 56u: goto L_08A688C4;
|
|
case 57u: goto L_08A688F8;
|
|
case 58u: goto L_08A6890C;
|
|
case 59u: goto L_08A6891C;
|
|
case 60u: goto L_08A68930;
|
|
case 61u: goto L_08A6893C;
|
|
case 62u: goto L_08A68954;
|
|
case 63u: goto L_08A68958;
|
|
case 64u: goto L_08A68988;
|
|
case 65u: goto L_08A689A8;
|
|
case 66u: goto L_08A689C4;
|
|
case 67u: goto L_08A689D4;
|
|
case 68u: goto L_08A689E4;
|
|
case 69u: goto L_08A689EC;
|
|
case 70u: goto L_08A689F8;
|
|
case 71u: goto L_08A68A44;
|
|
case 72u: goto L_08A68A84;
|
|
case 73u: goto L_08A68A94;
|
|
case 74u: goto L_08A68A9C;
|
|
case 75u: goto L_08A68AA4;
|
|
case 76u: goto L_08A68ACC;
|
|
case 77u: goto L_08A68AF4;
|
|
case 78u: goto L_08A68AFC;
|
|
case 79u: goto L_08A68B44;
|
|
case 80u: goto L_08A68B50;
|
|
case 81u: goto L_08A68B5C;
|
|
case 82u: goto L_08A68B78;
|
|
case 83u: goto L_08A68B84;
|
|
case 84u: goto L_08A68BA0;
|
|
case 85u: goto L_08A68BB0;
|
|
case 86u: goto L_08A68BC0;
|
|
case 87u: goto L_08A68BC8;
|
|
case 88u: goto L_08A68BD0;
|
|
case 89u: goto L_08A68BF0;
|
|
case 90u: goto L_08A68BF8;
|
|
case 91u: goto L_08A68BFC;
|
|
case 92u: goto L_08A68C14;
|
|
case 93u: goto L_08A68C2C;
|
|
case 94u: goto L_08A68C44;
|
|
case 95u: goto L_08A68C4C;
|
|
case 96u: goto L_08A68C78;
|
|
case 97u: goto L_08A68C80;
|
|
case 98u: goto L_08A68CA4;
|
|
case 99u: goto L_08A68CB4;
|
|
case 100u: goto L_08A68CBC;
|
|
case 101u: goto L_08A68CC4;
|
|
case 102u: goto L_08A68CCC;
|
|
case 103u: goto L_08A68CD4;
|
|
case 104u: goto L_08A68CDC;
|
|
case 105u: goto L_08A68CE4;
|
|
case 106u: goto L_08A68D30;
|
|
case 107u: goto L_08A68DB0;
|
|
case 108u: goto L_08A68DC0;
|
|
case 109u: goto L_08A68DE0;
|
|
case 110u: goto L_08A68DEC;
|
|
case 111u: goto L_08A68E0C;
|
|
case 112u: goto L_08A68E1C;
|
|
case 113u: goto L_08A68E3C;
|
|
case 114u: goto L_08A68E48;
|
|
case 115u: goto L_08A68E50;
|
|
case 116u: goto L_08A68E78;
|
|
case 117u: goto L_08A68E88;
|
|
case 118u: goto L_08A68EB0;
|
|
case 119u: goto L_08A68EBC;
|
|
case 120u: goto L_08A68ED8;
|
|
case 121u: goto L_08A68EF4;
|
|
case 122u: goto L_08A68F08;
|
|
case 123u: goto L_08A68F1C;
|
|
case 124u: goto L_08A68F38;
|
|
case 125u: goto L_08A68F40;
|
|
case 126u: goto L_08A68F50;
|
|
case 127u: goto L_08A68F5C;
|
|
case 128u: goto L_08A68F64;
|
|
case 129u: goto L_08A68F6C;
|
|
case 130u: goto L_08A68F74;
|
|
case 131u: goto L_08A68F7C;
|
|
case 132u: goto L_08A68F88;
|
|
case 133u: goto L_08A68F94;
|
|
case 134u: goto L_08A68FA0;
|
|
case 135u: goto L_08A68FAC;
|
|
case 136u: goto L_08A68FB0;
|
|
case 137u: goto L_08A68FB8;
|
|
case 138u: goto L_08A68FC8;
|
|
case 139u: goto L_08A68FD4;
|
|
case 140u: goto L_08A68FDC;
|
|
case 141u: goto L_08A68FE4;
|
|
case 142u: goto L_08A68FEC;
|
|
case 143u: goto L_08A68FF4;
|
|
case 144u: goto L_08A69000;
|
|
case 145u: goto L_08A6900C;
|
|
case 146u: goto L_08A69018;
|
|
case 147u: goto L_08A69024;
|
|
case 148u: goto L_08A69028;
|
|
case 149u: goto L_08A69034;
|
|
case 150u: goto L_08A69040;
|
|
case 151u: goto L_08A69048;
|
|
case 152u: goto L_08A69058;
|
|
case 153u: goto L_08A69060;
|
|
case 154u: goto L_08A69070;
|
|
case 155u: goto L_08A6907C;
|
|
case 156u: goto L_08A6908C;
|
|
case 157u: goto L_08A6909C;
|
|
case 158u: goto L_08A690A4;
|
|
case 159u: goto L_08A690B8;
|
|
case 160u: goto L_08A690D4;
|
|
case 161u: goto L_08A69104;
|
|
case 162u: goto L_08A69154;
|
|
case 163u: goto L_08A691D4;
|
|
case 164u: goto L_08A691E4;
|
|
case 165u: goto L_08A69204;
|
|
case 166u: goto L_08A69210;
|
|
case 167u: goto L_08A69230;
|
|
case 168u: goto L_08A69240;
|
|
case 169u: goto L_08A69260;
|
|
case 170u: goto L_08A6926C;
|
|
case 171u: goto L_08A69274;
|
|
case 172u: goto L_08A69280;
|
|
case 173u: goto L_08A69288;
|
|
case 174u: goto L_08A69290;
|
|
case 175u: goto L_08A69298;
|
|
case 176u: goto L_08A692B4;
|
|
case 177u: goto L_08A692C8;
|
|
case 178u: goto L_08A692DC;
|
|
case 179u: goto L_08A692E4;
|
|
case 180u: goto L_08A692EC;
|
|
case 181u: goto L_08A69300;
|
|
case 182u: goto L_08A69308;
|
|
case 183u: goto L_08A6931C;
|
|
case 184u: goto L_08A69324;
|
|
case 185u: goto L_08A6934C;
|
|
case 186u: goto L_08A6935C;
|
|
case 187u: goto L_08A69384;
|
|
case 188u: goto L_08A69394;
|
|
case 189u: goto L_08A693B4;
|
|
case 190u: goto L_08A693C8;
|
|
case 191u: goto L_08A693DC;
|
|
case 192u: goto L_08A693F0;
|
|
case 193u: goto L_08A6940C;
|
|
case 194u: goto L_08A69418;
|
|
case 195u: goto L_08A69428;
|
|
case 196u: goto L_08A69434;
|
|
case 197u: goto L_08A6943C;
|
|
case 198u: goto L_08A69444;
|
|
case 199u: goto L_08A6944C;
|
|
case 200u: goto L_08A69454;
|
|
case 201u: goto L_08A69460;
|
|
case 202u: goto L_08A6946C;
|
|
case 203u: goto L_08A69478;
|
|
case 204u: goto L_08A69484;
|
|
case 205u: goto L_08A69488;
|
|
case 206u: goto L_08A69490;
|
|
case 207u: goto L_08A694A0;
|
|
case 208u: goto L_08A694AC;
|
|
case 209u: goto L_08A694B4;
|
|
case 210u: goto L_08A694BC;
|
|
case 211u: goto L_08A694C4;
|
|
case 212u: goto L_08A694CC;
|
|
case 213u: goto L_08A694D8;
|
|
case 214u: goto L_08A694E4;
|
|
case 215u: goto L_08A694F0;
|
|
case 216u: goto L_08A694FC;
|
|
case 217u: goto L_08A69500;
|
|
case 218u: goto L_08A69508;
|
|
case 219u: goto L_08A6951C;
|
|
case 220u: goto L_08A69524;
|
|
case 221u: goto L_08A69530;
|
|
case 222u: goto L_08A69538;
|
|
case 223u: goto L_08A69540;
|
|
case 224u: goto L_08A69548;
|
|
case 225u: goto L_08A69558;
|
|
case 226u: goto L_08A69560;
|
|
case 227u: goto L_08A69574;
|
|
case 228u: goto L_08A69580;
|
|
case 229u: goto L_08A6958C;
|
|
case 230u: goto L_08A69594;
|
|
case 231u: goto L_08A695A4;
|
|
case 232u: goto L_08A695AC;
|
|
case 233u: goto L_08A695BC;
|
|
case 234u: goto L_08A695C8;
|
|
case 235u: goto L_08A695D8;
|
|
case 236u: goto L_08A695E8;
|
|
case 237u: goto L_08A695F0;
|
|
case 238u: goto L_08A695F4;
|
|
case 239u: goto L_08A69604;
|
|
case 240u: goto L_08A69620;
|
|
case 241u: goto L_08A69628;
|
|
case 242u: goto L_08A6963C;
|
|
case 243u: goto L_08A69644;
|
|
case 244u: goto L_08A69650;
|
|
case 245u: goto L_08A69658;
|
|
case 246u: goto L_08A69660;
|
|
case 247u: goto L_08A69668;
|
|
case 248u: goto L_08A69670;
|
|
case 249u: goto L_08A69678;
|
|
case 250u: goto L_08A6968C;
|
|
case 251u: goto L_08A69694;
|
|
case 252u: goto L_08A696A0;
|
|
case 253u: goto L_08A696A8;
|
|
case 254u: goto L_08A696B0;
|
|
case 255u: goto L_08A696B8;
|
|
case 256u: goto L_08A696C0;
|
|
case 257u: goto L_08A696C8;
|
|
case 258u: goto L_08A696F8;
|
|
case 259u: goto L_08A69730;
|
|
case 260u: goto L_08A697A0;
|
|
case 261u: goto L_08A69818;
|
|
case 262u: goto L_08A6982C;
|
|
case 263u: goto L_08A699B0;
|
|
case 264u: goto L_08A69A30;
|
|
case 265u: goto L_08A69A48;
|
|
case 266u: goto L_08A69A50;
|
|
case 267u: goto L_08A69A6C;
|
|
case 268u: goto L_08A69A84;
|
|
case 269u: goto L_08A69AA0;
|
|
case 270u: goto L_08A69AB4;
|
|
case 271u: goto L_08A69ABC;
|
|
case 272u: goto L_08A69AE4;
|
|
case 273u: goto L_08A69AEC;
|
|
case 274u: goto L_08A69AF4;
|
|
case 275u: goto L_08A69AFC;
|
|
case 276u: goto L_08A69B0C;
|
|
case 277u: goto L_08A69B38;
|
|
case 278u: goto L_08A69B40;
|
|
case 279u: goto L_08A69B48;
|
|
case 280u: goto L_08A69B64;
|
|
case 281u: goto L_08A69B74;
|
|
case 282u: goto L_08A69B9C;
|
|
case 283u: goto L_08A69BA4;
|
|
case 284u: goto L_08A69BD8;
|
|
case 285u: goto L_08A69BF4;
|
|
case 286u: goto L_08A69C2C;
|
|
case 287u: goto L_08A69C34;
|
|
case 288u: goto L_08A69C3C;
|
|
case 289u: goto L_08A69C44;
|
|
case 290u: goto L_08A69C64;
|
|
case 291u: goto L_08A69C70;
|
|
case 292u: goto L_08A69C94;
|
|
case 293u: goto L_08A69CA8;
|
|
case 294u: goto L_08A69CC4;
|
|
case 295u: goto L_08A69CD8;
|
|
case 296u: goto L_08A69CF4;
|
|
case 297u: goto L_08A69D00;
|
|
case 298u: goto L_08A69D08;
|
|
case 299u: goto L_08A69D20;
|
|
case 300u: goto L_08A69D28;
|
|
case 301u: goto L_08A69D3C;
|
|
case 302u: goto L_08A69D4C;
|
|
case 303u: goto L_08A69D54;
|
|
case 304u: goto L_08A69D70;
|
|
case 305u: goto L_08A69DA8;
|
|
case 306u: goto L_08A69DB0;
|
|
case 307u: goto L_08A69DB8;
|
|
case 308u: goto L_08A69DC4;
|
|
case 309u: goto L_08A69DE8;
|
|
case 310u: goto L_08A69DEC;
|
|
case 311u: goto L_08A69E04;
|
|
case 312u: goto L_08A69E8C;
|
|
case 313u: goto L_08A69EAC;
|
|
case 314u: goto L_08A69ED4;
|
|
case 315u: goto L_08A69EE0;
|
|
case 316u: goto L_08A69EEC;
|
|
case 317u: goto L_08A69EF8;
|
|
case 318u: goto L_08A69F10;
|
|
case 319u: goto L_08A69F18;
|
|
case 320u: goto L_08A69F30;
|
|
case 321u: goto L_08A69F38;
|
|
case 322u: goto L_08A69F54;
|
|
case 323u: goto L_08A69F64;
|
|
case 324u: goto L_08A69F78;
|
|
case 325u: goto L_08A6A014;
|
|
case 326u: goto L_08A6A02C;
|
|
case 327u: goto L_08A6A03C;
|
|
case 328u: goto L_08A6A048;
|
|
case 329u: goto L_08A6A05C;
|
|
case 330u: goto L_08A6A084;
|
|
case 331u: goto L_08A6A0B8;
|
|
case 332u: goto L_08A6A0C0;
|
|
case 333u: goto L_08A6A0D0;
|
|
case 334u: goto L_08A6A108;
|
|
case 335u: goto L_08A6A144;
|
|
case 336u: goto L_08A6A154;
|
|
case 337u: goto L_08A6A164;
|
|
case 338u: goto L_08A6A19C;
|
|
case 339u: goto L_08A6A1D8;
|
|
case 340u: goto L_08A6A210;
|
|
case 341u: goto L_08A6A244;
|
|
case 342u: goto L_08A6A24C;
|
|
case 343u: goto L_08A6A264;
|
|
case 344u: goto L_08A6A27C;
|
|
case 345u: goto L_08A6A284;
|
|
case 346u: goto L_08A6A2C0;
|
|
case 347u: goto L_08A6A2CC;
|
|
case 348u: goto L_08A6A300;
|
|
case 349u: goto L_08A6A30C;
|
|
case 350u: goto L_08A6A328;
|
|
case 351u: goto L_08A6A338;
|
|
case 352u: goto L_08A6A34C;
|
|
case 353u: goto L_08A6A38C;
|
|
case 354u: goto L_08A6A398;
|
|
case 355u: goto L_08A6A3A0;
|
|
case 356u: goto L_08A6A3B0;
|
|
case 357u: goto L_08A6A3B8;
|
|
case 358u: goto L_08A6A3E0;
|
|
case 359u: goto L_08A6A3F8;
|
|
case 360u: goto L_08A6A400;
|
|
case 361u: goto L_08A6A408;
|
|
case 362u: goto L_08A6A424;
|
|
case 363u: goto L_08A6A438;
|
|
case 364u: goto L_08A6A450;
|
|
case 365u: goto L_08A6A460;
|
|
case 366u: goto L_08A6A468;
|
|
case 367u: goto L_08A6A474;
|
|
case 368u: goto L_08A6A48C;
|
|
case 369u: goto L_08A6A498;
|
|
case 370u: goto L_08A6A4A0;
|
|
case 371u: goto L_08A6A4A8;
|
|
case 372u: goto L_08A6A4C4;
|
|
case 373u: goto L_08A6A4D8;
|
|
case 374u: goto L_08A6A4F0;
|
|
case 375u: goto L_08A6A500;
|
|
case 376u: goto L_08A6A508;
|
|
case 377u: goto L_08A6A514;
|
|
case 378u: goto L_08A6A534;
|
|
case 379u: goto L_08A6A540;
|
|
case 380u: goto L_08A6A54C;
|
|
case 381u: goto L_08A6A550;
|
|
case 382u: goto L_08A6A574;
|
|
case 383u: goto L_08A6A57C;
|
|
case 384u: goto L_08A6A588;
|
|
case 385u: goto L_08A6A594;
|
|
case 386u: goto L_08A6A598;
|
|
case 387u: goto L_08A6A5BC;
|
|
case 388u: goto L_08A6A5D0;
|
|
case 389u: goto L_08A6A5E8;
|
|
case 390u: goto L_08A6A600;
|
|
case 391u: goto L_08A6A608;
|
|
case 392u: goto L_08A6A630;
|
|
case 393u: goto L_08A6A644;
|
|
case 394u: goto L_08A6A658;
|
|
case 395u: goto L_08A6A66C;
|
|
case 396u: goto L_08A6A680;
|
|
case 397u: goto L_08A6A694;
|
|
case 398u: goto L_08A6A6A4;
|
|
case 399u: goto L_08A6A6C0;
|
|
case 400u: goto L_08A6A6D0;
|
|
case 401u: goto L_08A6A6D4;
|
|
case 402u: goto L_08A6A6EC;
|
|
case 403u: goto L_08A6A6F4;
|
|
case 404u: goto L_08A6A6FC;
|
|
case 405u: goto L_08A6A718;
|
|
case 406u: goto L_08A6A724;
|
|
case 407u: goto L_08A6A72C;
|
|
case 408u: goto L_08A6A734;
|
|
case 409u: goto L_08A6A740;
|
|
case 410u: goto L_08A6A754;
|
|
case 411u: goto L_08A6A760;
|
|
case 412u: goto L_08A6A768;
|
|
case 413u: goto L_08A6A770;
|
|
case 414u: goto L_08A6A7E8;
|
|
case 415u: goto L_08A6A7F8;
|
|
case 416u: goto L_08A6A804;
|
|
case 417u: goto L_08A6A80C;
|
|
case 418u: goto L_08A6A854;
|
|
case 419u: goto L_08A6A898;
|
|
case 420u: goto L_08A6A8A4;
|
|
case 421u: goto L_08A6A8AC;
|
|
case 422u: goto L_08A6A8D4;
|
|
case 423u: goto L_08A6A8DC;
|
|
case 424u: goto L_08A6A8F0;
|
|
case 425u: goto L_08A6A8F8;
|
|
case 426u: goto L_08A6A900;
|
|
case 427u: goto L_08A6A91C;
|
|
case 428u: goto L_08A6A924;
|
|
case 429u: goto L_08A6A938;
|
|
case 430u: goto L_08A6A978;
|
|
case 431u: goto L_08A6A980;
|
|
case 432u: goto L_08A6A99C;
|
|
case 433u: goto L_08A6A9A8;
|
|
case 434u: goto L_08A6A9BC;
|
|
case 435u: goto L_08A6A9D0;
|
|
case 436u: goto L_08A6A9D4;
|
|
case 437u: goto L_08A6A9DC;
|
|
case 438u: goto L_08A6A9E8;
|
|
case 439u: goto L_08A6AA0C;
|
|
case 440u: goto L_08A6AA18;
|
|
case 441u: goto L_08A6AA30;
|
|
case 442u: goto L_08A6AA3C;
|
|
case 443u: goto L_08A6AA54;
|
|
case 444u: goto L_08A6AA6C;
|
|
case 445u: goto L_08A6AA74;
|
|
case 446u: goto L_08A6AA84;
|
|
case 447u: goto L_08A6AA94;
|
|
case 448u: goto L_08A6AA9C;
|
|
case 449u: goto L_08A6AAA4;
|
|
case 450u: goto L_08A6AAC4;
|
|
case 451u: goto L_08A6AAD0;
|
|
case 452u: goto L_08A6AADC;
|
|
case 453u: goto L_08A6AAE8;
|
|
case 454u: goto L_08A6AAF0;
|
|
case 455u: goto L_08A6AAF4;
|
|
case 456u: goto L_08A6AB00;
|
|
case 457u: goto L_08A6AB14;
|
|
case 458u: goto L_08A6AB24;
|
|
case 459u: goto L_08A6AB34;
|
|
case 460u: goto L_08A6AB3C;
|
|
case 461u: goto L_08A6AB44;
|
|
case 462u: goto L_08A6AB54;
|
|
case 463u: goto L_08A6AB60;
|
|
case 464u: goto L_08A6AB68;
|
|
case 465u: goto L_08A6AB74;
|
|
case 466u: goto L_08A6AB7C;
|
|
case 467u: goto L_08A6AB88;
|
|
case 468u: goto L_08A6AB98;
|
|
case 469u: goto L_08A6ABA4;
|
|
case 470u: goto L_08A6ABAC;
|
|
case 471u: goto L_08A6ABB4;
|
|
case 472u: goto L_08A6ABC0;
|
|
case 473u: goto L_08A6ABC8;
|
|
case 474u: goto L_08A6ABD4;
|
|
case 475u: goto L_08A6ABE4;
|
|
case 476u: goto L_08A6ABF0;
|
|
case 477u: goto L_08A6ABF8;
|
|
case 478u: goto L_08A6AC00;
|
|
case 479u: goto L_08A6AC5C;
|
|
case 480u: goto L_08A6AC74;
|
|
case 481u: goto L_08A6AC7C;
|
|
case 482u: goto L_08A6AC84;
|
|
case 483u: goto L_08A6AC90;
|
|
case 484u: goto L_08A6ACA4;
|
|
case 485u: goto L_08A6ACD4;
|
|
case 486u: goto L_08A6ACDC;
|
|
case 487u: goto L_08A6ACEC;
|
|
case 488u: goto L_08A6ACF8;
|
|
case 489u: goto L_08A6AD00;
|
|
case 490u: goto L_08A6AD28;
|
|
case 491u: goto L_08A6ADA4;
|
|
case 492u: goto L_08A6ADC4;
|
|
case 493u: goto L_08A6ADD0;
|
|
case 494u: goto L_08A6ADDC;
|
|
case 495u: goto L_08A6ADF4;
|
|
case 496u: goto L_08A6ADFC;
|
|
case 497u: goto L_08A6AE04;
|
|
case 498u: goto L_08A6AE14;
|
|
case 499u: goto L_08A6AE20;
|
|
case 500u: goto L_08A6AE28;
|
|
case 501u: goto L_08A6AE38;
|
|
case 502u: goto L_08A6AE44;
|
|
case 503u: goto L_08A6AE4C;
|
|
case 504u: goto L_08A6AE64;
|
|
case 505u: goto L_08A6AE6C;
|
|
case 506u: goto L_08A6AE74;
|
|
case 507u: goto L_08A6AE7C;
|
|
case 508u: goto L_08A6AE98;
|
|
case 509u: goto L_08A6AEAC;
|
|
case 510u: goto L_08A6AEC0;
|
|
case 511u: goto L_08A6AED0;
|
|
case 512u: goto L_08A6AEF4;
|
|
case 513u: goto L_08A6AF1C;
|
|
case 514u: goto L_08A6AF24;
|
|
case 515u: goto L_08A6AF40;
|
|
case 516u: goto L_08A6AF4C;
|
|
case 517u: goto L_08A6AF54;
|
|
case 518u: goto L_08A6AF64;
|
|
case 519u: goto L_08A6AF70;
|
|
case 520u: goto L_08A6AF78;
|
|
case 521u: goto L_08A6AF88;
|
|
case 522u: goto L_08A6AF98;
|
|
case 523u: goto L_08A6AFA0;
|
|
case 524u: goto L_08A6AFFC;
|
|
case 525u: goto L_08A6B018;
|
|
case 526u: goto L_08A6B030;
|
|
case 527u: goto L_08A6B034;
|
|
case 528u: goto L_08A6B04C;
|
|
case 529u: goto L_08A6B068;
|
|
case 530u: goto L_08A6B080;
|
|
case 531u: goto L_08A6B088;
|
|
case 532u: goto L_08A6B098;
|
|
case 533u: goto L_08A6B0A8;
|
|
case 534u: goto L_08A6B0B0;
|
|
case 535u: goto L_08A6B0B8;
|
|
case 536u: goto L_08A6B0C0;
|
|
case 537u: goto L_08A6B0D8;
|
|
case 538u: goto L_08A6B120;
|
|
case 539u: goto L_08A6B13C;
|
|
case 540u: goto L_08A6B14C;
|
|
case 541u: goto L_08A6B170;
|
|
case 542u: goto L_08A6B1A0;
|
|
case 543u: goto L_08A6B1B8;
|
|
case 544u: goto L_08A6B1CC;
|
|
case 545u: goto L_08A6B1DC;
|
|
case 546u: goto L_08A6B1EC;
|
|
case 547u: goto L_08A6B1FC;
|
|
case 548u: goto L_08A6B204;
|
|
case 549u: goto L_08A6B210;
|
|
case 550u: goto L_08A6B220;
|
|
case 551u: goto L_08A6B228;
|
|
case 552u: goto L_08A6B230;
|
|
case 553u: goto L_08A6B268;
|
|
case 554u: goto L_08A6B270;
|
|
case 555u: goto L_08A6B280;
|
|
case 556u: goto L_08A6B2D8;
|
|
case 557u: goto L_08A6B2FC;
|
|
case 558u: goto L_08A6B310;
|
|
case 559u: goto L_08A6B320;
|
|
case 560u: goto L_08A6B330;
|
|
case 561u: goto L_08A6B340;
|
|
case 562u: goto L_08A6B348;
|
|
case 563u: goto L_08A6B354;
|
|
case 564u: goto L_08A6B364;
|
|
case 565u: goto L_08A6B36C;
|
|
case 566u: goto L_08A6B374;
|
|
case 567u: goto L_08A6B37C;
|
|
case 568u: goto L_08A6B40C;
|
|
case 569u: goto L_08A6B430;
|
|
case 570u: goto L_08A6B438;
|
|
case 571u: goto L_08A6B448;
|
|
case 572u: goto L_08A6B470;
|
|
case 573u: goto L_08A6B510;
|
|
case 574u: goto L_08A6B518;
|
|
case 575u: goto L_08A6B520;
|
|
case 576u: goto L_08A6B56C;
|
|
case 577u: goto L_08A6B5BC;
|
|
case 578u: goto L_08A6B5D8;
|
|
case 579u: goto L_08A6B5E8;
|
|
case 580u: goto L_08A6B640;
|
|
case 581u: goto L_08A6B664;
|
|
case 582u: goto L_08A6B6F8;
|
|
case 583u: goto L_08A6B708;
|
|
case 584u: goto L_08A6B728;
|
|
case 585u: goto L_08A6B73C;
|
|
case 586u: goto L_08A6B758;
|
|
case 587u: goto L_08A6B768;
|
|
case 588u: goto L_08A6B778;
|
|
case 589u: goto L_08A6B788;
|
|
case 590u: goto L_08A6B804;
|
|
case 591u: goto L_08A6B824;
|
|
case 592u: goto L_08A6B82C;
|
|
case 593u: goto L_08A6B844;
|
|
case 594u: goto L_08A6B85C;
|
|
case 595u: goto L_08A6B860;
|
|
case 596u: goto L_08A6B874;
|
|
case 597u: goto L_08A6B878;
|
|
case 598u: goto L_08A6B884;
|
|
case 599u: goto L_08A6B898;
|
|
case 600u: goto L_08A6B8A8;
|
|
case 601u: goto L_08A6B8B8;
|
|
case 602u: goto L_08A6B8C8;
|
|
case 603u: goto L_08A6B8D0;
|
|
case 604u: goto L_08A6B8DC;
|
|
case 605u: goto L_08A6B8EC;
|
|
case 606u: goto L_08A6B8F4;
|
|
case 607u: goto L_08A6B8FC;
|
|
case 608u: goto L_08A6B938;
|
|
case 609u: goto L_08A6B940;
|
|
case 610u: goto L_08A6B950;
|
|
case 611u: goto L_08A6B970;
|
|
case 612u: goto L_08A6B984;
|
|
case 613u: goto L_08A6B99C;
|
|
case 614u: goto L_08A6B9B4;
|
|
case 615u: goto L_08A6B9C8;
|
|
case 616u: goto L_08A6B9D4;
|
|
case 617u: goto L_08A6B9E8;
|
|
case 618u: goto L_08A6B9F8;
|
|
case 619u: goto L_08A6BA20;
|
|
case 620u: goto L_08A6BA34;
|
|
case 621u: goto L_08A6BA48;
|
|
case 622u: goto L_08A6BA4C;
|
|
case 623u: goto L_08A6BA60;
|
|
case 624u: goto L_08A6BA78;
|
|
case 625u: goto L_08A6BA90;
|
|
case 626u: goto L_08A6BAB8;
|
|
case 627u: goto L_08A6BAD4;
|
|
case 628u: goto L_08A6BAEC;
|
|
case 629u: goto L_08A6BAF4;
|
|
case 630u: goto L_08A6BB08;
|
|
case 631u: goto L_08A6BB18;
|
|
case 632u: goto L_08A6BB28;
|
|
case 633u: goto L_08A6BB30;
|
|
case 634u: goto L_08A6BB38;
|
|
case 635u: goto L_08A6BB5C;
|
|
case 636u: goto L_08A6BB70;
|
|
case 637u: goto L_08A6BB80;
|
|
case 638u: goto L_08A6BB90;
|
|
case 639u: goto L_08A6BBA0;
|
|
case 640u: goto L_08A6BBA8;
|
|
case 641u: goto L_08A6BBB4;
|
|
case 642u: goto L_08A6BBC4;
|
|
case 643u: goto L_08A6BBCC;
|
|
case 644u: goto L_08A6BBD4;
|
|
case 645u: goto L_08A6BBE0;
|
|
case 646u: goto L_08A6BC40;
|
|
case 647u: goto L_08A6BC60;
|
|
case 648u: goto L_08A6BC78;
|
|
case 649u: goto L_08A6BC88;
|
|
case 650u: goto L_08A6BC9C;
|
|
case 651u: goto L_08A6BCB8;
|
|
case 652u: goto L_08A6BCC4;
|
|
case 653u: goto L_08A6BCE4;
|
|
case 654u: goto L_08A6BCEC;
|
|
case 655u: goto L_08A6BCFC;
|
|
case 656u: goto L_08A6BD0C;
|
|
case 657u: goto L_08A6BD14;
|
|
case 658u: goto L_08A6BD1C;
|
|
case 659u: goto L_08A6BD2C;
|
|
case 660u: goto L_08A6BD34;
|
|
case 661u: goto L_08A6BD3C;
|
|
case 662u: goto L_08A6BD44;
|
|
case 663u: goto L_08A6BD5C;
|
|
case 664u: goto L_08A6BD74;
|
|
case 665u: goto L_08A6BE00;
|
|
case 666u: goto L_08A6BE10;
|
|
case 667u: goto L_08A6BE38;
|
|
case 668u: goto L_08A6BE4C;
|
|
case 669u: goto L_08A6BE54;
|
|
case 670u: goto L_08A6BE58;
|
|
case 671u: goto L_08A6BE70;
|
|
case 672u: goto L_08A6BEA0;
|
|
case 673u: goto L_08A6BEA8;
|
|
case 674u: goto L_08A6BEB4;
|
|
case 675u: goto L_08A6BF10;
|
|
case 676u: goto L_08A6BF24;
|
|
case 677u: goto L_08A6BF2C;
|
|
case 678u: goto L_08A6BF44;
|
|
case 679u: goto L_08A6BF5C;
|
|
case 680u: goto L_08A6BF64;
|
|
case 681u: goto L_08A6BF70;
|
|
case 682u: goto L_08A6BFD0;
|
|
case 683u: goto L_08A6BFE4;
|
|
case 684u: goto L_08A6BFEC;
|
|
case 685u: goto L_08A6BFF4;
|
|
default:
|
|
if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry");
|
|
else ctx.pc = local_pc;
|
|
return;
|
|
}
|
|
}
|
|
L_08A68000:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-64));
|
|
{ const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(48), aot_run_words); }
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[8] = (16256u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[8]);
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[13];
|
|
ctx.fpr[16] = std::bit_cast<float>(0u);
|
|
ctx.gpr[18] = (0u | 1u);
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[7] | 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] <= ctx.fpr[16])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
if (branch_taken) {
|
|
goto L_08A68070;
|
|
}
|
|
goto L_08A6804C;
|
|
}
|
|
L_08A6804C:
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[6] = (16448u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[6]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] < ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
goto L_08A68078;
|
|
}
|
|
goto L_08A68068;
|
|
L_08A68068:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68078;
|
|
}
|
|
goto L_08A68070;
|
|
}
|
|
L_08A68070:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (ctx.gpr[18] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A68100;
|
|
}
|
|
goto L_08A68078;
|
|
}
|
|
L_08A68078:
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[6] = (15363u << 16u);
|
|
ctx.gpr[6] = (ctx.gpr[6] | 4719u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const float fs = ctx.fpr[16]; const float ft = ctx.fpr[17]; 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; }
|
|
ctx.gpr[6] = (16384u << 16u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ 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; }
|
|
{ const float fs = ctx.fpr[16]; 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[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; }
|
|
{ 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; }
|
|
{ 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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(16));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A680DCu);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem) && ctx.pc == 0x08A680DCu) goto L_08A680DC;
|
|
return;
|
|
L_08A680DC:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A680FCu);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem) && ctx.pc == 0x08A680FCu) goto L_08A680FC;
|
|
return;
|
|
L_08A680FC:
|
|
ctx.gpr[2] = (ctx.gpr[18] | 0u);
|
|
goto L_08A68100;
|
|
L_08A68100:
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(48), aot_run_words);
|
|
ctx.gpr[16] = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[31] = aot_run_words[3];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68118:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-64));
|
|
{ const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(48), aot_run_words); }
|
|
ctx.gpr[9] = (16256u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[9]);
|
|
ctx.fpr[13] = ctx.fpr[15] - ctx.fpr[13];
|
|
ctx.fpr[15] = std::bit_cast<float>(0u);
|
|
ctx.gpr[18] = (0u | 1u);
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[7] | 0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (ctx.gpr[8] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A68188;
|
|
}
|
|
goto L_08A6815C;
|
|
}
|
|
L_08A6815C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] <= ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68190;
|
|
}
|
|
goto L_08A68180;
|
|
}
|
|
L_08A68180:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A681AC;
|
|
}
|
|
goto L_08A68188;
|
|
}
|
|
L_08A68188:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (ctx.gpr[18] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A68274;
|
|
}
|
|
goto L_08A68190;
|
|
}
|
|
L_08A68190:
|
|
ctx.gpr[5] = (49024u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>();
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
goto L_08A681AC;
|
|
L_08A681AC:
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[5] = (16448u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] < ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
goto L_08A681C8;
|
|
}
|
|
goto L_08A681C8;
|
|
L_08A681C8:
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[5] = (15363u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 4719u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ const float fs = ctx.fpr[16]; const float ft = ctx.fpr[17]; 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; }
|
|
ctx.gpr[5] = (16384u << 16u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ 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; }
|
|
{ const float fs = ctx.fpr[16]; 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[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[12]; const float ft = ctx.fpr[15]; 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[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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68220;
|
|
}
|
|
goto L_08A6820C;
|
|
}
|
|
L_08A6820C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (16192u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ 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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A68220;
|
|
L_08A68220:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(16));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A68250u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem) && ctx.pc == 0x08A68250u) goto L_08A68250;
|
|
return;
|
|
L_08A68250:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[16] + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A68270u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem) && ctx.pc == 0x08A68270u) goto L_08A68270;
|
|
return;
|
|
L_08A68270:
|
|
ctx.gpr[2] = (ctx.gpr[18] | 0u);
|
|
goto L_08A68274;
|
|
L_08A68274:
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(48), aot_run_words);
|
|
ctx.gpr[16] = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[31] = aot_run_words[3];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A6828C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-176));
|
|
{ const std::uint32_t aot_run_words[8]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(144), aot_run_words); }
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[18] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[7] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[24] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A682E4u);
|
|
ctx.gpr[5] = (ctx.gpr[29] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem) && ctx.pc == 0x08A682E4u) goto L_08A682E4;
|
|
return;
|
|
L_08A682E4:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[4] = (16448u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.gpr[19] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[15] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
goto L_08A6831C;
|
|
}
|
|
goto L_08A6831C;
|
|
L_08A6831C:
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6833C;
|
|
}
|
|
goto L_08A68330;
|
|
}
|
|
L_08A68330:
|
|
ctx.gpr[4] = (16384u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
goto L_08A6833C;
|
|
L_08A6833C:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5720)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68358;
|
|
}
|
|
goto L_08A68350;
|
|
}
|
|
L_08A68350:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5720)));
|
|
if (branch_taken) {
|
|
goto L_08A68378;
|
|
}
|
|
goto L_08A68358;
|
|
}
|
|
L_08A68358:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5720)));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68378;
|
|
}
|
|
goto L_08A68370;
|
|
}
|
|
L_08A68370:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5720)));
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
goto L_08A68378;
|
|
L_08A68378:
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A683C4;
|
|
}
|
|
goto L_08A68390;
|
|
}
|
|
L_08A68390:
|
|
ctx.fpr[13] = ctx.fpr[20] + ctx.fpr[12];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A683C4;
|
|
}
|
|
goto L_08A683A4;
|
|
}
|
|
L_08A683A4:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A683BC;
|
|
}
|
|
goto L_08A683B4;
|
|
}
|
|
L_08A683B4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
if (branch_taken) {
|
|
goto L_08A68404;
|
|
}
|
|
goto L_08A683BC;
|
|
}
|
|
L_08A683BC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
if (branch_taken) {
|
|
goto L_08A68404;
|
|
}
|
|
goto L_08A683C4;
|
|
}
|
|
L_08A683C4:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68404;
|
|
}
|
|
goto L_08A683D4;
|
|
}
|
|
L_08A683D4:
|
|
ctx.fpr[13] = ctx.fpr[20] + ctx.fpr[12];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68404;
|
|
}
|
|
goto L_08A683E8;
|
|
}
|
|
L_08A683E8:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68400;
|
|
}
|
|
goto L_08A683F8;
|
|
}
|
|
L_08A683F8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
if (branch_taken) {
|
|
goto L_08A68404;
|
|
}
|
|
goto L_08A68400;
|
|
}
|
|
L_08A68400:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
goto L_08A68404;
|
|
L_08A68404:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(192));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[5] = (16256u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[12] = ctx.fpr[13] / ctx.fpr[12];
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(212)));
|
|
ctx.fpr[14] = ctx.fpr[14] / ctx.fpr[15];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
ctx.fpr[12] = ctx.fpr[13] / ctx.fpr[12];
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]) & 0x7FFFFFFFu);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5716)));
|
|
{ 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[16] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[16] = fs * ft; }
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[16])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A684A0;
|
|
}
|
|
goto L_08A68494;
|
|
}
|
|
L_08A68494:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]) & 0x7FFFFFFFu);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5716)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
goto L_08A684A0;
|
|
L_08A684A0:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(32), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A684C8u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem) && ctx.pc == 0x08A684C8u) goto L_08A684C8;
|
|
return;
|
|
L_08A684C8:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(32), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[18] + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A684FCu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem) && ctx.pc == 0x08A684FCu) goto L_08A684FC;
|
|
return;
|
|
L_08A684FC:
|
|
ctx.gpr[2] = (0u | 1u);
|
|
{ std::uint32_t aot_run_words[8]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(144), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.gpr[16] = aot_run_words[3];
|
|
ctx.gpr[17] = aot_run_words[4];
|
|
ctx.gpr[18] = aot_run_words[5];
|
|
ctx.gpr[19] = aot_run_words[6];
|
|
ctx.gpr[31] = aot_run_words[7];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68528:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-64));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), ctx.gpr[31]);
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[12]), std::bit_cast<std::uint32_t>(ctx.fpr[13]), std::bit_cast<std::uint32_t>(ctx.fpr[14])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>();
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A68564u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(128));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x08A68564u) goto L_08A68564;
|
|
return;
|
|
L_08A68564:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(48)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68570:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-176));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(160), ctx.gpr[31]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(16);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(32);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[15]), std::bit_cast<std::uint32_t>(ctx.fpr[16]), std::bit_cast<std::uint32_t>(ctx.fpr[17])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(32), aot_run_words); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[12]), std::bit_cast<std::uint32_t>(ctx.fpr[13]), std::bit_cast<std::uint32_t>(ctx.fpr[14])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(48), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(212)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>();
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A68604u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(144));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x08A68604u) goto L_08A68604;
|
|
return;
|
|
L_08A68604:
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(160)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68610:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-592));
|
|
{ const std::uint32_t aot_run_words[8]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(560), aot_run_words); }
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 8192u);
|
|
ctx.gpr[6] = (0u < ctx.gpr[6] ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08A68778;
|
|
}
|
|
goto L_08A68654;
|
|
}
|
|
L_08A68654:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + 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_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
|
|
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.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68770;
|
|
}
|
|
goto L_08A686F0;
|
|
}
|
|
L_08A686F0:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(48));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(208)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.fpr[13] = ctx.fpr[14] / ctx.fpr[13];
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6873C;
|
|
}
|
|
goto L_08A68738;
|
|
}
|
|
L_08A68738:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
goto L_08A6873C;
|
|
L_08A6873C:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[31] = (0x08A68768u);
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(128));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 463u, 0x08A931B8u>(ctx, &aot_mem) && ctx.pc == 0x08A68768u) goto L_08A68768;
|
|
return;
|
|
L_08A68768:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A68AA4;
|
|
}
|
|
goto L_08A68770;
|
|
}
|
|
L_08A68770:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A68AA4;
|
|
}
|
|
goto L_08A68778;
|
|
}
|
|
L_08A68778:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(84), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
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);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(128));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(128), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(112));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(144));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
|
|
ctx.gpr[4] = (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[4] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[12]), std::bit_cast<std::uint32_t>(ctx.fpr[13]), std::bit_cast<std::uint32_t>(ctx.fpr[14])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(480), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(480));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(448));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
|
|
ctx.gpr[4] = (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[4] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(128));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
|
|
ctx.gpr[4] = (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[4] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(96), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(100), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[6] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[6]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(96), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(100), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[6]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[5] = (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[5] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
ctx.gpr[4] = (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[4] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[24] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68A9C;
|
|
}
|
|
goto L_08A688C4;
|
|
}
|
|
L_08A688C4:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(160));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(176));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(208)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[22] = fs * ft; }
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]) ^ 0x80000000u);
|
|
ctx.gpr[31] = (0x08A688F8u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem) && ctx.pc == 0x08A688F8u) goto L_08A688F8;
|
|
return;
|
|
L_08A688F8:
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5708)));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5712)));
|
|
ctx.gpr[5] = (ctx.gpr[3] | 0u);
|
|
ctx.gpr[31] = (0x08A6890Cu);
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 400u, 0x08B61FD0u>(ctx, &aot_mem) && ctx.pc == 0x08A6890Cu) goto L_08A6890C;
|
|
return;
|
|
L_08A6890C:
|
|
ctx.gpr[19] = (ctx.gpr[3] | 0u);
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[31] = (0x08A6891Cu);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem) && ctx.pc == 0x08A6891Cu) goto L_08A6891C;
|
|
return;
|
|
L_08A6891C:
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[3] | 0u);
|
|
ctx.gpr[31] = (0x08A68930u);
|
|
ctx.gpr[6] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 400u, 0x08B61FD0u>(ctx, &aot_mem) && ctx.pc == 0x08A68930u) goto L_08A68930;
|
|
return;
|
|
L_08A68930:
|
|
ctx.gpr[5] = (ctx.gpr[3] | 0u);
|
|
ctx.gpr[31] = (0x08A6893Cu);
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem) && ctx.pc == 0x08A6893Cu) goto L_08A6893C;
|
|
return;
|
|
L_08A6893C:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68958;
|
|
}
|
|
goto L_08A68954;
|
|
}
|
|
L_08A68954:
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
goto L_08A68958;
|
|
L_08A68958:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(192));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(192), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A68988u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
goto L_08A68528;
|
|
L_08A68988:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(192), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(128), aot_run_words);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A689A8u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
goto L_08A68570;
|
|
L_08A689A8:
|
|
ctx.gpr[4] = (15820u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68A94;
|
|
}
|
|
goto L_08A689C4;
|
|
}
|
|
L_08A689C4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(30)));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68A94;
|
|
}
|
|
goto L_08A689D4;
|
|
}
|
|
L_08A689D4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(30)));
|
|
ctx.gpr[5] = (0u | 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68A94;
|
|
}
|
|
goto L_08A689E4;
|
|
}
|
|
L_08A689E4:
|
|
ctx.gpr[31] = (0x08A689ECu);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(28)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0163_entry, 163u, 234u, 0x08A91E70u>(ctx, &aot_mem) && ctx.pc == 0x08A689ECu) goto L_08A689EC;
|
|
return;
|
|
L_08A689EC:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
{ const bool branch_taken = ctx.gpr[2] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68A94;
|
|
}
|
|
goto L_08A689F8;
|
|
}
|
|
L_08A689F8:
|
|
ctx.gpr[4] = (16000u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(208));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(224));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[17]) < 4 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68A94;
|
|
}
|
|
goto L_08A68A44;
|
|
}
|
|
L_08A68A44:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(240), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(244), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(248), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(240));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(224));
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08A68A84u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0062_entry, 62u, 716u, 0x088FF060u>(ctx, &aot_mem) && ctx.pc == 0x08A68A84u) goto L_08A68A84;
|
|
return;
|
|
L_08A68A84:
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[17]) < 4 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68A44;
|
|
}
|
|
goto L_08A68A94;
|
|
}
|
|
L_08A68A94:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A68AA4;
|
|
}
|
|
goto L_08A68A9C;
|
|
}
|
|
L_08A68A9C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A68AA4;
|
|
}
|
|
goto L_08A68AA4;
|
|
}
|
|
L_08A68AA4:
|
|
{ std::uint32_t aot_run_words[8]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(560), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.gpr[16] = aot_run_words[3];
|
|
ctx.gpr[17] = aot_run_words[4];
|
|
ctx.gpr[18] = aot_run_words[5];
|
|
ctx.gpr[19] = aot_run_words[6];
|
|
ctx.gpr[31] = aot_run_words[7];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(592));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68ACC:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
{ const std::uint32_t aot_run_words[4]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[18] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[31] = (0x08A68AF4u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 43u, 0x08AD03B8u>(ctx, &aot_mem) && ctx.pc == 0x08A68AF4u) goto L_08A68AF4;
|
|
return;
|
|
L_08A68AF4:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68BF8;
|
|
}
|
|
goto L_08A68AFC;
|
|
}
|
|
L_08A68AFC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08A68B44u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0044_entry, 44u, 66u, 0x088B4738u>(ctx, &aot_mem) && ctx.pc == 0x08A68B44u) goto L_08A68B44;
|
|
return;
|
|
L_08A68B44:
|
|
ctx.gpr[18] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[18]) <= 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68BF0;
|
|
}
|
|
goto L_08A68B50;
|
|
}
|
|
L_08A68B50:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08A68B5Cu);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem) && ctx.pc == 0x08A68B5Cu) goto L_08A68B5C;
|
|
return;
|
|
L_08A68B5C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68B84;
|
|
}
|
|
goto L_08A68B78;
|
|
}
|
|
L_08A68B78:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A68B84u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 570u, 0x08A66AD8u>(ctx, &aot_mem) && ctx.pc == 0x08A68B84u) goto L_08A68B84;
|
|
return;
|
|
L_08A68B84:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68BD0;
|
|
}
|
|
goto L_08A68BA0;
|
|
}
|
|
L_08A68BA0:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2048u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A68BC0;
|
|
}
|
|
goto L_08A68BB0;
|
|
}
|
|
L_08A68BB0:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2048u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A68BC8;
|
|
}
|
|
goto L_08A68BC0;
|
|
}
|
|
L_08A68BC0:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
goto L_08A68BC8;
|
|
L_08A68BC8:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68BF0;
|
|
}
|
|
goto L_08A68BD0;
|
|
}
|
|
L_08A68BD0:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-3));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 1u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(76), ctx.gpr[4]);
|
|
goto L_08A68BF0;
|
|
L_08A68BF0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (ctx.gpr[18] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A68BFC;
|
|
}
|
|
goto L_08A68BF8;
|
|
}
|
|
L_08A68BF8:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08A68BFC;
|
|
L_08A68BFC:
|
|
{ std::uint32_t aot_run_words[4]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.gpr[16] = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[31] = aot_run_words[3];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68C14:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), ctx.gpr[31]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[31] = (0x08A68C2Cu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0001_entry, 1u, 323u, 0x08809984u>(ctx, &aot_mem) && ctx.pc == 0x08A68C2Cu) goto L_08A68C2C;
|
|
return;
|
|
L_08A68C2C:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (16u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A68C78;
|
|
}
|
|
goto L_08A68C44;
|
|
}
|
|
L_08A68C44:
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68CA4;
|
|
}
|
|
goto L_08A68C4C;
|
|
}
|
|
L_08A68C4C:
|
|
ctx.gpr[4] = (65520u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
ctx.gpr[5] = (16u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(76), ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[5] = (16384u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A68CA4;
|
|
}
|
|
goto L_08A68C78;
|
|
}
|
|
L_08A68C78:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68CA4;
|
|
}
|
|
goto L_08A68C80;
|
|
}
|
|
L_08A68C80:
|
|
ctx.gpr[4] = (65520u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(76), ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[5] = (49152u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
goto L_08A68CA4;
|
|
L_08A68CA4:
|
|
ctx.gpr[16] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68CB4:
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load8(ctx.gpr[4] + static_cast<std::uint32_t>(473)));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68CBC:
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(444)));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68CC4:
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(444), ctx.gpr[5]);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68CCC:
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(448)));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68CD4:
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[2] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(2116)));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68CDC:
|
|
jump_target = ctx.gpr[31];
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(2116), ctx.gpr[5]);
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A68CE4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-112));
|
|
{ const std::uint32_t aot_run_words[10]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(68), aot_run_words); }
|
|
ctx.gpr[22] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[6];
|
|
ctx.gpr[31] = (0x08A68D30u);
|
|
ctx.gpr[5] = (ctx.gpr[22] + ctx.gpr[5]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A68D30u) goto L_08A68D30;
|
|
return;
|
|
L_08A68D30:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[4], ctx.gpr[5], ctx.gpr[6]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words); }
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(44)));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[4]);
|
|
ctx.gpr[5] = (0u | 49u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[4] = (17056u << 16u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[12] / ctx.fpr[16];
|
|
ctx.gpr[4] = (16880u << 16u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[17];
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(20), aot_run_words);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[6] = (16840u << 16u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[6]);
|
|
ctx.gpr[6] = (16128u << 16u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[6]);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[4] = (0u | 49u);
|
|
goto L_08A68DB0;
|
|
}
|
|
goto L_08A68DB0;
|
|
L_08A68DB0:
|
|
ctx.gpr[8] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[8]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[8] = (0u | 0u);
|
|
goto L_08A68DC0;
|
|
}
|
|
goto L_08A68DC0;
|
|
L_08A68DC0:
|
|
ctx.gpr[5] = (0u | 49u);
|
|
ctx.fpr[0] = ctx.fpr[15] / ctx.fpr[16];
|
|
ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18];
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[4] = (0u | 49u);
|
|
goto L_08A68DE0;
|
|
}
|
|
goto L_08A68DE0;
|
|
L_08A68DE0:
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08A68DEC;
|
|
}
|
|
goto L_08A68DEC;
|
|
L_08A68DEC:
|
|
ctx.gpr[6] = (0u | 49u);
|
|
ctx.fpr[0] = ctx.fpr[14] / ctx.fpr[16];
|
|
ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[17];
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[6]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[6] != 0u) {
|
|
ctx.gpr[5] = (0u | 49u);
|
|
goto L_08A68E0C;
|
|
}
|
|
goto L_08A68E0C;
|
|
L_08A68E0C:
|
|
ctx.gpr[6] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[6] = (0u | 0u);
|
|
goto L_08A68E1C;
|
|
}
|
|
goto L_08A68E1C;
|
|
L_08A68E1C:
|
|
ctx.gpr[7] = (0u | 49u);
|
|
ctx.fpr[0] = ctx.fpr[13] / ctx.fpr[16];
|
|
ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18];
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[7] != 0u) {
|
|
ctx.gpr[5] = (0u | 49u);
|
|
goto L_08A68E3C;
|
|
}
|
|
goto L_08A68E3C;
|
|
L_08A68E3C:
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[5]) < 0 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08A68E50;
|
|
}
|
|
goto L_08A68E48;
|
|
}
|
|
L_08A68E48:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), ctx.gpr[5]);
|
|
goto L_08A68E50;
|
|
L_08A68E50:
|
|
ctx.gpr[7] = (0u | 49u);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[19]; 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[12] = ctx.fpr[12] / ctx.fpr[16];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[17];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[7] != 0u) {
|
|
ctx.gpr[5] = (0u | 49u);
|
|
goto L_08A68E78;
|
|
}
|
|
goto L_08A68E78;
|
|
L_08A68E78:
|
|
ctx.gpr[7] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[7]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[7] = (0u | 0u);
|
|
goto L_08A68E88;
|
|
}
|
|
goto L_08A68E88;
|
|
L_08A68E88:
|
|
ctx.gpr[5] = (0u | 49u);
|
|
ctx.fpr[12] = ctx.fpr[15] + ctx.fpr[13];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[19]; 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[12] = ctx.fpr[12] / ctx.fpr[16];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[18];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[30] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[30]) ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[30] = (0u | 49u);
|
|
goto L_08A68EB0;
|
|
}
|
|
goto L_08A68EB0;
|
|
L_08A68EB0:
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[30]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[30] = (0u | 0u);
|
|
goto L_08A68EBC;
|
|
}
|
|
goto L_08A68EBC;
|
|
L_08A68EBC:
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), ctx.gpr[7]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), ctx.gpr[6]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
ctx.gpr[23] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[23]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A690D4;
|
|
}
|
|
goto L_08A68ED8;
|
|
}
|
|
L_08A68ED8:
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(60), ctx.gpr[8]);
|
|
ctx.gpr[5] = (ctx.gpr[4] << 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(52)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), ctx.gpr[4]);
|
|
goto L_08A68EF4;
|
|
L_08A68EF4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(60)));
|
|
ctx.gpr[20] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[20]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A690B8;
|
|
}
|
|
goto L_08A68F08;
|
|
}
|
|
L_08A68F08:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[21] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 3u);
|
|
ctx.gpr[21] = (ctx.gpr[21] - ctx.gpr[4]);
|
|
goto L_08A68F1C;
|
|
L_08A68F1C:
|
|
ctx.gpr[18] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25496)));
|
|
ctx.gpr[18] = (ctx.gpr[18] + ctx.gpr[21]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(48)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[20];
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 1u);
|
|
if (branch_taken) {
|
|
goto L_08A68FB8;
|
|
}
|
|
goto L_08A68F38;
|
|
}
|
|
L_08A68F38:
|
|
{ const bool branch_taken = ctx.gpr[30] != ctx.gpr[23];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68FB8;
|
|
}
|
|
goto L_08A68F40;
|
|
}
|
|
L_08A68F40:
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-2));
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(6) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68F50;
|
|
}
|
|
L_08A68F50:
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(2));
|
|
if (branch_taken) {
|
|
goto L_08A68F88;
|
|
}
|
|
goto L_08A68F5C;
|
|
}
|
|
L_08A68F5C:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(3));
|
|
if (branch_taken) {
|
|
goto L_08A68F94;
|
|
}
|
|
goto L_08A68F64;
|
|
}
|
|
L_08A68F64:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08A68FA0;
|
|
}
|
|
goto L_08A68F6C;
|
|
}
|
|
L_08A68F6C:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(5));
|
|
if (branch_taken) {
|
|
goto L_08A68FB0;
|
|
}
|
|
goto L_08A68F74;
|
|
}
|
|
L_08A68F74:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A68FAC;
|
|
}
|
|
goto L_08A68F7C;
|
|
}
|
|
L_08A68F7C:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(28));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68F88;
|
|
}
|
|
L_08A68F88:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(36));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68F94;
|
|
}
|
|
L_08A68F94:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(12));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68FA0;
|
|
}
|
|
L_08A68FA0:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(20));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68FAC;
|
|
}
|
|
L_08A68FAC:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(8));
|
|
goto L_08A68FB0;
|
|
L_08A68FB0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68FB8;
|
|
}
|
|
L_08A68FB8:
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-2));
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(6) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68FC8;
|
|
}
|
|
L_08A68FC8:
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(2));
|
|
if (branch_taken) {
|
|
goto L_08A69000;
|
|
}
|
|
goto L_08A68FD4;
|
|
}
|
|
L_08A68FD4:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(3));
|
|
if (branch_taken) {
|
|
goto L_08A6900C;
|
|
}
|
|
goto L_08A68FDC;
|
|
}
|
|
L_08A68FDC:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08A69018;
|
|
}
|
|
goto L_08A68FE4;
|
|
}
|
|
L_08A68FE4:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(5));
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A68FEC;
|
|
}
|
|
L_08A68FEC:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69024;
|
|
}
|
|
goto L_08A68FF4;
|
|
}
|
|
L_08A68FF4:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(32));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A69000;
|
|
}
|
|
L_08A69000:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(40));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A6900C;
|
|
}
|
|
L_08A6900C:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A69018;
|
|
}
|
|
L_08A69018:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(20));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69028;
|
|
}
|
|
goto L_08A69024;
|
|
}
|
|
L_08A69024:
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(8));
|
|
goto L_08A69028;
|
|
L_08A69028:
|
|
ctx.gpr[16] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08A69034u);
|
|
ctx.gpr[4] = (0u | 12u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem) && ctx.pc == 0x08A69034u) goto L_08A69034;
|
|
return;
|
|
L_08A69034:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69048;
|
|
}
|
|
goto L_08A69040;
|
|
}
|
|
L_08A69040:
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), ctx.gpr[22]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
goto L_08A69048;
|
|
L_08A69048:
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(8), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A69060;
|
|
}
|
|
goto L_08A69058;
|
|
}
|
|
L_08A69058:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(4), ctx.gpr[16]);
|
|
goto L_08A69060;
|
|
L_08A69060:
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08A69070u);
|
|
ctx.gpr[4] = (0u | 20u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0094_entry, 94u, 722u, 0x0897EBD8u>(ctx, &aot_mem) && ctx.pc == 0x08A69070u) goto L_08A69070;
|
|
return;
|
|
L_08A69070:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(52)));
|
|
if (branch_taken) {
|
|
goto L_08A6908C;
|
|
}
|
|
goto L_08A6907C;
|
|
}
|
|
L_08A6907C:
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[19], ctx.gpr[16], ctx.gpr[18]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[4] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
goto L_08A6908C;
|
|
L_08A6908C:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(228)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(16), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A690A4;
|
|
}
|
|
goto L_08A6909C;
|
|
}
|
|
L_08A6909C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[22] + static_cast<std::uint32_t>(228)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(12), ctx.gpr[17]);
|
|
goto L_08A690A4;
|
|
L_08A690A4:
|
|
aot_mem.aot_direct_store32(ctx.gpr[22] + static_cast<std::uint32_t>(228), ctx.gpr[17]);
|
|
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[20]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[21] = (ctx.gpr[21] + static_cast<std::uint32_t>(56));
|
|
if (branch_taken) {
|
|
goto L_08A68F1C;
|
|
}
|
|
goto L_08A690B8;
|
|
}
|
|
L_08A690B8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
ctx.gpr[23] = (ctx.gpr[23] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(50));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[6]) < static_cast<std::int32_t>(ctx.gpr[23]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A68EF4;
|
|
}
|
|
goto L_08A690D4;
|
|
}
|
|
L_08A690D4:
|
|
{ std::uint32_t aot_run_words[10]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(68), aot_run_words);
|
|
ctx.gpr[16] = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[22] = aot_run_words[6];
|
|
ctx.gpr[23] = aot_run_words[7];
|
|
ctx.gpr[30] = aot_run_words[8];
|
|
ctx.gpr[31] = aot_run_words[9];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A69104:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-112));
|
|
{ const std::uint32_t aot_run_words[10]{ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(72), aot_run_words); }
|
|
ctx.gpr[23] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(228)));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[6];
|
|
ctx.gpr[31] = (0x08A69154u);
|
|
ctx.gpr[5] = (ctx.gpr[23] + ctx.gpr[5]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A69154u) goto L_08A69154;
|
|
return;
|
|
L_08A69154:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[4], ctx.gpr[5], ctx.gpr[6]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words); }
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(44)));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(28), ctx.gpr[4]);
|
|
ctx.gpr[5] = (0u | 49u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[4] = (17056u << 16u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[12] / ctx.fpr[16];
|
|
ctx.gpr[4] = (16880u << 16u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[17];
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(20), aot_run_words);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[6] = (16840u << 16u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[6]);
|
|
ctx.gpr[6] = (16128u << 16u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[6]);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[4] = (0u | 49u);
|
|
goto L_08A691D4;
|
|
}
|
|
goto L_08A691D4;
|
|
L_08A691D4:
|
|
ctx.gpr[6] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[6]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[6] = (0u | 0u);
|
|
goto L_08A691E4;
|
|
}
|
|
goto L_08A691E4;
|
|
L_08A691E4:
|
|
ctx.gpr[5] = (0u | 49u);
|
|
ctx.fpr[0] = ctx.fpr[15] / ctx.fpr[16];
|
|
ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18];
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[4]) ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[4] = (0u | 49u);
|
|
goto L_08A69204;
|
|
}
|
|
goto L_08A69204;
|
|
L_08A69204:
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08A69210;
|
|
}
|
|
goto L_08A69210;
|
|
L_08A69210:
|
|
ctx.gpr[7] = (0u | 49u);
|
|
ctx.fpr[0] = ctx.fpr[14] / ctx.fpr[16];
|
|
ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[17];
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[7] != 0u) {
|
|
ctx.gpr[5] = (0u | 49u);
|
|
goto L_08A69230;
|
|
}
|
|
goto L_08A69230;
|
|
L_08A69230:
|
|
ctx.gpr[8] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[8]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[8] = (0u | 0u);
|
|
goto L_08A69240;
|
|
}
|
|
goto L_08A69240;
|
|
L_08A69240:
|
|
ctx.gpr[7] = (0u | 49u);
|
|
ctx.fpr[0] = ctx.fpr[13] / ctx.fpr[16];
|
|
ctx.fpr[0] = ctx.fpr[0] + ctx.fpr[18];
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[0]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[7] != 0u) {
|
|
ctx.gpr[5] = (0u | 49u);
|
|
goto L_08A69260;
|
|
}
|
|
goto L_08A69260;
|
|
L_08A69260:
|
|
ctx.gpr[7] = (static_cast<std::int32_t>(ctx.gpr[5]) < 0 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(68), ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08A69274;
|
|
}
|
|
goto L_08A6926C;
|
|
}
|
|
L_08A6926C:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(68), ctx.gpr[5]);
|
|
goto L_08A69274;
|
|
L_08A69274:
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), ctx.gpr[6]);
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[6]) < 0;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[8]) < 50 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08A69298;
|
|
}
|
|
goto L_08A69280;
|
|
}
|
|
L_08A69280:
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69298;
|
|
}
|
|
goto L_08A69288;
|
|
}
|
|
L_08A69288:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[4]) < 0;
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 50 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08A69298;
|
|
}
|
|
goto L_08A69290;
|
|
}
|
|
L_08A69290:
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69324;
|
|
}
|
|
goto L_08A69298;
|
|
}
|
|
L_08A69298:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 14u);
|
|
ctx.gpr[6] = (ctx.gpr[5] ^ 6u);
|
|
ctx.gpr[6] = (ctx.gpr[6] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A692DC;
|
|
}
|
|
goto L_08A692B4;
|
|
}
|
|
L_08A692B4:
|
|
ctx.gpr[7] = (ctx.gpr[5] ^ 4u);
|
|
ctx.gpr[7] = (ctx.gpr[7] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[7] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A692DC;
|
|
}
|
|
goto L_08A692C8;
|
|
}
|
|
L_08A692C8:
|
|
ctx.gpr[7] = (ctx.gpr[5] ^ 8u);
|
|
ctx.gpr[7] = (ctx.gpr[7] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[7] = (ctx.gpr[7] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[7] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A692DC;
|
|
}
|
|
goto L_08A692DC;
|
|
}
|
|
L_08A692DC:
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A692EC;
|
|
}
|
|
goto L_08A692E4;
|
|
}
|
|
L_08A692E4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69324;
|
|
}
|
|
goto L_08A692EC;
|
|
}
|
|
L_08A692EC:
|
|
ctx.gpr[6] = (ctx.gpr[5] ^ 4u);
|
|
ctx.gpr[6] = (ctx.gpr[6] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69308;
|
|
}
|
|
goto L_08A69300;
|
|
}
|
|
L_08A69300:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69324;
|
|
}
|
|
goto L_08A69308;
|
|
}
|
|
L_08A69308:
|
|
ctx.gpr[5] = (ctx.gpr[5] ^ 8u);
|
|
ctx.gpr[5] = (ctx.gpr[5] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69324;
|
|
}
|
|
goto L_08A6931C;
|
|
}
|
|
L_08A6931C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69324;
|
|
}
|
|
goto L_08A69324;
|
|
}
|
|
L_08A69324:
|
|
ctx.gpr[6] = (0u | 49u);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[19]; 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[12] = ctx.fpr[12] / ctx.fpr[16];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[17];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[6]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[6] != 0u) {
|
|
ctx.gpr[5] = (0u | 49u);
|
|
goto L_08A6934C;
|
|
}
|
|
goto L_08A6934C;
|
|
L_08A6934C:
|
|
ctx.gpr[7] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[7]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[7] = (0u | 0u);
|
|
goto L_08A6935C;
|
|
}
|
|
goto L_08A6935C;
|
|
L_08A6935C:
|
|
ctx.gpr[6] = (0u | 49u);
|
|
ctx.fpr[12] = ctx.fpr[15] + ctx.fpr[13];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[19]; 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[12] = ctx.fpr[12] / ctx.fpr[16];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[18];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[6]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[6] != 0u) {
|
|
ctx.gpr[5] = (0u | 49u);
|
|
goto L_08A69384;
|
|
}
|
|
goto L_08A69384;
|
|
L_08A69384:
|
|
ctx.gpr[6] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[6]) < 0 ? 1u : 0u);
|
|
if (ctx.gpr[5] != 0u) {
|
|
ctx.gpr[6] = (0u | 0u);
|
|
goto L_08A69394;
|
|
}
|
|
goto L_08A69394;
|
|
L_08A69394:
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), ctx.gpr[8]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), ctx.gpr[7]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), ctx.gpr[6]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(68)));
|
|
ctx.gpr[30] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[30]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[5] = (ctx.gpr[4] << 4u);
|
|
if (branch_taken) {
|
|
goto L_08A69620;
|
|
}
|
|
goto L_08A693B4;
|
|
}
|
|
L_08A693B4:
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(60), ctx.gpr[4]);
|
|
goto L_08A693C8;
|
|
L_08A693C8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
ctx.gpr[20] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[20]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69604;
|
|
}
|
|
goto L_08A693DC;
|
|
}
|
|
L_08A693DC:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(60)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[22] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 3u);
|
|
ctx.gpr[22] = (ctx.gpr[22] - ctx.gpr[4]);
|
|
goto L_08A693F0;
|
|
L_08A693F0:
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-25496)));
|
|
ctx.gpr[19] = (ctx.gpr[19] + ctx.gpr[22]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(52)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[20];
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 1u);
|
|
if (branch_taken) {
|
|
goto L_08A69490;
|
|
}
|
|
goto L_08A6940C;
|
|
}
|
|
L_08A6940C:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(48)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[30];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69490;
|
|
}
|
|
goto L_08A69418;
|
|
}
|
|
L_08A69418:
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-2));
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(6) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A69428;
|
|
}
|
|
L_08A69428:
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(2));
|
|
if (branch_taken) {
|
|
goto L_08A69460;
|
|
}
|
|
goto L_08A69434;
|
|
}
|
|
L_08A69434:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(3));
|
|
if (branch_taken) {
|
|
goto L_08A6946C;
|
|
}
|
|
goto L_08A6943C;
|
|
}
|
|
L_08A6943C:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08A69484;
|
|
}
|
|
goto L_08A69444;
|
|
}
|
|
L_08A69444:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(5));
|
|
if (branch_taken) {
|
|
goto L_08A69488;
|
|
}
|
|
goto L_08A6944C;
|
|
}
|
|
L_08A6944C:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69478;
|
|
}
|
|
goto L_08A69454;
|
|
}
|
|
L_08A69454:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(28));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A69460;
|
|
}
|
|
L_08A69460:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(36));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A6946C;
|
|
}
|
|
L_08A6946C:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(12));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A69478;
|
|
}
|
|
L_08A69478:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A69484;
|
|
}
|
|
L_08A69484:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(20));
|
|
goto L_08A69488;
|
|
L_08A69488:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A69490;
|
|
}
|
|
L_08A69490:
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-2));
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(6) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A694A0;
|
|
}
|
|
L_08A694A0:
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(2));
|
|
if (branch_taken) {
|
|
goto L_08A694D8;
|
|
}
|
|
goto L_08A694AC;
|
|
}
|
|
L_08A694AC:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(3));
|
|
if (branch_taken) {
|
|
goto L_08A694E4;
|
|
}
|
|
goto L_08A694B4;
|
|
}
|
|
L_08A694B4:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08A694FC;
|
|
}
|
|
goto L_08A694BC;
|
|
}
|
|
L_08A694BC:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
ctx.gpr[1] = (0u + static_cast<std::uint32_t>(5));
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A694C4;
|
|
}
|
|
L_08A694C4:
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[1];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A694F0;
|
|
}
|
|
goto L_08A694CC;
|
|
}
|
|
L_08A694CC:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(32));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A694D8;
|
|
}
|
|
L_08A694D8:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(40));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A694E4;
|
|
}
|
|
L_08A694E4:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A694F0;
|
|
}
|
|
L_08A694F0:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(8));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69500;
|
|
}
|
|
goto L_08A694FC;
|
|
}
|
|
L_08A694FC:
|
|
ctx.gpr[18] = (ctx.gpr[19] + static_cast<std::uint32_t>(24));
|
|
goto L_08A69500;
|
|
L_08A69500:
|
|
{ const bool branch_taken = ctx.gpr[21] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69574;
|
|
}
|
|
goto L_08A69508;
|
|
}
|
|
L_08A69508:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[8] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[8] != ctx.gpr[6];
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(8)));
|
|
if (branch_taken) {
|
|
goto L_08A69524;
|
|
}
|
|
goto L_08A6951C;
|
|
}
|
|
L_08A6951C:
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(8)));
|
|
goto L_08A69524;
|
|
L_08A69524:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69538;
|
|
}
|
|
goto L_08A69530;
|
|
}
|
|
L_08A69530:
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(8), ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(8)));
|
|
goto L_08A69538;
|
|
L_08A69538:
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69548;
|
|
}
|
|
goto L_08A69540;
|
|
}
|
|
L_08A69540:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[6] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[5] + static_cast<std::uint32_t>(4), ctx.gpr[4]);
|
|
goto L_08A69548;
|
|
L_08A69548:
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(8), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A69560;
|
|
}
|
|
goto L_08A69558;
|
|
}
|
|
L_08A69558:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(4), ctx.gpr[6]);
|
|
goto L_08A69560;
|
|
L_08A69560:
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast<std::uint32_t>(8), ctx.gpr[19]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[21] + static_cast<std::uint32_t>(0), ctx.gpr[18]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(16)));
|
|
if (branch_taken) {
|
|
goto L_08A695F4;
|
|
}
|
|
goto L_08A69574;
|
|
}
|
|
L_08A69574:
|
|
ctx.gpr[16] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08A69580u);
|
|
ctx.gpr[4] = (0u | 12u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 593u, 0x08807C9Cu>(ctx, &aot_mem) && ctx.pc == 0x08A69580u) goto L_08A69580;
|
|
return;
|
|
L_08A69580:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69594;
|
|
}
|
|
goto L_08A6958C;
|
|
}
|
|
L_08A6958C:
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), ctx.gpr[23]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
goto L_08A69594;
|
|
L_08A69594:
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(8), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A695AC;
|
|
}
|
|
goto L_08A695A4;
|
|
}
|
|
L_08A695A4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(4), ctx.gpr[16]);
|
|
goto L_08A695AC;
|
|
L_08A695AC:
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08A695BCu);
|
|
ctx.gpr[4] = (0u | 20u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0094_entry, 94u, 722u, 0x0897EBD8u>(ctx, &aot_mem) && ctx.pc == 0x08A695BCu) goto L_08A695BC;
|
|
return;
|
|
L_08A695BC:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
if (branch_taken) {
|
|
goto L_08A695D8;
|
|
}
|
|
goto L_08A695C8;
|
|
}
|
|
L_08A695C8:
|
|
{ const std::uint32_t aot_run_words[3]{ctx.gpr[18], ctx.gpr[16], ctx.gpr[19]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[4] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
ctx.gpr[17] = (ctx.gpr[4] | 0u);
|
|
goto L_08A695D8;
|
|
L_08A695D8:
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(12), 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(228)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(16), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A695F0;
|
|
}
|
|
goto L_08A695E8;
|
|
}
|
|
L_08A695E8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(228)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(12), ctx.gpr[17]);
|
|
goto L_08A695F0;
|
|
L_08A695F0:
|
|
aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast<std::uint32_t>(228), ctx.gpr[17]);
|
|
goto L_08A695F4;
|
|
L_08A695F4:
|
|
ctx.gpr[20] = (ctx.gpr[20] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[7]) < static_cast<std::int32_t>(ctx.gpr[20]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[22] = (ctx.gpr[22] + static_cast<std::uint32_t>(56));
|
|
if (branch_taken) {
|
|
goto L_08A693F0;
|
|
}
|
|
goto L_08A69604;
|
|
}
|
|
L_08A69604:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(60)));
|
|
ctx.gpr[30] = (ctx.gpr[30] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(68)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(50));
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[5]) < static_cast<std::int32_t>(ctx.gpr[30]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(60), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A693C8;
|
|
}
|
|
goto L_08A69620;
|
|
}
|
|
L_08A69620:
|
|
{ const bool branch_taken = ctx.gpr[21] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A696C8;
|
|
}
|
|
goto L_08A69628;
|
|
}
|
|
L_08A69628:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[21] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
{ const bool branch_taken = ctx.gpr[7] != ctx.gpr[5];
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
if (branch_taken) {
|
|
goto L_08A69644;
|
|
}
|
|
goto L_08A6963C;
|
|
}
|
|
L_08A6963C:
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), ctx.gpr[6]);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
goto L_08A69644;
|
|
L_08A69644:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69658;
|
|
}
|
|
goto L_08A69650;
|
|
}
|
|
L_08A69650:
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(8), ctx.gpr[6]);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
goto L_08A69658;
|
|
L_08A69658:
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69668;
|
|
}
|
|
goto L_08A69660;
|
|
}
|
|
L_08A69660:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(4), ctx.gpr[4]);
|
|
goto L_08A69668;
|
|
L_08A69668:
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69678;
|
|
}
|
|
goto L_08A69670;
|
|
}
|
|
L_08A69670:
|
|
ctx.gpr[31] = (0x08A69678u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0000_entry, 0u, 595u, 0x08807CB8u>(ctx, &aot_mem) && ctx.pc == 0x08A69678u) goto L_08A69678;
|
|
return;
|
|
L_08A69678:
|
|
ctx.gpr[4] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[21] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[23] + static_cast<std::uint32_t>(228)));
|
|
{ const bool branch_taken = ctx.gpr[6] != ctx.gpr[4];
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(16)));
|
|
if (branch_taken) {
|
|
goto L_08A69694;
|
|
}
|
|
goto L_08A6968C;
|
|
}
|
|
L_08A6968C:
|
|
aot_mem.aot_direct_store32(ctx.gpr[23] + static_cast<std::uint32_t>(228), ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(16)));
|
|
goto L_08A69694;
|
|
L_08A69694:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(12)));
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A696A8;
|
|
}
|
|
goto L_08A696A0;
|
|
}
|
|
L_08A696A0:
|
|
aot_mem.aot_direct_store32(ctx.gpr[6] + static_cast<std::uint32_t>(16), ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(16)));
|
|
goto L_08A696A8;
|
|
L_08A696A8:
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A696B8;
|
|
}
|
|
goto L_08A696B0;
|
|
}
|
|
L_08A696B0:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(12)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[5] + static_cast<std::uint32_t>(12), ctx.gpr[6]);
|
|
goto L_08A696B8;
|
|
L_08A696B8:
|
|
ctx.gpr[31] = (0x08A696C0u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0094_entry, 94u, 724u, 0x0897EBF4u>(ctx, &aot_mem) && ctx.pc == 0x08A696C0u) goto L_08A696C0;
|
|
return;
|
|
L_08A696C0:
|
|
{ const bool branch_taken = ctx.gpr[21] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69628;
|
|
}
|
|
goto L_08A696C8;
|
|
}
|
|
L_08A696C8:
|
|
{ std::uint32_t aot_run_words[10]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(72), aot_run_words);
|
|
ctx.gpr[16] = aot_run_words[0];
|
|
ctx.gpr[17] = aot_run_words[1];
|
|
ctx.gpr[18] = aot_run_words[2];
|
|
ctx.gpr[19] = aot_run_words[3];
|
|
ctx.gpr[20] = aot_run_words[4];
|
|
ctx.gpr[21] = aot_run_words[5];
|
|
ctx.gpr[22] = aot_run_words[6];
|
|
ctx.gpr[23] = aot_run_words[7];
|
|
ctx.gpr[30] = aot_run_words[8];
|
|
ctx.gpr[31] = aot_run_words[9];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A696F8:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-64));
|
|
{ const std::uint32_t aot_run_words[10]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words); }
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[31] = (0x08A69730u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 349u, 0x08AD1B88u>(ctx, &aot_mem) && ctx.pc == 0x08A69730u) goto L_08A69730;
|
|
return;
|
|
L_08A69730:
|
|
ctx.gpr[4] = (2234u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(30528));
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(92), ctx.gpr[4]);
|
|
ctx.gpr[19] = (ctx.gpr[16] + static_cast<std::uint32_t>(112));
|
|
ctx.gpr[20] = (ctx.gpr[16] + static_cast<std::uint32_t>(128));
|
|
ctx.gpr[21] = (ctx.gpr[16] + static_cast<std::uint32_t>(144));
|
|
ctx.gpr[22] = (ctx.gpr[16] + static_cast<std::uint32_t>(160));
|
|
ctx.gpr[23] = (ctx.gpr[16] + static_cast<std::uint32_t>(176));
|
|
ctx.gpr[18] = (ctx.gpr[16] + static_cast<std::uint32_t>(192));
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(228), 0u);
|
|
ctx.gpr[17] = (ctx.gpr[16] + static_cast<std::uint32_t>(288));
|
|
ctx.gpr[4] = (15820u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (49024u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(272), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[20] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[31] = (0x08A697A0u);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem) && ctx.pc == 0x08A697A0u) goto L_08A697A0;
|
|
return;
|
|
L_08A697A0:
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[19] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[20] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(232), 0u);
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(309), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(310), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A69818;
|
|
L_08A69818:
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(240), 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[6] = (ctx.gpr[5] < static_cast<std::uint32_t>(6) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(4));
|
|
if (branch_taken) {
|
|
goto L_08A69818;
|
|
}
|
|
goto L_08A6982C;
|
|
}
|
|
L_08A6982C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-16385));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (65535u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(32767));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (65408u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
aot_mem.aot_direct_store16(ctx.gpr[16] + static_cast<std::uint32_t>(306), static_cast<std::uint16_t>(0u));
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(268), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(336), 0u);
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[17] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(304))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 1u);
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(304), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-513));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 512u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[4] = (0u + static_cast<std::uint32_t>(-5));
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(96), ctx.gpr[4]);
|
|
ctx.gpr[5] = (17096u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(100), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[18] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(308), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-2));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 2u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-9));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-257));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-2049));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-4097));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(264), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-1025));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(312), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[5] = (49152u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (32768u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-8193));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (64512u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(304))))));
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-3));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(304), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(340), static_cast<std::uint8_t>(0u));
|
|
ctx.gpr[2] = (ctx.gpr[16] | 0u);
|
|
{ std::uint32_t aot_run_words[10]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(16), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.gpr[16] = aot_run_words[1];
|
|
ctx.gpr[17] = aot_run_words[2];
|
|
ctx.gpr[18] = aot_run_words[3];
|
|
ctx.gpr[19] = aot_run_words[4];
|
|
ctx.gpr[20] = aot_run_words[5];
|
|
ctx.gpr[21] = aot_run_words[6];
|
|
ctx.gpr[22] = aot_run_words[7];
|
|
ctx.gpr[23] = aot_run_words[8];
|
|
ctx.gpr[31] = aot_run_words[9];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A699B0:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-336));
|
|
{ const std::uint32_t aot_run_words[16]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), std::bit_cast<std::uint32_t>(ctx.fpr[28]), std::bit_cast<std::uint32_t>(ctx.fpr[30]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(260), aot_run_words); }
|
|
ctx.fpr[20] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(264), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[17] = (0u + static_cast<std::uint32_t>(-16385));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(236), ctx.gpr[5]);
|
|
ctx.gpr[18] = (0u + static_cast<std::uint32_t>(-4097));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(236), ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 512u);
|
|
ctx.gpr[5] = (0u < ctx.gpr[5] ? 1u : 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A69A6C;
|
|
}
|
|
goto L_08A69A30;
|
|
}
|
|
L_08A69A30:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(184));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08A69A48u);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A69A48u) goto L_08A69A48;
|
|
return;
|
|
L_08A69A48:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69A6C;
|
|
}
|
|
goto L_08A69A50;
|
|
}
|
|
L_08A69A50:
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(328), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08A69A6Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A69A6Cu) goto L_08A69A6C;
|
|
return;
|
|
L_08A69A6C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 512u);
|
|
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_08A69ABC;
|
|
}
|
|
goto L_08A69A84;
|
|
}
|
|
L_08A69A84:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69ABC;
|
|
}
|
|
goto L_08A69AA0;
|
|
}
|
|
L_08A69AA0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 496u);
|
|
ctx.gpr[19] = (0u | 32u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[19];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69AEC;
|
|
}
|
|
goto L_08A69AB4;
|
|
}
|
|
L_08A69AB4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69BA4;
|
|
}
|
|
goto L_08A69ABC;
|
|
}
|
|
L_08A69ABC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[5] = (65535u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(32767));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08A69AE4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A69104;
|
|
L_08A69AE4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A69AEC;
|
|
}
|
|
L_08A69AEC:
|
|
ctx.gpr[31] = (0x08A69AF4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 738u, 0x08A67BDCu>(ctx, &aot_mem) && ctx.pc == 0x08A69AF4u) goto L_08A69AF4;
|
|
return;
|
|
L_08A69AF4:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69B74;
|
|
}
|
|
goto L_08A69AFC;
|
|
}
|
|
L_08A69AFC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 496u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[19];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69B74;
|
|
}
|
|
goto L_08A69B0C;
|
|
}
|
|
L_08A69B0C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-497));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 48u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69B48;
|
|
}
|
|
goto L_08A69B38;
|
|
}
|
|
L_08A69B38:
|
|
ctx.gpr[31] = (0x08A69B40u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 365u, 0x08B41608u>(ctx, &aot_mem) && ctx.pc == 0x08A69B40u) goto L_08A69B40;
|
|
return;
|
|
L_08A69B40:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69B74;
|
|
}
|
|
goto L_08A69B48;
|
|
}
|
|
L_08A69B48:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69B74;
|
|
}
|
|
goto L_08A69B64;
|
|
}
|
|
L_08A69B64:
|
|
ctx.gpr[4] = (2237u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-28736));
|
|
ctx.gpr[31] = (0x08A69B74u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(352)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0182_entry, 182u, 264u, 0x08ADCEA0u>(ctx, &aot_mem) && ctx.pc == 0x08A69B74u) goto L_08A69B74;
|
|
return;
|
|
L_08A69B74:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[5] = (65535u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(32767));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08A69B9Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A69104;
|
|
L_08A69B9C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A69BA4;
|
|
}
|
|
L_08A69BA4:
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(224)));
|
|
ctx.gpr[19] = (0u | 0u);
|
|
ctx.gpr[20] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[21] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[22] = (0u | 1u);
|
|
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[23] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[4] = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[31] = (0x08A69BD8u);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem) && ctx.pc == 0x08A69BD8u) goto L_08A69BD8;
|
|
return;
|
|
L_08A69BD8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69D54;
|
|
}
|
|
goto L_08A69BF4;
|
|
}
|
|
L_08A69BF4:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[28]; 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[12]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[28] = fs * ft; }
|
|
ctx.gpr[4] = (15800u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 20972u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69C3C;
|
|
}
|
|
goto L_08A69C2C;
|
|
}
|
|
L_08A69C2C:
|
|
ctx.gpr[31] = (0x08A69C34u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x08A69C34u) goto L_08A69C34;
|
|
return;
|
|
L_08A69C34:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69D54;
|
|
}
|
|
goto L_08A69C3C;
|
|
}
|
|
L_08A69C3C:
|
|
ctx.gpr[31] = (0x08A69C44u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x08A69C44u) goto L_08A69C44;
|
|
return;
|
|
L_08A69C44:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
ctx.fpr[28] = std::sqrt(ctx.fpr[28]);
|
|
ctx.gpr[5] = (16384u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (16025u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 39322u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08A69CD8;
|
|
}
|
|
goto L_08A69C64;
|
|
}
|
|
L_08A69C64:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1300)));
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
{ const float fs = ctx.fpr[28]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[28] = fs * ft; }
|
|
if (branch_taken) {
|
|
goto L_08A69CA8;
|
|
}
|
|
goto L_08A69C70;
|
|
}
|
|
L_08A69C70:
|
|
ctx.fpr[12] = ctx.fpr[28] / ctx.fpr[13];
|
|
ctx.fpr[28] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[12]));
|
|
ctx.fpr[28] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[28])));
|
|
ctx.gpr[5] = (16512u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[28] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A69C94;
|
|
}
|
|
goto L_08A69C94;
|
|
L_08A69C94:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[28]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69D00;
|
|
}
|
|
goto L_08A69CA8;
|
|
}
|
|
L_08A69CA8:
|
|
ctx.fpr[13] = ctx.fpr[28] / ctx.fpr[13];
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[13]));
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A69CC4;
|
|
}
|
|
goto L_08A69CC4;
|
|
L_08A69CC4:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69D00;
|
|
}
|
|
goto L_08A69CD8;
|
|
}
|
|
L_08A69CD8:
|
|
ctx.fpr[13] = ctx.fpr[28] / ctx.fpr[13];
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[13]));
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A69CF4;
|
|
}
|
|
goto L_08A69CF4;
|
|
L_08A69CF4:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[13]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
goto L_08A69D00;
|
|
L_08A69D00:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69D28;
|
|
}
|
|
goto L_08A69D08;
|
|
}
|
|
L_08A69D08:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2u);
|
|
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_08A69D28;
|
|
}
|
|
goto L_08A69D20;
|
|
}
|
|
L_08A69D20:
|
|
ctx.gpr[22] = (ctx.gpr[22] + ctx.gpr[22]);
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
goto L_08A69D28;
|
|
L_08A69D28:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[22]);
|
|
ctx.fpr[24] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24];
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69D4C;
|
|
}
|
|
goto L_08A69D3C;
|
|
}
|
|
L_08A69D3C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(224)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5732)));
|
|
{ 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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A69D4C;
|
|
L_08A69D4C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A69D54;
|
|
}
|
|
L_08A69D54:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69F38;
|
|
}
|
|
goto L_08A69D70;
|
|
}
|
|
L_08A69D70:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
|
|
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>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ 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] = (16076u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 496u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A69DB0;
|
|
}
|
|
goto L_08A69DA8;
|
|
}
|
|
L_08A69DA8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A69DB0;
|
|
}
|
|
goto L_08A69DB0;
|
|
}
|
|
L_08A69DB0:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69DC4;
|
|
}
|
|
goto L_08A69DB8;
|
|
}
|
|
L_08A69DB8:
|
|
ctx.gpr[4] = (16025u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08A69DC4;
|
|
L_08A69DC4:
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[13];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[12]));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[22]) < 1 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69DEC;
|
|
}
|
|
goto L_08A69DE8;
|
|
}
|
|
L_08A69DE8:
|
|
ctx.gpr[22] = (0u | 1u);
|
|
goto L_08A69DEC;
|
|
L_08A69DEC:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[22]);
|
|
ctx.fpr[24] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24];
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[22]) < 3 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69F30;
|
|
}
|
|
goto L_08A69E04;
|
|
}
|
|
L_08A69E04:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[30] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(20)));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) & 0x7FFFFFFFu);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ 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.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(20)));
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15];
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[14];
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]) & 0x7FFFFFFFu);
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[28] = fs * ft; }
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(32)));
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(16)));
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[17];
|
|
ctx.fpr[28] = ctx.fpr[28] / ctx.fpr[14];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[28] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A69E8C;
|
|
}
|
|
goto L_08A69E8C;
|
|
L_08A69E8C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(32));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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.gpr[31] = (0x08A69EACu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 412u, 0x08A65D60u>(ctx, &aot_mem) && ctx.pc == 0x08A69EACu) goto L_08A69EAC;
|
|
return;
|
|
L_08A69EAC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ const float fs = ctx.fpr[0]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[30] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[30] = fs * ft; }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(40)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(24)));
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[14];
|
|
ctx.fpr[30] = ctx.fpr[30] / ctx.fpr[13];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[30] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
goto L_08A69ED4;
|
|
}
|
|
goto L_08A69ED4;
|
|
L_08A69ED4:
|
|
ctx.fpr[28] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[30]));
|
|
ctx.gpr[31] = (0x08A69EE0u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0191_entry, 191u, 504u, 0x08B01E00u>(ctx, &aot_mem) && ctx.pc == 0x08A69EE0u) goto L_08A69EE0;
|
|
return;
|
|
L_08A69EE0:
|
|
ctx.gpr[4] = (0u | 2u);
|
|
{ const bool branch_taken = ctx.gpr[2] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69EF8;
|
|
}
|
|
goto L_08A69EEC;
|
|
}
|
|
L_08A69EEC:
|
|
ctx.gpr[4] = (16320u << 16u);
|
|
ctx.fpr[28] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[30]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[28] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[28] = fs * ft; }
|
|
goto L_08A69EF8;
|
|
L_08A69EF8:
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69F18;
|
|
}
|
|
goto L_08A69F10;
|
|
}
|
|
L_08A69F10:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[19] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A69F30;
|
|
}
|
|
goto L_08A69F18;
|
|
}
|
|
L_08A69F18:
|
|
ctx.gpr[4] = (16384u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A69F30;
|
|
}
|
|
goto L_08A69F30;
|
|
}
|
|
L_08A69F30:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A69F38;
|
|
}
|
|
L_08A69F38:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A69F54;
|
|
}
|
|
L_08A69F54:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(476)));
|
|
ctx.gpr[5] = (0u | 3u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A69F64;
|
|
}
|
|
L_08A69F64:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load8(ctx.gpr[4] + static_cast<std::uint32_t>(474)));
|
|
ctx.gpr[6] = (0u | 1u);
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A0C0;
|
|
}
|
|
goto L_08A69F78;
|
|
}
|
|
L_08A69F78:
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(256), ctx.gpr[23]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[16] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(20)));
|
|
{ const std::uint32_t aot_run_words[3]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[20])};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(176), aot_run_words); }
|
|
ctx.gpr[20] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(192));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(40)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(184), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(200), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
|
|
ctx.gpr[23] = (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[23] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[20] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[31] = (0x08A6A014u);
|
|
ctx.gpr[6] = (ctx.gpr[20] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem) && ctx.pc == 0x08A6A014u) goto L_08A6A014;
|
|
return;
|
|
L_08A6A014:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[20] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[31] = (0x08A6A02Cu);
|
|
ctx.gpr[6] = (ctx.gpr[30] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem) && ctx.pc == 0x08A6A02Cu) goto L_08A6A02C;
|
|
return;
|
|
L_08A6A02C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A6A03Cu);
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A03Cu) goto L_08A6A03C;
|
|
return;
|
|
L_08A6A03C:
|
|
ctx.fpr[28] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[31] = (0x08A6A048u);
|
|
ctx.gpr[4] = (ctx.gpr[30] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 414u, 0x08A65D8Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A048u) goto L_08A6A048;
|
|
return;
|
|
L_08A6A048:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
ctx.gpr[23] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(256)));
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
goto L_08A6A05C;
|
|
}
|
|
goto L_08A6A05C;
|
|
L_08A6A05C:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ 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[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] = (15800u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 20972u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A0B8;
|
|
}
|
|
goto L_08A6A084;
|
|
}
|
|
L_08A6A084:
|
|
ctx.fpr[12] = std::sqrt(ctx.fpr[12]);
|
|
ctx.gpr[4] = (16025u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[13];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[12]));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[22]);
|
|
ctx.fpr[24] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24];
|
|
goto L_08A6A0B8;
|
|
L_08A6A0B8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A6A0C0;
|
|
}
|
|
L_08A6A0C0:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load8(ctx.gpr[4] + static_cast<std::uint32_t>(474)));
|
|
ctx.gpr[6] = (0u | 5u);
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A144;
|
|
}
|
|
goto L_08A6A0D0;
|
|
}
|
|
L_08A6A0D0:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 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>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ 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[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] = (15379u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 29885u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A6A108;
|
|
}
|
|
L_08A6A108:
|
|
ctx.fpr[12] = std::sqrt(ctx.fpr[12]);
|
|
ctx.gpr[4] = (15800u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 20972u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[13];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[12]));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[22]);
|
|
ctx.fpr[24] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A6A144;
|
|
}
|
|
L_08A6A144:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load8(ctx.gpr[4] + static_cast<std::uint32_t>(474)));
|
|
ctx.gpr[6] = (0u | 2u);
|
|
{ const bool branch_taken = ctx.gpr[5] == ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A164;
|
|
}
|
|
goto L_08A6A154;
|
|
}
|
|
L_08A6A154:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[4] + static_cast<std::uint32_t>(474)));
|
|
ctx.gpr[5] = (0u | 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A1D8;
|
|
}
|
|
goto L_08A6A164;
|
|
}
|
|
L_08A6A164:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 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>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ 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[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] = (15544u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 20972u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A6A19C;
|
|
}
|
|
L_08A6A19C:
|
|
ctx.fpr[12] = std::sqrt(ctx.fpr[12]);
|
|
ctx.gpr[4] = (15897u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[13];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[12]));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[22]);
|
|
ctx.fpr[24] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A6A1D8;
|
|
}
|
|
L_08A6A1D8:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 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>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ 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[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] = (15800u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 20972u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A244;
|
|
}
|
|
goto L_08A6A210;
|
|
}
|
|
L_08A6A210:
|
|
ctx.fpr[12] = std::sqrt(ctx.fpr[12]);
|
|
ctx.gpr[4] = (16025u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[13];
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<2u>(ctx.fpr[12]));
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[22] = (ctx.gpr[22] & 255u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[22]);
|
|
ctx.fpr[24] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.fpr[24] = ctx.fpr[26] / ctx.fpr[24];
|
|
goto L_08A6A244;
|
|
L_08A6A244:
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A3A0;
|
|
}
|
|
goto L_08A6A24C;
|
|
}
|
|
L_08A6A24C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[6];
|
|
ctx.gpr[31] = (0x08A6A264u);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[5]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6A264u) goto L_08A6A264;
|
|
return;
|
|
L_08A6A264:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(200));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08A6A27Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6A27Cu) goto L_08A6A27C;
|
|
return;
|
|
L_08A6A27C:
|
|
ctx.gpr[31] = (0x08A6A284u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem) && ctx.pc == 0x08A6A284u) goto L_08A6A284;
|
|
return;
|
|
L_08A6A284:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[19] = (ctx.gpr[5] & 512u);
|
|
ctx.gpr[19] = (0u < ctx.gpr[19] ? 1u : 0u);
|
|
ctx.gpr[20] = (0u + static_cast<std::uint32_t>(-513));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[20]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08A6A2C0u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A2C0u) goto L_08A6A2C0;
|
|
return;
|
|
L_08A6A2C0:
|
|
ctx.gpr[4] = (65535u << 16u);
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(32767));
|
|
if (branch_taken) {
|
|
goto L_08A6A34C;
|
|
}
|
|
goto L_08A6A2CC;
|
|
}
|
|
L_08A6A2CC:
|
|
ctx.gpr[5] = (ctx.gpr[19] & 255u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & ctx.gpr[20]);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 1u);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 9u);
|
|
ctx.gpr[5] = (ctx.gpr[6] | ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6A300u);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem) && ctx.pc == 0x08A6A300u) goto L_08A6A300;
|
|
return;
|
|
L_08A6A300:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6A30Cu);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem) && ctx.pc == 0x08A6A30Cu) goto L_08A6A30C;
|
|
return;
|
|
L_08A6A30C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A3A0;
|
|
}
|
|
goto L_08A6A328;
|
|
}
|
|
L_08A6A328:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(613))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A3A0;
|
|
}
|
|
goto L_08A6A338;
|
|
}
|
|
L_08A6A338:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(224)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5728)));
|
|
{ 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 bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08A6A3A0;
|
|
}
|
|
goto L_08A6A34C;
|
|
}
|
|
L_08A6A34C:
|
|
ctx.gpr[5] = (ctx.gpr[19] & 255u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & ctx.gpr[20]);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 1u);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 9u);
|
|
ctx.gpr[5] = (ctx.gpr[6] | ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[5]);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[6] & ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[5] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A398;
|
|
}
|
|
goto L_08A6A38C;
|
|
}
|
|
L_08A6A38C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(616))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 16u);
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(616), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08A6A398;
|
|
L_08A6A398:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A770;
|
|
}
|
|
goto L_08A6A3A0;
|
|
}
|
|
L_08A6A3A0:
|
|
ctx.gpr[19] = (0u | 1u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(ctx.gpr[22]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[20] = (0u | 9u);
|
|
if (branch_taken) {
|
|
goto L_08A6A5D0;
|
|
}
|
|
goto L_08A6A3B0;
|
|
}
|
|
L_08A6A3B0:
|
|
ctx.gpr[21] = (0u | 6u);
|
|
ctx.gpr[30] = (0u | 8u);
|
|
goto L_08A6A3B8;
|
|
L_08A6A3B8:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[19]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[24]; 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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7676), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[6];
|
|
ctx.gpr[31] = (0x08A6A3E0u);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[5]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6A3E0u) goto L_08A6A3E0;
|
|
return;
|
|
L_08A6A3E0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(200));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08A6A3F8u);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6A3F8u) goto L_08A6A3F8;
|
|
return;
|
|
L_08A6A3F8:
|
|
ctx.gpr[31] = (0x08A6A400u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A400u) goto L_08A6A400;
|
|
return;
|
|
L_08A6A400:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A4A8;
|
|
}
|
|
goto L_08A6A408;
|
|
}
|
|
L_08A6A408:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A468;
|
|
}
|
|
goto L_08A6A424;
|
|
}
|
|
L_08A6A424:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(328)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A468;
|
|
}
|
|
goto L_08A6A438;
|
|
}
|
|
L_08A6A438:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6A468;
|
|
}
|
|
goto L_08A6A450;
|
|
}
|
|
L_08A6A450:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A468;
|
|
}
|
|
goto L_08A6A460;
|
|
}
|
|
L_08A6A460:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(56)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A6A468;
|
|
L_08A6A468:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6A474u);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem) && ctx.pc == 0x08A6A474u) goto L_08A6A474;
|
|
return;
|
|
L_08A6A474:
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7676), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A48C;
|
|
}
|
|
L_08A6A48C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A498;
|
|
}
|
|
L_08A6A498:
|
|
ctx.gpr[31] = (0x08A6A4A0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem) && ctx.pc == 0x08A6A4A0u) goto L_08A6A4A0;
|
|
return;
|
|
L_08A6A4A0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A4A8;
|
|
}
|
|
L_08A6A4A8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A508;
|
|
}
|
|
goto L_08A6A4C4;
|
|
}
|
|
L_08A6A4C4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(328)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A508;
|
|
}
|
|
goto L_08A6A4D8;
|
|
}
|
|
L_08A6A4D8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6A508;
|
|
}
|
|
goto L_08A6A4F0;
|
|
}
|
|
L_08A6A4F0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A508;
|
|
}
|
|
goto L_08A6A500;
|
|
}
|
|
L_08A6A500:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(56)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A6A508;
|
|
L_08A6A508:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6A514u);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem) && ctx.pc == 0x08A6A514u) goto L_08A6A514;
|
|
return;
|
|
L_08A6A514:
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7676), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A5BC;
|
|
}
|
|
goto L_08A6A534;
|
|
}
|
|
L_08A6A534:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(852)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A54C;
|
|
}
|
|
goto L_08A6A540;
|
|
}
|
|
L_08A6A540:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(852)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[20];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A57C;
|
|
}
|
|
goto L_08A6A54C;
|
|
}
|
|
L_08A6A54C:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08A6A550;
|
|
L_08A6A550:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5736)));
|
|
ctx.gpr[5] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[5] = (ctx.gpr[16] + ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[5] + static_cast<std::uint32_t>(1520), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 65535u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 4 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A550;
|
|
}
|
|
goto L_08A6A574;
|
|
}
|
|
L_08A6A574:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A5BC;
|
|
}
|
|
goto L_08A6A57C;
|
|
}
|
|
L_08A6A57C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(852)));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[21];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A594;
|
|
}
|
|
goto L_08A6A588;
|
|
}
|
|
L_08A6A588:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(852)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[30];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A5BC;
|
|
}
|
|
goto L_08A6A594;
|
|
}
|
|
L_08A6A594:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
goto L_08A6A598;
|
|
L_08A6A598:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5736)));
|
|
ctx.gpr[5] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[5] = (ctx.gpr[16] + ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[5] + static_cast<std::uint32_t>(1216), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 65535u);
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 4 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A598;
|
|
}
|
|
goto L_08A6A5BC;
|
|
}
|
|
L_08A6A5BC:
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[19] = (ctx.gpr[19] & 65535u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[19]) < static_cast<std::int32_t>(ctx.gpr[22]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A3B8;
|
|
}
|
|
goto L_08A6A5D0;
|
|
}
|
|
L_08A6A5D0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[6];
|
|
ctx.gpr[31] = (0x08A6A5E8u);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[5]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6A5E8u) goto L_08A6A5E8;
|
|
return;
|
|
L_08A6A5E8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(200));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08A6A600u);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6A600u) goto L_08A6A600;
|
|
return;
|
|
L_08A6A600:
|
|
ctx.gpr[31] = (0x08A6A608u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem) && ctx.pc == 0x08A6A608u) goto L_08A6A608;
|
|
return;
|
|
L_08A6A608:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(320)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A630;
|
|
}
|
|
L_08A6A630:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(324)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A644;
|
|
}
|
|
L_08A6A644:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(328)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A658;
|
|
}
|
|
L_08A6A658:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(112)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A66C;
|
|
}
|
|
L_08A6A66C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(116)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A680;
|
|
}
|
|
L_08A6A680:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(120)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[20])) && ctx.fpr[12] == ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A694;
|
|
}
|
|
L_08A6A694:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 496u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A6A4;
|
|
}
|
|
L_08A6A6A4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (ctx.gpr[4] == 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
goto L_08A6A6D4;
|
|
}
|
|
goto L_08A6A6C0;
|
|
L_08A6A6C0:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(617))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 32u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A6FC;
|
|
}
|
|
goto L_08A6A6D0;
|
|
}
|
|
L_08A6A6D0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
goto L_08A6A6D4;
|
|
L_08A6A6D4:
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A770;
|
|
}
|
|
goto L_08A6A6EC;
|
|
}
|
|
L_08A6A6EC:
|
|
ctx.gpr[31] = (0x08A6A6F4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A6F4u) goto L_08A6A6F4;
|
|
return;
|
|
L_08A6A6F4:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A770;
|
|
}
|
|
goto L_08A6A6FC;
|
|
}
|
|
L_08A6A6FC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A724;
|
|
}
|
|
goto L_08A6A718;
|
|
}
|
|
L_08A6A718:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(616))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 16u);
|
|
aot_mem.aot_direct_store8(ctx.gpr[16] + static_cast<std::uint32_t>(616), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08A6A724;
|
|
L_08A6A724:
|
|
ctx.gpr[31] = (0x08A6A72Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 727u, 0x08A67B3Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A72Cu) goto L_08A6A72C;
|
|
return;
|
|
L_08A6A72C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A770;
|
|
}
|
|
goto L_08A6A734;
|
|
}
|
|
L_08A6A734:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6A740u);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem) && ctx.pc == 0x08A6A740u) goto L_08A6A740;
|
|
return;
|
|
L_08A6A740:
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A754;
|
|
}
|
|
L_08A6A754:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A760;
|
|
}
|
|
L_08A6A760:
|
|
ctx.gpr[31] = (0x08A6A768u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem) && ctx.pc == 0x08A6A768u) goto L_08A6A768;
|
|
return;
|
|
L_08A6A768:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A770;
|
|
}
|
|
L_08A6A770:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[17]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[5] = (65535u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(32767));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[5] = (0u + static_cast<std::uint32_t>(-2049));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
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);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(264), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[31] = (0x08A6A7E8u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A69104;
|
|
L_08A6A7E8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A7F8;
|
|
}
|
|
L_08A6A7F8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A80C;
|
|
}
|
|
goto L_08A6A804;
|
|
}
|
|
L_08A6A804:
|
|
ctx.gpr[31] = (0x08A6A80Cu);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem) && ctx.pc == 0x08A6A80Cu) goto L_08A6A80C;
|
|
return;
|
|
L_08A6A80C:
|
|
{ std::uint32_t aot_run_words[16]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(260), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_run_words[2]);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_run_words[3]);
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_run_words[4]);
|
|
ctx.fpr[30] = std::bit_cast<float>(aot_run_words[5]);
|
|
ctx.gpr[16] = aot_run_words[6];
|
|
ctx.gpr[17] = aot_run_words[7];
|
|
ctx.gpr[18] = aot_run_words[8];
|
|
ctx.gpr[19] = aot_run_words[9];
|
|
ctx.gpr[20] = aot_run_words[10];
|
|
ctx.gpr[21] = aot_run_words[11];
|
|
ctx.gpr[22] = aot_run_words[12];
|
|
ctx.gpr[23] = aot_run_words[13];
|
|
ctx.gpr[30] = aot_run_words[14];
|
|
ctx.gpr[31] = aot_run_words[15];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(336));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A6A854:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-176));
|
|
{ const std::uint32_t aot_run_words[8]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(144), aot_run_words); }
|
|
ctx.fpr[20] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(264), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 496u);
|
|
ctx.gpr[6] = (0u | 32u);
|
|
ctx.gpr[18] = (0u + static_cast<std::uint32_t>(-16385));
|
|
{ const bool branch_taken = ctx.gpr[5] == ctx.gpr[6];
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6A8AC;
|
|
}
|
|
goto L_08A6A898;
|
|
}
|
|
L_08A6A898:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(-7080)));
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
goto L_08A6A8DC;
|
|
}
|
|
goto L_08A6A8A4;
|
|
L_08A6A8A4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A900;
|
|
}
|
|
goto L_08A6A8AC;
|
|
}
|
|
L_08A6A8AC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[5] = (65535u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(32767));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08A6A8D4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A69104;
|
|
L_08A6A8D4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6A8DC;
|
|
}
|
|
L_08A6A8DC:
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6A900;
|
|
}
|
|
goto L_08A6A8F0;
|
|
}
|
|
L_08A6A8F0:
|
|
ctx.gpr[31] = (0x08A6A8F8u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A8F8u) goto L_08A6A8F8;
|
|
return;
|
|
L_08A6A8F8:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A924;
|
|
}
|
|
goto L_08A6A900;
|
|
}
|
|
L_08A6A900:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
ctx.gpr[17] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[21] = (0u | 65535u);
|
|
if (branch_taken) {
|
|
goto L_08A6A980;
|
|
}
|
|
goto L_08A6A91C;
|
|
}
|
|
L_08A6A91C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AA30;
|
|
}
|
|
goto L_08A6A924;
|
|
}
|
|
L_08A6A924:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[31] = (0x08A6A938u);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6A938u) goto L_08A6A938;
|
|
return;
|
|
L_08A6A938:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(112));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>();
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[5] = (65535u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(32767));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08A6A978u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A69104;
|
|
L_08A6A978:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6A980;
|
|
}
|
|
L_08A6A980:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (ctx.gpr[4] == 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(8425)));
|
|
goto L_08A6A9D4;
|
|
}
|
|
goto L_08A6A99C;
|
|
L_08A6A99C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1300)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A9DC;
|
|
}
|
|
goto L_08A6A9A8;
|
|
}
|
|
L_08A6A9A8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1300)));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A9DC;
|
|
}
|
|
goto L_08A6A9BC;
|
|
}
|
|
L_08A6A9BC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1300)));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6A9DC;
|
|
}
|
|
goto L_08A6A9D0;
|
|
}
|
|
L_08A6A9D0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(8425)));
|
|
goto L_08A6A9D4;
|
|
L_08A6A9D4:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AA30;
|
|
}
|
|
goto L_08A6A9DC;
|
|
}
|
|
L_08A6A9DC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5724)));
|
|
ctx.gpr[31] = (0x08A6A9E8u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 411u, 0x08A65D34u>(ctx, &aot_mem) && ctx.pc == 0x08A6A9E8u) goto L_08A6A9E8;
|
|
return;
|
|
L_08A6A9E8:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[5] = (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[5] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A6AA0Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem) && ctx.pc == 0x08A6AA0Cu) goto L_08A6AA0C;
|
|
return;
|
|
L_08A6AA0C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5724)));
|
|
ctx.gpr[31] = (0x08A6AA18u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 411u, 0x08A65D34u>(ctx, &aot_mem) && ctx.pc == 0x08A6AA18u) goto L_08A6AA18;
|
|
return;
|
|
L_08A6AA18:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(112));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>();
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
goto L_08A6AA30;
|
|
L_08A6AA30:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08A6AA3Cu);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0022_entry, 22u, 912u, 0x0885F828u>(ctx, &aot_mem) && ctx.pc == 0x08A6AA3Cu) goto L_08A6AA3C;
|
|
return;
|
|
L_08A6AA3C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(192));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[6];
|
|
ctx.gpr[31] = (0x08A6AA54u);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[5]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6AA54u) goto L_08A6AA54;
|
|
return;
|
|
L_08A6AA54:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(200));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08A6AA6Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6AA6Cu) goto L_08A6AA6C;
|
|
return;
|
|
L_08A6AA6C:
|
|
ctx.gpr[31] = (0x08A6AA74u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 6u, 0x08860314u>(ctx, &aot_mem) && ctx.pc == 0x08A6AA74u) goto L_08A6AA74;
|
|
return;
|
|
L_08A6AA74:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492)));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[21]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AA94;
|
|
}
|
|
goto L_08A6AA84;
|
|
}
|
|
L_08A6AA84:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08A6AAA4;
|
|
}
|
|
goto L_08A6AA94;
|
|
}
|
|
L_08A6AA94:
|
|
ctx.gpr[31] = (0x08A6AA9Cu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem) && ctx.pc == 0x08A6AA9Cu) goto L_08A6AA9C;
|
|
return;
|
|
L_08A6AA9C:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
goto L_08A6AAA4;
|
|
L_08A6AAA4:
|
|
ctx.gpr[20] = (0u | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AAD0;
|
|
}
|
|
goto L_08A6AAC4;
|
|
}
|
|
L_08A6AAC4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 16384u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
goto L_08A6AAD0;
|
|
L_08A6AAD0:
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(228)));
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AB00;
|
|
}
|
|
goto L_08A6AADC;
|
|
}
|
|
L_08A6AADC:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[31] = (0x08A6AAE8u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0155_entry, 155u, 270u, 0x08A7125Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6AAE8u) goto L_08A6AAE8;
|
|
return;
|
|
L_08A6AAE8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AAF4;
|
|
}
|
|
goto L_08A6AAF0;
|
|
}
|
|
L_08A6AAF0:
|
|
ctx.gpr[20] = (0u | 1u);
|
|
goto L_08A6AAF4;
|
|
L_08A6AAF4:
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(16)));
|
|
{ const bool branch_taken = ctx.gpr[19] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AADC;
|
|
}
|
|
goto L_08A6AB00;
|
|
}
|
|
L_08A6AB00:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(236), ctx.gpr[4]);
|
|
{ const bool branch_taken = ctx.gpr[20] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AC00;
|
|
}
|
|
goto L_08A6AB14;
|
|
}
|
|
L_08A6AB14:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492)));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[21]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AB34;
|
|
}
|
|
goto L_08A6AB24;
|
|
}
|
|
L_08A6AB24:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08A6AB44;
|
|
}
|
|
goto L_08A6AB34;
|
|
}
|
|
L_08A6AB34:
|
|
ctx.gpr[31] = (0x08A6AB3Cu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 274u, 0x088954BCu>(ctx, &aot_mem) && ctx.pc == 0x08A6AB3Cu) goto L_08A6AB3C;
|
|
return;
|
|
L_08A6AB3C:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
aot_mem.aot_direct_store16(ctx.gpr[28] + static_cast<std::uint32_t>(-25492), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
goto L_08A6AB44;
|
|
L_08A6AB44:
|
|
ctx.gpr[20] = (0u | 0u);
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(228)));
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6ABC0;
|
|
}
|
|
goto L_08A6AB54;
|
|
}
|
|
L_08A6AB54:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[31] = (0x08A6AB60u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 238u, 0x08A6E6FCu>(ctx, &aot_mem) && ctx.pc == 0x08A6AB60u) goto L_08A6AB60;
|
|
return;
|
|
L_08A6AB60:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6ABB4;
|
|
}
|
|
goto L_08A6AB68;
|
|
}
|
|
L_08A6AB68:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(8425)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AB7C;
|
|
}
|
|
goto L_08A6AB74;
|
|
}
|
|
L_08A6AB74:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[20] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A6ABB4;
|
|
}
|
|
goto L_08A6AB7C;
|
|
}
|
|
L_08A6AB7C:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6AB88u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem) && ctx.pc == 0x08A6AB88u) goto L_08A6AB88;
|
|
return;
|
|
L_08A6AB88:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6AB98;
|
|
}
|
|
L_08A6AB98:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6ABA4;
|
|
}
|
|
L_08A6ABA4:
|
|
ctx.gpr[31] = (0x08A6ABACu);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem) && ctx.pc == 0x08A6ABACu) goto L_08A6ABAC;
|
|
return;
|
|
L_08A6ABAC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6ABB4;
|
|
}
|
|
L_08A6ABB4:
|
|
ctx.gpr[19] = (aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(16)));
|
|
{ const bool branch_taken = ctx.gpr[19] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AB54;
|
|
}
|
|
goto L_08A6ABC0;
|
|
}
|
|
L_08A6ABC0:
|
|
{ const bool branch_taken = ctx.gpr[20] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AC00;
|
|
}
|
|
goto L_08A6ABC8;
|
|
}
|
|
L_08A6ABC8:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6ABD4u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem) && ctx.pc == 0x08A6ABD4u) goto L_08A6ABD4;
|
|
return;
|
|
L_08A6ABD4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6ABE4;
|
|
}
|
|
L_08A6ABE4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6ABF0;
|
|
}
|
|
L_08A6ABF0:
|
|
ctx.gpr[31] = (0x08A6ABF8u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem) && ctx.pc == 0x08A6ABF8u) goto L_08A6ABF8;
|
|
return;
|
|
L_08A6ABF8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6AC00;
|
|
}
|
|
L_08A6AC00:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[19] = (65535u << 16u);
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(32767));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[19]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 22u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(264), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(-7080)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6ACD4;
|
|
}
|
|
goto L_08A6AC5C;
|
|
}
|
|
L_08A6AC5C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6ACD4;
|
|
}
|
|
goto L_08A6AC74;
|
|
}
|
|
L_08A6AC74:
|
|
ctx.gpr[31] = (0x08A6AC7Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6AC7Cu) goto L_08A6AC7C;
|
|
return;
|
|
L_08A6AC7C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6ACD4;
|
|
}
|
|
goto L_08A6AC84;
|
|
}
|
|
L_08A6AC84:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[31] = (0x08A6AC90u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0023_entry, 23u, 7u, 0x08860358u>(ctx, &aot_mem) && ctx.pc == 0x08A6AC90u) goto L_08A6AC90;
|
|
return;
|
|
L_08A6AC90:
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[31] = (0x08A6ACA4u);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 537u, 0x08A6669Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6ACA4u) goto L_08A6ACA4;
|
|
return;
|
|
L_08A6ACA4:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(112));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 1u, 3u>();
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[18]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[19]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32768u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[16] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
goto L_08A6ACD4;
|
|
L_08A6ACD4:
|
|
ctx.gpr[31] = (0x08A6ACDCu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A69104;
|
|
L_08A6ACDC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6ACEC;
|
|
}
|
|
L_08A6ACEC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AD00;
|
|
}
|
|
goto L_08A6ACF8;
|
|
}
|
|
L_08A6ACF8:
|
|
ctx.gpr[31] = (0x08A6AD00u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0117_entry, 117u, 129u, 0x089D89E0u>(ctx, &aot_mem) && ctx.pc == 0x08A6AD00u) goto L_08A6AD00;
|
|
return;
|
|
L_08A6AD00:
|
|
{ std::uint32_t aot_run_words[8]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(144), aot_run_words);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.gpr[16] = aot_run_words[1];
|
|
ctx.gpr[17] = aot_run_words[2];
|
|
ctx.gpr[18] = aot_run_words[3];
|
|
ctx.gpr[19] = aot_run_words[4];
|
|
ctx.gpr[20] = aot_run_words[5];
|
|
ctx.gpr[21] = aot_run_words[6];
|
|
ctx.gpr[31] = aot_run_words[7];
|
|
}
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08A6AD28:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-2096));
|
|
{ const std::uint32_t aot_run_words[14]{std::bit_cast<std::uint32_t>(ctx.fpr[20]), std::bit_cast<std::uint32_t>(ctx.fpr[22]), std::bit_cast<std::uint32_t>(ctx.fpr[24]), std::bit_cast<std::uint32_t>(ctx.fpr[26]), ctx.gpr[16], ctx.gpr[17], ctx.gpr[18], ctx.gpr[19], ctx.gpr[20], ctx.gpr[21], ctx.gpr[22], ctx.gpr[23], ctx.gpr[30], ctx.gpr[31]};
|
|
aot_mem.aot_direct_store32_block(ctx.gpr[29] + static_cast<std::uint32_t>(2036), aot_run_words); }
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[21] = (0u | 0u);
|
|
ctx.gpr[22] = (0u | 0u);
|
|
ctx.gpr[23] = (0u | 0u);
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[9] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[9] = (ctx.gpr[9] & 14u);
|
|
ctx.gpr[9] = (ctx.gpr[9] ^ 6u);
|
|
ctx.gpr[9] = (ctx.gpr[9] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[9] = (ctx.gpr[9] & 255u);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[18] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[19] = (ctx.gpr[7] | 0u);
|
|
ctx.gpr[20] = (ctx.gpr[8] | 0u);
|
|
if (ctx.gpr[9] != 0u) {
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
goto L_08A6ADA4;
|
|
}
|
|
goto L_08A6ADA4;
|
|
L_08A6ADA4:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 14u);
|
|
ctx.gpr[6] = (ctx.gpr[6] ^ 6u);
|
|
ctx.gpr[6] = (ctx.gpr[6] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
if (ctx.gpr[6] != 0u) {
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
goto L_08A6ADC4;
|
|
}
|
|
goto L_08A6ADC4;
|
|
L_08A6ADC4:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(8428)));
|
|
{ const bool branch_taken = ctx.gpr[16] == ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6ADFC;
|
|
}
|
|
goto L_08A6ADD0;
|
|
}
|
|
L_08A6ADD0:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(8428)));
|
|
{ const bool branch_taken = ctx.gpr[17] == ctx.gpr[6];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6ADFC;
|
|
}
|
|
goto L_08A6ADDC;
|
|
}
|
|
L_08A6ADDC:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 8192u);
|
|
ctx.gpr[6] = (0u < ctx.gpr[6] ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AE04;
|
|
}
|
|
goto L_08A6ADF4;
|
|
}
|
|
L_08A6ADF4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AE28;
|
|
}
|
|
goto L_08A6ADFC;
|
|
}
|
|
L_08A6ADFC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6AE04;
|
|
}
|
|
L_08A6AE04:
|
|
ctx.gpr[6] = (16672u << 16u);
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[6]);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AE4C;
|
|
}
|
|
goto L_08A6AE14;
|
|
}
|
|
L_08A6AE14:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(1300)));
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AE4C;
|
|
}
|
|
goto L_08A6AE20;
|
|
}
|
|
L_08A6AE20:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[22] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A6AE4C;
|
|
}
|
|
goto L_08A6AE28;
|
|
}
|
|
L_08A6AE28:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AE44;
|
|
}
|
|
goto L_08A6AE38;
|
|
}
|
|
L_08A6AE38:
|
|
ctx.gpr[5] = (16384u << 16u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08A6AE4C;
|
|
}
|
|
goto L_08A6AE44;
|
|
}
|
|
L_08A6AE44:
|
|
ctx.gpr[5] = (16256u << 16u);
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[5]);
|
|
goto L_08A6AE4C;
|
|
L_08A6AE4C:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 8192u);
|
|
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_08A6AF54;
|
|
}
|
|
goto L_08A6AE64;
|
|
}
|
|
L_08A6AE64:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF1C;
|
|
}
|
|
goto L_08A6AE6C;
|
|
}
|
|
L_08A6AE6C:
|
|
ctx.gpr[31] = (0x08A6AE74u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0066_entry, 66u, 315u, 0x0890D44Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6AE74u) goto L_08A6AE74;
|
|
return;
|
|
L_08A6AE74:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF1C;
|
|
}
|
|
goto L_08A6AE7C;
|
|
}
|
|
L_08A6AE7C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF1C;
|
|
}
|
|
goto L_08A6AE98;
|
|
}
|
|
L_08A6AE98:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 496u);
|
|
ctx.gpr[5] = (0u | 64u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AED0;
|
|
}
|
|
goto L_08A6AEAC;
|
|
}
|
|
L_08A6AEAC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 496u);
|
|
ctx.gpr[5] = (0u | 80u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AED0;
|
|
}
|
|
goto L_08A6AEC0;
|
|
}
|
|
L_08A6AEC0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF1C;
|
|
}
|
|
goto L_08A6AED0;
|
|
}
|
|
L_08A6AED0:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[4] = (17658u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[22] = ctx.fpr[22] - ctx.fpr[13];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A6AEF4;
|
|
}
|
|
goto L_08A6AEF4;
|
|
L_08A6AEF4:
|
|
ctx.gpr[4] = (14673u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 46871u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[22]; 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; }
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[22] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[22];
|
|
ctx.fpr[22] = ctx.fpr[22] / ctx.fpr[12];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF24;
|
|
}
|
|
goto L_08A6AF1C;
|
|
}
|
|
L_08A6AF1C:
|
|
ctx.gpr[4] = (16672u << 16u);
|
|
ctx.fpr[22] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08A6AF24;
|
|
L_08A6AF24:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF78;
|
|
}
|
|
goto L_08A6AF40;
|
|
}
|
|
L_08A6AF40:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1300)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[17];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF78;
|
|
}
|
|
goto L_08A6AF4C;
|
|
}
|
|
L_08A6AF4C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A6AF78;
|
|
}
|
|
goto L_08A6AF54;
|
|
}
|
|
L_08A6AF54:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AF70;
|
|
}
|
|
goto L_08A6AF64;
|
|
}
|
|
L_08A6AF64:
|
|
ctx.gpr[4] = (16384u << 16u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[22] = std::bit_cast<float>(ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A6AF78;
|
|
}
|
|
goto L_08A6AF70;
|
|
}
|
|
L_08A6AF70:
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[22] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08A6AF78;
|
|
L_08A6AF78:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AFA0;
|
|
}
|
|
goto L_08A6AF88;
|
|
}
|
|
L_08A6AF88:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6AFA0;
|
|
}
|
|
goto L_08A6AF98;
|
|
}
|
|
L_08A6AF98:
|
|
ctx.gpr[23] = (0u | 1u);
|
|
ctx.gpr[21] = (0u | 0u);
|
|
goto L_08A6AFA0;
|
|
L_08A6AFA0:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(16);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(32);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(192));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<4u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(16);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<5u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(32);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<6u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(192));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<7u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vtfm_ct<0u, 36u, 7u, 3u, 3u>();
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (ctx.gpr[4] == 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
goto L_08A6B034;
|
|
}
|
|
goto L_08A6AFFC;
|
|
L_08A6AFFC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (ctx.gpr[4] == 0u) {
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
goto L_08A6B034;
|
|
}
|
|
goto L_08A6B018;
|
|
L_08A6B018:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(483))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6B080;
|
|
}
|
|
goto L_08A6B030;
|
|
}
|
|
L_08A6B030:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
goto L_08A6B034;
|
|
L_08A6B034:
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B088;
|
|
}
|
|
goto L_08A6B04C;
|
|
}
|
|
L_08A6B04C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B088;
|
|
}
|
|
goto L_08A6B068;
|
|
}
|
|
L_08A6B068:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[16] + static_cast<std::uint32_t>(483))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6B088;
|
|
}
|
|
goto L_08A6B080;
|
|
}
|
|
L_08A6B080:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[18] + static_cast<std::uint32_t>(24), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A6B088;
|
|
L_08A6B088:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2048u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B0A8;
|
|
}
|
|
goto L_08A6B098;
|
|
}
|
|
L_08A6B098:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2048u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A6B0B0;
|
|
}
|
|
goto L_08A6B0A8;
|
|
}
|
|
L_08A6B0A8:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
goto L_08A6B0B0;
|
|
L_08A6B0B0:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BD44;
|
|
}
|
|
goto L_08A6B0B8;
|
|
}
|
|
L_08A6B0B8:
|
|
{ const bool branch_taken = ctx.gpr[23] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BD44;
|
|
}
|
|
goto L_08A6B0C0;
|
|
}
|
|
L_08A6B0C0:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8192u);
|
|
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_08A6B520;
|
|
}
|
|
goto L_08A6B0D8;
|
|
}
|
|
L_08A6B0D8:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(144), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(152), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(144));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[24] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B518;
|
|
}
|
|
goto L_08A6B120;
|
|
}
|
|
L_08A6B120:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B170;
|
|
}
|
|
goto L_08A6B13C;
|
|
}
|
|
L_08A6B13C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B438;
|
|
}
|
|
goto L_08A6B14C;
|
|
}
|
|
L_08A6B14C:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-2049));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 11u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A6B438;
|
|
}
|
|
goto L_08A6B170;
|
|
}
|
|
L_08A6B170:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(208)));
|
|
{ const float fs = ctx.fpr[24]; 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; }
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(456)));
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B2FC;
|
|
}
|
|
goto L_08A6B1A0;
|
|
}
|
|
L_08A6B1A0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(456)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B2FC;
|
|
}
|
|
goto L_08A6B1B8;
|
|
}
|
|
L_08A6B1B8:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[4] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
|
|
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[6] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B1DC;
|
|
}
|
|
goto L_08A6B1CC;
|
|
}
|
|
L_08A6B1CC:
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
goto L_08A6B1DC;
|
|
L_08A6B1DC:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load8(ctx.gpr[6] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[7] = (0u | 1u);
|
|
if (ctx.gpr[5] == ctx.gpr[7]) {
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6B204;
|
|
}
|
|
goto L_08A6B1EC;
|
|
L_08A6B1EC:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load8(ctx.gpr[6] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[7] = (0u | 3u);
|
|
if (ctx.gpr[5] == ctx.gpr[7]) {
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6B204;
|
|
}
|
|
goto L_08A6B1FC;
|
|
L_08A6B1FC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B228;
|
|
}
|
|
goto L_08A6B204;
|
|
}
|
|
L_08A6B204:
|
|
ctx.gpr[7] = (ctx.gpr[7] & 8192u);
|
|
{ const bool branch_taken = ctx.gpr[7] != 0u;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B220;
|
|
}
|
|
goto L_08A6B210;
|
|
}
|
|
L_08A6B210:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(58)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 16384u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A6B228;
|
|
}
|
|
goto L_08A6B220;
|
|
}
|
|
L_08A6B220:
|
|
ctx.gpr[5] = (0u | 1u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
goto L_08A6B228;
|
|
L_08A6B228:
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B270;
|
|
}
|
|
goto L_08A6B230;
|
|
}
|
|
L_08A6B230:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (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[5] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(176), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(180), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(184), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
ctx.gpr[31] = (0x08A6B268u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem) && ctx.pc == 0x08A6B268u) goto L_08A6B268;
|
|
return;
|
|
L_08A6B268:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B438;
|
|
}
|
|
goto L_08A6B270;
|
|
}
|
|
L_08A6B270:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B438;
|
|
}
|
|
goto L_08A6B280;
|
|
}
|
|
L_08A6B280:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 1u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[7] = (0u + static_cast<std::uint32_t>(-2049));
|
|
ctx.gpr[6] = (ctx.gpr[6] & ctx.gpr[7]);
|
|
ctx.gpr[5] = (ctx.gpr[5] << 11u);
|
|
ctx.gpr[5] = (ctx.gpr[6] | ctx.gpr[5]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(72), ctx.gpr[5]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(7800)));
|
|
ctx.gpr[5] = (ctx.gpr[4] << 8u);
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 5u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[5] = (2238u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-6992));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(316)));
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(2));
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(316), ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x08A6B2D8u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08A6B2D8u) goto L_08A6B2D8;
|
|
return;
|
|
L_08A6B2D8:
|
|
ctx.gpr[4] = (ctx.gpr[2] & 65535u);
|
|
ctx.gpr[5] = (0u | 30u);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(ctx.gpr[4]); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[5]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
ctx.gpr[4] = (ctx.hi);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7904)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(30));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7904), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A6B438;
|
|
}
|
|
goto L_08A6B2FC;
|
|
}
|
|
L_08A6B2FC:
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[4] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
|
|
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[6] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B320;
|
|
}
|
|
goto L_08A6B310;
|
|
}
|
|
L_08A6B310:
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
goto L_08A6B320;
|
|
L_08A6B320:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load8(ctx.gpr[6] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[7] = (0u | 1u);
|
|
if (ctx.gpr[5] == ctx.gpr[7]) {
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6B348;
|
|
}
|
|
goto L_08A6B330;
|
|
L_08A6B330:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load8(ctx.gpr[6] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[7] = (0u | 3u);
|
|
if (ctx.gpr[5] == ctx.gpr[7]) {
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6B348;
|
|
}
|
|
goto L_08A6B340;
|
|
L_08A6B340:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B36C;
|
|
}
|
|
goto L_08A6B348;
|
|
}
|
|
L_08A6B348:
|
|
ctx.gpr[7] = (ctx.gpr[7] & 8192u);
|
|
{ const bool branch_taken = ctx.gpr[7] != 0u;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B364;
|
|
}
|
|
goto L_08A6B354;
|
|
}
|
|
L_08A6B354:
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(ctx.gpr[6] + static_cast<std::uint32_t>(58)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 16384u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A6B36C;
|
|
}
|
|
goto L_08A6B364;
|
|
}
|
|
L_08A6B364:
|
|
ctx.gpr[5] = (0u | 1u);
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
goto L_08A6B36C;
|
|
L_08A6B36C:
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B37C;
|
|
}
|
|
goto L_08A6B374;
|
|
}
|
|
L_08A6B374:
|
|
ctx.gpr[31] = (0x08A6B37Cu);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 578u, 0x08827C4Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6B37Cu) goto L_08A6B37C;
|
|
return;
|
|
L_08A6B37C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(224)));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(228), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(232), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(224));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(208));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(192));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>();
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(240));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B430;
|
|
}
|
|
goto L_08A6B40C;
|
|
}
|
|
L_08A6B40C:
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(240));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(256));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A6B430u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem) && ctx.pc == 0x08A6B430u) goto L_08A6B430;
|
|
return;
|
|
L_08A6B430:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6B438;
|
|
}
|
|
L_08A6B438:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B518;
|
|
}
|
|
goto L_08A6B448;
|
|
}
|
|
L_08A6B448:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(208)));
|
|
{ const float fs = ctx.fpr[24]; 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; }
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B510;
|
|
}
|
|
goto L_08A6B470;
|
|
}
|
|
L_08A6B470:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(224)));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(336), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(340), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(344), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(336));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(320));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(304));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
ctx.execute_vfpu_unary_ct<28u, 28u, 1u, 16u>();
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(288));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[5] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 0u>();
|
|
ctx.gpr[5] = (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[5] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A6B510u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem) && ctx.pc == 0x08A6B510u) goto L_08A6B510;
|
|
return;
|
|
L_08A6B510:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6B518;
|
|
}
|
|
L_08A6B518:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6B520;
|
|
}
|
|
L_08A6B520:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(368), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(372), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(376), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(368));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(352));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[29] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[31] = (0x08A6B56Cu);
|
|
ctx.gpr[6] = (ctx.gpr[29] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 639u, 0x08A67154u>(ctx, &aot_mem) && ctx.pc == 0x08A6B56Cu) goto L_08A6B56C;
|
|
return;
|
|
L_08A6B56C:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(368), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(372), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(376), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(368));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6B5BC;
|
|
}
|
|
L_08A6B5BC:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B664;
|
|
}
|
|
goto L_08A6B5D8;
|
|
}
|
|
L_08A6B5D8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6B5E8;
|
|
}
|
|
L_08A6B5E8:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-2049));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 11u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[17] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(7800)));
|
|
ctx.gpr[5] = (ctx.gpr[4] << 8u);
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 5u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[5] = (2238u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(-6992));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(316)));
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(2));
|
|
aot_mem.aot_direct_store32(ctx.gpr[4] + static_cast<std::uint32_t>(316), ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x08A6B640u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08A6B640u) goto L_08A6B640;
|
|
return;
|
|
L_08A6B640:
|
|
ctx.gpr[4] = (ctx.gpr[2] & 65535u);
|
|
ctx.gpr[5] = (0u | 30u);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(ctx.gpr[4]); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[5]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
ctx.gpr[4] = (ctx.hi);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7904)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(30));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[28] + static_cast<std::uint32_t>(7904), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6B664;
|
|
}
|
|
L_08A6B664:
|
|
ctx.gpr[30] = (ctx.gpr[17] | 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[14] / ctx.fpr[13];
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vec3_ct<0u, 0u, 1u, 3u, 1u>();
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(416), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(420), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(424), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
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);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat_ct<0u, 1u, 2u, 3u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(384));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(212)));
|
|
ctx.fpr[15] = ctx.fpr[15] / ctx.fpr[16];
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[15];
|
|
ctx.fpr[13] = ctx.fpr[14] / ctx.fpr[13];
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6B708;
|
|
}
|
|
goto L_08A6B6F8;
|
|
}
|
|
L_08A6B6F8:
|
|
{ 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; }
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08A6B728;
|
|
}
|
|
goto L_08A6B708;
|
|
}
|
|
L_08A6B708:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(224)));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[15];
|
|
{ const float fs = ctx.fpr[14]; 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[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.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A6B728;
|
|
L_08A6B728:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[30] + static_cast<std::uint32_t>(473)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B82C;
|
|
}
|
|
goto L_08A6B73C;
|
|
}
|
|
L_08A6B73C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (16800u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B82C;
|
|
}
|
|
goto L_08A6B758;
|
|
}
|
|
L_08A6B758:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[31] = (0x08A6B768u);
|
|
ctx.gpr[5] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0009_entry, 9u, 482u, 0x0882BFC8u>(ctx, &aot_mem) && ctx.pc == 0x08A6B768u) goto L_08A6B768;
|
|
return;
|
|
L_08A6B768:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 512u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B82C;
|
|
}
|
|
goto L_08A6B778;
|
|
}
|
|
L_08A6B778:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B824;
|
|
}
|
|
goto L_08A6B788;
|
|
}
|
|
L_08A6B788:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(464), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(468), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(472), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (15948u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(464));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(448));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(432));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(64), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A6B804u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem) && ctx.pc == 0x08A6B804u) goto L_08A6B804;
|
|
return;
|
|
L_08A6B804:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(64), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A6B824u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem) && ctx.pc == 0x08A6B824u) goto L_08A6B824;
|
|
return;
|
|
L_08A6B824:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6B82C;
|
|
}
|
|
L_08A6B82C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(456)));
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
goto L_08A6B860;
|
|
}
|
|
goto L_08A6B844;
|
|
L_08A6B844:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(456)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(236)));
|
|
goto L_08A6B878;
|
|
}
|
|
goto L_08A6B85C;
|
|
L_08A6B85C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
goto L_08A6B860;
|
|
L_08A6B860:
|
|
ctx.gpr[4] = (ctx.gpr[4] & 16384u);
|
|
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_08A6BB5C;
|
|
}
|
|
goto L_08A6B874;
|
|
}
|
|
L_08A6B874:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(236)));
|
|
goto L_08A6B878;
|
|
L_08A6B878:
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BB5C;
|
|
}
|
|
goto L_08A6B884;
|
|
}
|
|
L_08A6B884:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[6]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B8A8;
|
|
}
|
|
goto L_08A6B898;
|
|
}
|
|
L_08A6B898:
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
goto L_08A6B8A8;
|
|
L_08A6B8A8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[5] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (ctx.gpr[4] == ctx.gpr[6]) {
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6B8D0;
|
|
}
|
|
goto L_08A6B8B8;
|
|
L_08A6B8B8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[5] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[6] = (0u | 3u);
|
|
if (ctx.gpr[4] == ctx.gpr[6]) {
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6B8D0;
|
|
}
|
|
goto L_08A6B8C8;
|
|
L_08A6B8C8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B8F4;
|
|
}
|
|
goto L_08A6B8D0;
|
|
}
|
|
L_08A6B8D0:
|
|
ctx.gpr[6] = (ctx.gpr[6] & 8192u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6B8EC;
|
|
}
|
|
goto L_08A6B8DC;
|
|
}
|
|
L_08A6B8DC:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(58)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 16384u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A6B8F4;
|
|
}
|
|
goto L_08A6B8EC;
|
|
}
|
|
L_08A6B8EC:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
goto L_08A6B8F4;
|
|
L_08A6B8F4:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B940;
|
|
}
|
|
goto L_08A6B8FC;
|
|
}
|
|
L_08A6B8FC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(480));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(496), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(500), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(8)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(504), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(496));
|
|
ctx.gpr[4] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[31] = (0x08A6B938u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0009_entry, 9u, 186u, 0x08829F60u>(ctx, &aot_mem) && ctx.pc == 0x08A6B938u) goto L_08A6B938;
|
|
return;
|
|
L_08A6B938:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B970;
|
|
}
|
|
goto L_08A6B940;
|
|
}
|
|
L_08A6B940:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6B970;
|
|
}
|
|
goto L_08A6B950;
|
|
}
|
|
L_08A6B950:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[30] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-2049));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 11u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | ctx.gpr[4]);
|
|
aot_mem.aot_direct_store32(ctx.gpr[30] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
goto L_08A6B970;
|
|
L_08A6B970:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(76)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BA20;
|
|
}
|
|
goto L_08A6B984;
|
|
}
|
|
L_08A6B984:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 64u);
|
|
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_08A6BA20;
|
|
}
|
|
goto L_08A6B99C;
|
|
}
|
|
L_08A6B99C:
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(512));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A6B9B4u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(520)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 341u, 0x08B61B60u>(ctx, &aot_mem) && ctx.pc == 0x08A6B9B4u) goto L_08A6B9B4;
|
|
return;
|
|
L_08A6B9B4:
|
|
ctx.gpr[7] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5692)));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-5696)));
|
|
ctx.gpr[5] = (ctx.gpr[3] | 0u);
|
|
ctx.gpr[31] = (0x08A6B9C8u);
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 395u, 0x08B61F5Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6B9C8u) goto L_08A6B9C8;
|
|
return;
|
|
L_08A6B9C8:
|
|
ctx.gpr[5] = (ctx.gpr[3] | 0u);
|
|
ctx.gpr[31] = (0x08A6B9D4u);
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 515u, 0x08B627F0u>(ctx, &aot_mem) && ctx.pc == 0x08A6B9D4u) goto L_08A6B9D4;
|
|
return;
|
|
L_08A6B9D4:
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(520), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[4] = (0u | 5u);
|
|
ctx.gpr[5] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[31] = (0x08A6B9E8u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem) && ctx.pc == 0x08A6B9E8u) goto L_08A6B9E8;
|
|
return;
|
|
L_08A6B9E8:
|
|
ctx.gpr[4] = (0u | 6u);
|
|
ctx.gpr[5] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[31] = (0x08A6B9F8u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0079_entry, 79u, 280u, 0x08941D04u>(ctx, &aot_mem) && ctx.pc == 0x08A6B9F8u) goto L_08A6B9F8;
|
|
return;
|
|
L_08A6B9F8:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-65));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | ctx.gpr[4]);
|
|
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(482), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6BA20;
|
|
}
|
|
L_08A6BA20:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(42)));
|
|
if (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_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
|
|
goto L_08A6BA4C;
|
|
}
|
|
goto L_08A6BA34;
|
|
L_08A6BA34:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(44)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BAB8;
|
|
}
|
|
goto L_08A6BA48;
|
|
}
|
|
L_08A6BA48:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
|
|
goto L_08A6BA4C;
|
|
L_08A6BA4C:
|
|
ctx.gpr[4] = (ctx.gpr[4] & 64u);
|
|
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_08A6BAB8;
|
|
}
|
|
goto L_08A6BA60;
|
|
}
|
|
L_08A6BA60:
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[30] = (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[30] + static_cast<std::uint32_t>(0);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[31] = (0x08A6BA78u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08A6BA78u) goto L_08A6BA78;
|
|
return;
|
|
L_08A6BA78:
|
|
ctx.gpr[4] = (ctx.gpr[2] & 65535u);
|
|
ctx.gpr[5] = (0u | 100u);
|
|
{ const std::int32_t dividend = static_cast<std::int32_t>(ctx.gpr[4]); const std::int32_t divisor = static_cast<std::int32_t>(ctx.gpr[5]); if (divisor == 0) { ctx.lo = dividend >= 0 ? 0xFFFFFFFFu : 1u; ctx.hi = static_cast<std::uint32_t>(dividend); } else if (dividend == static_cast<std::int32_t>(0x80000000u) && divisor == -1) { ctx.lo = 0x80000000u; ctx.hi = 0u; } else { ctx.lo = static_cast<std::uint32_t>(dividend / divisor); ctx.hi = static_cast<std::uint32_t>(dividend % divisor); } }
|
|
ctx.gpr[5] = (ctx.hi);
|
|
ctx.gpr[31] = (0x08A6BA90u);
|
|
ctx.gpr[4] = (ctx.gpr[30] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0059_entry, 59u, 682u, 0x088F36B8u>(ctx, &aot_mem) && ctx.pc == 0x08A6BA90u) goto L_08A6BA90;
|
|
return;
|
|
L_08A6BA90:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-65));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | ctx.gpr[4]);
|
|
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(482), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6BAB8;
|
|
}
|
|
L_08A6BAB8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 8u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6BAD4;
|
|
}
|
|
L_08A6BAD4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08A6BAECu);
|
|
ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08A6BAECu) goto L_08A6BAEC;
|
|
return;
|
|
L_08A6BAEC:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6BAF4;
|
|
}
|
|
L_08A6BAF4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[17] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(138)));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BB28;
|
|
}
|
|
goto L_08A6BB08;
|
|
}
|
|
L_08A6BB08:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(190)));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BB28;
|
|
}
|
|
goto L_08A6BB18;
|
|
}
|
|
L_08A6BB18:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(192)));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6BB30;
|
|
}
|
|
goto L_08A6BB28;
|
|
}
|
|
L_08A6BB28:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A6BB30;
|
|
}
|
|
goto L_08A6BB30;
|
|
}
|
|
L_08A6BB30:
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6BB38;
|
|
}
|
|
L_08A6BB38:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_direct_load8(ctx.gpr[17] + static_cast<std::uint32_t>(482))))));
|
|
ctx.gpr[6] = (0u + static_cast<std::uint32_t>(-65));
|
|
ctx.gpr[5] = (ctx.gpr[5] & ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 6u);
|
|
ctx.gpr[4] = (ctx.gpr[5] | ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_direct_store8(ctx.gpr[17] + static_cast<std::uint32_t>(482), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08A6BCEC;
|
|
}
|
|
goto L_08A6BB5C;
|
|
}
|
|
L_08A6BB5C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_direct_load16(ctx.gpr[30] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7656)));
|
|
ctx.gpr[6] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[6]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6BB80;
|
|
}
|
|
goto L_08A6BB70;
|
|
}
|
|
L_08A6BB70:
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
goto L_08A6BB80;
|
|
L_08A6BB80:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[5] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[6] = (0u | 1u);
|
|
if (ctx.gpr[4] == ctx.gpr[6]) {
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6BBA8;
|
|
}
|
|
goto L_08A6BB90;
|
|
L_08A6BB90:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[5] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[6] = (0u | 3u);
|
|
if (ctx.gpr[4] == ctx.gpr[6]) {
|
|
ctx.gpr[6] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(58)));
|
|
goto L_08A6BBA8;
|
|
}
|
|
goto L_08A6BBA0;
|
|
L_08A6BBA0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6BBCC;
|
|
}
|
|
goto L_08A6BBA8;
|
|
}
|
|
L_08A6BBA8:
|
|
ctx.gpr[6] = (ctx.gpr[6] & 8192u);
|
|
{ const bool branch_taken = ctx.gpr[6] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6BBC4;
|
|
}
|
|
goto L_08A6BBB4;
|
|
}
|
|
L_08A6BBB4:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load16(ctx.gpr[5] + static_cast<std::uint32_t>(58)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 16384u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A6BBCC;
|
|
}
|
|
goto L_08A6BBC4;
|
|
}
|
|
L_08A6BBC4:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
goto L_08A6BBCC;
|
|
L_08A6BBCC:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BBE0;
|
|
}
|
|
goto L_08A6BBD4;
|
|
}
|
|
L_08A6BBD4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (0x08A6BBE0u);
|
|
ctx.gpr[4] = (ctx.gpr[30] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0008_entry, 8u, 578u, 0x08827C4Cu>(ctx, &aot_mem) && ctx.pc == 0x08A6BBE0u) goto L_08A6BBE0;
|
|
return;
|
|
L_08A6BBE0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(560), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(564), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(568), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(560));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(544));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BC78;
|
|
}
|
|
goto L_08A6BC40;
|
|
}
|
|
L_08A6BC40:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (16179u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 13107u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BC78;
|
|
}
|
|
goto L_08A6BC60;
|
|
}
|
|
L_08A6BC60:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (16025u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08A6BC78;
|
|
L_08A6BC78:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCE4;
|
|
}
|
|
goto L_08A6BC88;
|
|
}
|
|
L_08A6BC88:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(64), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A6BC9Cu);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem) && ctx.pc == 0x08A6BC9Cu) goto L_08A6BC9C;
|
|
return;
|
|
L_08A6BC9C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 4u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCC4;
|
|
}
|
|
goto L_08A6BCB8;
|
|
}
|
|
L_08A6BCB8:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load8(ctx.gpr[28] + static_cast<std::uint32_t>(8421)));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BCE4;
|
|
}
|
|
goto L_08A6BCC4;
|
|
}
|
|
L_08A6BCC4:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(64), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(0), aot_run_words);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A6BCE4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 611u, 0x08A66E08u>(ctx, &aot_mem) && ctx.pc == 0x08A6BCE4u) goto L_08A6BCE4;
|
|
return;
|
|
L_08A6BCE4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6BCEC;
|
|
}
|
|
L_08A6BCEC:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2048u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08A6BD0C;
|
|
}
|
|
goto L_08A6BCFC;
|
|
}
|
|
L_08A6BCFC:
|
|
ctx.gpr[5] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2048u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08A6BD14;
|
|
}
|
|
goto L_08A6BD0C;
|
|
}
|
|
L_08A6BD0C:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
goto L_08A6BD14;
|
|
L_08A6BD14:
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BD3C;
|
|
}
|
|
goto L_08A6BD1C;
|
|
}
|
|
L_08A6BD1C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BD44;
|
|
}
|
|
goto L_08A6BD2C;
|
|
}
|
|
L_08A6BD2C:
|
|
ctx.gpr[31] = (0x08A6BD34u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 463u, 0x08A66048u>(ctx, &aot_mem) && ctx.pc == 0x08A6BD34u) goto L_08A6BD34;
|
|
return;
|
|
L_08A6BD34:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BD44;
|
|
}
|
|
goto L_08A6BD3C;
|
|
}
|
|
L_08A6BD3C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6BD44;
|
|
}
|
|
L_08A6BD44:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8192u);
|
|
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_08A6BFF4;
|
|
}
|
|
goto L_08A6BD5C;
|
|
}
|
|
L_08A6BD5C:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8192u);
|
|
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_08A6BFF4;
|
|
}
|
|
goto L_08A6BD74;
|
|
}
|
|
L_08A6BD74:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(576), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(580), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(584), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(576));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(576), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(580), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(584), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (ctx.gpr[17] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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[26] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(208)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(208)));
|
|
ctx.gpr[21] = (0u | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] ^ 6u);
|
|
ctx.gpr[4] = (ctx.gpr[4] < static_cast<std::uint32_t>(1) ? 1u : 0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BE38;
|
|
}
|
|
goto L_08A6BE00;
|
|
}
|
|
L_08A6BE00:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(2228)));
|
|
ctx.gpr[5] = (0u | 11u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BE38;
|
|
}
|
|
goto L_08A6BE10;
|
|
}
|
|
L_08A6BE10:
|
|
ctx.gpr[4] = (16384u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ 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[12]; const float ft = ctx.fpr[14]; 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; }
|
|
{ const float fs = ctx.fpr[24]; const float ft = ctx.fpr[26]; 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; }
|
|
ctx.fpr[22] = ctx.fpr[15] + ctx.fpr[16];
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[24];
|
|
ctx.fpr[22] = ctx.fpr[22] / ctx.fpr[12];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08A6BE58;
|
|
}
|
|
goto L_08A6BE38;
|
|
}
|
|
L_08A6BE38:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BE54;
|
|
}
|
|
goto L_08A6BE4C;
|
|
}
|
|
L_08A6BE4C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (branch_taken) {
|
|
goto L_08A6BE58;
|
|
}
|
|
goto L_08A6BE54;
|
|
}
|
|
L_08A6BE54:
|
|
ctx.fpr[22] = std::bit_cast<float>(0u);
|
|
goto L_08A6BE58;
|
|
L_08A6BE58:
|
|
ctx.fpr[12] = ctx.fpr[14] - ctx.fpr[22];
|
|
ctx.fpr[15] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BFEC;
|
|
}
|
|
goto L_08A6BE70;
|
|
}
|
|
L_08A6BE70:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(224)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(224)));
|
|
ctx.fpr[20] = ctx.fpr[12] + ctx.fpr[15];
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6BEA8;
|
|
}
|
|
goto L_08A6BEA0;
|
|
}
|
|
L_08A6BEA0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
if (branch_taken) {
|
|
goto L_08A6BEB4;
|
|
}
|
|
goto L_08A6BEA8;
|
|
}
|
|
L_08A6BEA8:
|
|
ctx.fpr[12] = ctx.fpr[22] - ctx.fpr[14];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[20]; 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[12] = ctx.fpr[12] + ctx.fpr[22];
|
|
goto L_08A6BEB4;
|
|
L_08A6BEB4:
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[14];
|
|
{ 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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(608), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(612), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(616), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(608));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BF24;
|
|
}
|
|
goto L_08A6BF10;
|
|
}
|
|
L_08A6BF10:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(64), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A6BF24u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem) && ctx.pc == 0x08A6BF24u) goto L_08A6BF24;
|
|
return;
|
|
L_08A6BF24:
|
|
{ const bool branch_taken = ctx.gpr[21] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BFE4;
|
|
}
|
|
goto L_08A6BF2C;
|
|
}
|
|
L_08A6BF2C:
|
|
ctx.fpr[12] = ctx.fpr[26] - ctx.fpr[22];
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BFE4;
|
|
}
|
|
goto L_08A6BF44;
|
|
}
|
|
L_08A6BF44:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
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_08A6BF64;
|
|
}
|
|
goto L_08A6BF5C;
|
|
}
|
|
L_08A6BF5C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BF70;
|
|
}
|
|
goto L_08A6BF64;
|
|
}
|
|
L_08A6BF64:
|
|
ctx.fpr[12] = ctx.fpr[22] - ctx.fpr[26];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[20]; 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[22] = ctx.fpr[12] + ctx.fpr[22];
|
|
goto L_08A6BF70;
|
|
L_08A6BF70:
|
|
ctx.fpr[12] = ctx.fpr[26] - ctx.fpr[22];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[24]; 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; }
|
|
aot_mem.aot_direct_store32(ctx.gpr[20] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(16)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(640), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(20)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(644), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_direct_load32(ctx.gpr[18] + static_cast<std::uint32_t>(24)));
|
|
aot_mem.aot_direct_store32(ctx.gpr[29] + static_cast<std::uint32_t>(648), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(640));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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>(624));
|
|
{ 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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
std::uint32_t vfpu_words[4]{};
|
|
aot_mem.aot_direct_load32_block(vfpu_address, vfpu_words);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(vfpu_words[0]),
|
|
std::bit_cast<float>(vfpu_words[1]),
|
|
std::bit_cast<float>(vfpu_words[2]),
|
|
std::bit_cast<float>(vfpu_words[3])};
|
|
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);
|
|
const std::uint32_t vfpu_words[4]{std::bit_cast<std::uint32_t>(vfpu_value[0]), std::bit_cast<std::uint32_t>(vfpu_value[1]), std::bit_cast<std::uint32_t>(vfpu_value[2]), std::bit_cast<std::uint32_t>(vfpu_value[3])};
|
|
aot_mem.aot_direct_store32_block(vfpu_address, vfpu_words); }
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[17] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08A6BFE4;
|
|
}
|
|
goto L_08A6BFD0;
|
|
}
|
|
L_08A6BFD0:
|
|
{ std::uint32_t aot_run_words[3]{};
|
|
aot_mem.aot_direct_load32_block(ctx.gpr[29] + static_cast<std::uint32_t>(80), aot_run_words);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_run_words[0]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_run_words[1]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_run_words[2]);
|
|
}
|
|
ctx.gpr[31] = (0x08A6BFE4u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 600u, 0x08A66CD8u>(ctx, &aot_mem) && ctx.pc == 0x08A6BFE4u) goto L_08A6BFE4;
|
|
return;
|
|
L_08A6BFE4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6BFEC;
|
|
}
|
|
L_08A6BFEC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0154_entry, 154u, 98u, 0x08A6CF68u>(ctx, &aot_mem); return;
|
|
}
|
|
goto L_08A6BFF4;
|
|
}
|
|
L_08A6BFF4:
|
|
ctx.gpr[4] = (aot_mem.aot_direct_load32(ctx.gpr[16] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8192u);
|
|
ctx.gpr[4] = (0u < ctx.gpr[4] ? 1u : 0u);
|
|
ctx.pc = 0x08A6C000u; return;
|
|
}
|
|
|
|
void recomp_unit_0153(Runtime &rt, AllegrexContext &ctx) {
|
|
auto aot_mem = rt.memory().aot_fast_view();
|
|
recomp_unit_0153_entry(rt, ctx, 0u, aot_mem);
|
|
}
|
|
|
|
void register_generated_unit_153(Runtime &runtime) {
|
|
runtime.register_generated_unit(153u, 0x08A68000u, 16384u, &recomp_unit_0153, &recomp_unit_0153_entry);
|
|
runtime.register_function(0x08A68000u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6804Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68068u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68070u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68078u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A680DCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A680FCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68100u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68118u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6815Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68180u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68188u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68190u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A681ACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A681C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6820Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68220u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68250u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68270u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68274u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6828Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A682E4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6831Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68330u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6833Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68350u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68358u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68370u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68378u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68390u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A683A4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A683B4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A683BCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A683C4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A683D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A683E8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A683F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68400u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68404u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68494u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A684A0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A684C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A684FCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68528u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68564u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68570u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68604u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68610u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68654u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A686F0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68738u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6873Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68768u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68770u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68778u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A688C4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A688F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6890Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6891Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68930u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6893Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68954u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68958u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68988u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A689A8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A689C4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A689D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A689E4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A689ECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A689F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68A44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68A84u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68A94u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68A9Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68AA4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68ACCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68AF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68AFCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68B44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68B50u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68B5Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68B78u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68B84u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BA0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BB0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BC0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BC8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BD0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BF0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BF8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68BFCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68C14u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68C2Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68C44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68C4Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68C78u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68C80u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CA4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CB4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CBCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CC4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CCCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CD4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CDCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68CE4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68D30u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68DB0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68DC0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68DE0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68DECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68E0Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68E1Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68E3Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68E48u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68E50u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68E78u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68E88u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68EB0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68EBCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68ED8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68EF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F08u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F1Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F38u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F40u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F50u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F5Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F64u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F6Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F74u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F7Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F88u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68F94u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FA0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FB0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FB8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FC8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FD4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FDCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FE4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A68FF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69000u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6900Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69018u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69024u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69028u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69034u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69040u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69048u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69058u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69060u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69070u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6907Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6908Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6909Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A690A4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A690B8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A690D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69104u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69154u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A691D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A691E4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69204u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69210u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69230u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69240u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69260u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6926Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69274u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69280u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69288u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69290u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69298u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A692B4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A692C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A692DCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A692E4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A692ECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69300u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69308u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6931Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69324u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6934Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6935Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69384u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69394u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A693B4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A693C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A693DCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A693F0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6940Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69418u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69428u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69434u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6943Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69444u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6944Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69454u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69460u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6946Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69478u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69484u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69488u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69490u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694A0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694ACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694B4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694BCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694C4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694CCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694D8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694E4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694F0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A694FCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69500u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69508u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6951Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69524u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69530u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69538u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69540u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69548u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69558u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69560u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69574u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69580u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6958Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69594u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695A4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695ACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695BCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695D8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695E8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695F0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A695F4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69604u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69620u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69628u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6963Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69644u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69650u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69658u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69660u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69668u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69670u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69678u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6968Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69694u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A696A0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A696A8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A696B0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A696B8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A696C0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A696C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A696F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69730u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A697A0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69818u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6982Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A699B0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69A30u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69A48u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69A50u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69A6Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69A84u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69AA0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69AB4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69ABCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69AE4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69AECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69AF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69AFCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69B0Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69B38u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69B40u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69B48u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69B64u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69B74u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69B9Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69BA4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69BD8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69BF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69C2Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69C34u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69C3Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69C44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69C64u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69C70u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69C94u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69CA8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69CC4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69CD8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69CF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D00u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D08u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D20u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D28u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D3Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D4Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D54u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69D70u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69DA8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69DB0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69DB8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69DC4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69DE8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69DECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69E04u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69E8Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69EACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69ED4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69EE0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69EECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69EF8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69F10u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69F18u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69F30u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69F38u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69F54u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69F64u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A69F78u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A014u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A02Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A03Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A048u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A05Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A084u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A0B8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A0C0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A0D0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A108u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A144u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A154u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A164u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A19Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A1D8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A210u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A244u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A24Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A264u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A27Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A284u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A2C0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A2CCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A300u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A30Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A328u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A338u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A34Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A38Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A398u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A3A0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A3B0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A3B8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A3E0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A3F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A400u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A408u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A424u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A438u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A450u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A460u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A468u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A474u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A48Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A498u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A4A0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A4A8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A4C4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A4D8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A4F0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A500u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A508u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A514u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A534u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A540u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A54Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A550u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A574u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A57Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A588u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A594u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A598u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A5BCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A5D0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A5E8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A600u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A608u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A630u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A644u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A658u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A66Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A680u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A694u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A6A4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A6C0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A6D0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A6D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A6ECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A6F4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A6FCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A718u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A724u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A72Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A734u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A740u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A754u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A760u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A768u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A770u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A7E8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A7F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A804u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A80Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A854u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A898u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A8A4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A8ACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A8D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A8DCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A8F0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A8F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A900u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A91Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A924u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A938u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A978u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A980u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A99Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A9A8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A9BCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A9D0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A9D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A9DCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6A9E8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA0Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA18u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA30u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA3Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA54u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA6Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA74u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA84u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA94u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AA9Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AAA4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AAC4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AAD0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AADCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AAE8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AAF0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AAF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB00u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB14u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB24u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB34u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB3Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB54u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB60u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB68u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB74u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB7Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB88u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AB98u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABA4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABB4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABC0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABC8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABD4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABE4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABF0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ABF8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AC00u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AC5Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AC74u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AC7Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AC84u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AC90u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ACA4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ACD4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ACDCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ACECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ACF8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AD00u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AD28u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ADA4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ADC4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ADD0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ADDCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ADF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6ADFCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE04u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE14u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE20u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE28u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE38u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE4Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE64u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE6Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE74u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE7Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AE98u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AEACu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AEC0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AED0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AEF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF1Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF24u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF40u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF4Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF54u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF64u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF70u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF78u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF88u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AF98u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AFA0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6AFFCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B018u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B030u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B034u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B04Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B068u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B080u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B088u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B098u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B0A8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B0B0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B0B8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B0C0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B0D8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B120u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B13Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B14Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B170u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B1A0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B1B8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B1CCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B1DCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B1ECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B1FCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B204u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B210u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B220u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B228u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B230u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B268u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B270u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B280u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B2D8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B2FCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B310u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B320u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B330u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B340u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B348u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B354u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B364u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B36Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B374u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B37Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B40Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B430u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B438u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B448u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B470u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B510u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B518u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B520u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B56Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B5BCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B5D8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B5E8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B640u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B664u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B6F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B708u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B728u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B73Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B758u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B768u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B778u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B788u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B804u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B824u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B82Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B844u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B85Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B860u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B874u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B878u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B884u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B898u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8A8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8B8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8D0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8DCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8ECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8F4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B8FCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B938u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B940u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B950u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B970u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B984u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B99Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B9B4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B9C8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B9D4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B9E8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6B9F8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BA20u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BA34u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BA48u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BA4Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BA60u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BA78u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BA90u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BAB8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BAD4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BAECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BAF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB08u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB18u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB28u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB30u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB38u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB5Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB70u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB80u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BB90u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BBA0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BBA8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BBB4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BBC4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BBCCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BBD4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BBE0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BC40u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BC60u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BC78u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BC88u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BC9Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BCB8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BCC4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BCE4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BCECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BCFCu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD0Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD14u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD1Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD2Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD34u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD3Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD5Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BD74u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BE00u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BE10u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BE38u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BE4Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BE54u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BE58u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BE70u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BEA0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BEA8u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BEB4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BF10u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BF24u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BF2Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BF44u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BF5Cu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BF64u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BF70u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BFD0u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BFE4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BFECu, &recomp_unit_0153, "recomp_unit_0153");
|
|
runtime.register_function(0x08A6BFF4u, &recomp_unit_0153, "recomp_unit_0153");
|
|
}
|
|
} // namespace psprecomp
|