mirror of
https://github.com/jessicanataliagta/PSPRecomp
synced 2026-09-29 01:19:59 -04:00
11ba9fe222
Otimizações ROUND 3 (might revert)
9236 lines
516 KiB
C++
9236 lines
516 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_0210[4069] = {
|
|
1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
|
|
0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 13, 0, 0, 0, 14, 0, 15, 0, 0, 0, 0, 16, 0, 0, 0,
|
|
0, 0, 0, 17, 0, 0, 18, 19, 0, 20, 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 24, 25, 0,
|
|
0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 29, 0, 30, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 35, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 42, 0, 0, 0, 43, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 0,
|
|
49, 0, 0, 50, 0, 0, 0, 51, 0, 52, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 55, 0, 56, 0, 0, 0, 57, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 63, 0, 0, 64, 0, 0, 0, 0,
|
|
0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 67, 0, 68, 0, 0, 0, 69, 0, 70, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 72, 0, 73, 0, 74, 0, 0,
|
|
0, 75, 0, 0, 76, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, 78, 79, 0, 0, 0, 0, 0, 80, 81, 82, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 87, 0, 0, 0, 0, 0, 88, 0, 89, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 91, 0, 92, 0, 0, 0, 0, 0, 93, 0, 94, 0, 95, 0, 0, 96, 0, 97, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 98, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
100, 0, 101, 0, 0, 0, 0, 0, 102, 0, 103, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 106,
|
|
0, 0, 0, 0, 0, 107, 0, 108, 0, 109, 0, 0, 110, 0, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 114,
|
|
0, 115, 0, 116, 0, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 122, 0, 123, 0, 124, 0, 125, 0, 0,
|
|
0, 0, 0, 0, 126, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, 0, 133, 0, 134,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 136, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 139, 0, 0, 0, 0, 0, 0, 140, 0, 0, 141, 0, 142, 0,
|
|
0, 143, 0, 144, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, 0, 150, 0, 0, 151, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 154, 0,
|
|
0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 157, 0, 158, 0, 0, 159, 0, 160, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 162, 0, 163, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 166, 0, 167, 0, 0, 168, 0, 169, 0,
|
|
170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, 172, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0,
|
|
175, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 177, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 179, 0, 180, 0, 181,
|
|
0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 185, 0, 186, 0, 0,
|
|
0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 189, 0, 190, 0, 191, 0, 192, 0, 193, 0, 194, 0, 0, 0, 0,
|
|
0, 0, 195, 0, 196, 0, 0, 0, 0, 0, 197, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 200, 0, 201, 0, 0, 202, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 203, 0, 204, 0, 0, 0, 0, 0, 205, 0, 206, 0, 207, 0, 208, 0, 209, 0, 210, 0, 211, 0, 212, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 215, 0, 0, 216, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 219,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, 224, 0, 0, 0, 0, 225, 226, 0, 0,
|
|
0, 0, 0, 227, 0, 228, 0, 0, 0, 0, 229, 0, 230, 0, 0, 0, 231, 0, 0, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 235, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 238, 0,
|
|
0, 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 244, 0, 0, 0, 0, 0, 0, 245, 0, 0, 0,
|
|
0, 246, 0, 0, 247, 0, 0, 248, 0, 0, 0, 0, 249, 0, 0, 250, 0, 0, 0, 251, 0, 0, 0, 0, 252, 253, 0, 254, 0, 0, 255, 0,
|
|
0, 0, 0, 0, 256, 257, 0, 0, 0, 258, 259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 261, 0, 262, 0, 0, 0,
|
|
0, 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 0, 266, 0, 267, 0, 268, 0, 0, 269, 0, 270, 0, 0,
|
|
0, 0, 0, 271, 0, 272, 273, 0, 274, 0, 0, 275, 0, 276, 0, 0, 277, 0, 278, 0, 279, 280, 0, 281, 0, 0, 282, 0, 283, 0, 0, 284,
|
|
285, 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 288, 0, 0, 289, 0, 0, 0, 0, 290, 0, 0, 0, 291, 0, 0,
|
|
0, 0, 292, 0, 0, 293, 0, 0, 294, 0, 0, 0, 0, 0, 295, 0, 0, 0, 296, 0, 0, 0, 0, 297, 0, 0, 0, 0, 298, 0, 0, 0,
|
|
299, 0, 300, 0, 0, 0, 0, 301, 0, 0, 0, 0, 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0,
|
|
0, 0, 305, 0, 0, 306, 0, 0, 0, 307, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 309, 0, 310, 0, 0, 0, 0, 311, 0, 312, 0, 0,
|
|
0, 0, 0, 0, 0, 313, 314, 0, 0, 0, 0, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 321, 0, 322, 0, 0, 0, 0, 0, 323, 0, 0,
|
|
0, 0, 324, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 326, 0, 0, 0, 327, 0, 0, 0, 328, 0, 0, 0, 0, 329, 0, 0, 330, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 332,
|
|
0, 333, 0, 0, 0, 0, 0, 0, 334, 335, 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0, 0,
|
|
342, 0, 0, 0, 343, 0, 344, 0, 0, 0, 345, 0, 0, 0, 346, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, 0, 348, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 350, 0, 351, 0, 0, 352, 0, 0, 0,
|
|
0, 353, 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, 355, 356, 0, 0, 357, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 0, 359, 0, 0,
|
|
0, 360, 0, 0, 0, 361, 0, 0, 0, 362, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 365, 0, 366, 0, 0, 0,
|
|
367, 0, 0, 0, 368, 0, 0, 369, 0, 0, 0, 0, 0, 370, 0, 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0,
|
|
0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 377, 0, 0, 0, 378, 379, 0, 0, 0, 380, 0, 0, 0, 0, 381, 0, 0, 0,
|
|
382, 0, 0, 0, 0, 383, 0, 0, 384, 0, 0, 0, 0, 385, 0, 0, 0, 386, 0, 0, 387, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0,
|
|
389, 0, 0, 0, 0, 390, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 392, 0, 0, 0, 393, 0, 394, 0, 0, 0, 395, 0, 0, 0, 396, 0, 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 401, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 404, 405, 0, 0, 406, 0, 0, 0, 0, 0, 407, 0, 0, 0, 408, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 409, 410, 0, 0, 0, 0, 0, 411, 0, 0, 0, 0, 0, 0, 412, 413, 0, 0, 0, 414, 0, 0, 0, 0,
|
|
415, 0, 0, 0, 0, 0, 0, 416, 0, 417, 0, 0, 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, 0, 0, 0, 0,
|
|
0, 0, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, 0, 422, 423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 427, 0, 428, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, 431, 0, 0, 0, 0, 0, 0, 432, 433, 0, 0, 434,
|
|
0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 0, 437, 0, 0, 438, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, 0, 440, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441, 0, 442, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 444, 0, 445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447, 0, 448, 0, 0,
|
|
449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, 451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 452, 0, 0, 0, 453, 0, 0, 0, 454, 0, 0, 0, 0, 455, 0, 456, 0, 457, 0, 0, 0, 458, 0, 459, 0, 0, 0, 460, 0, 0, 0,
|
|
0, 461, 0, 0, 462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 463, 0, 0, 0, 0, 0, 0, 464, 0, 0, 0, 465, 0, 466, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 468, 0, 0, 0, 0, 0, 0,
|
|
469, 0, 470, 0, 0, 0, 0, 471, 0, 0, 0, 472, 0, 0, 473, 0, 0, 0, 0, 474, 475, 0, 0, 0, 0, 0, 0, 0, 476, 0, 0, 0,
|
|
0, 0, 477, 0, 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 483, 0, 0, 0, 0, 484, 0, 0, 0, 0, 485, 0, 486, 0, 0, 0, 0, 487, 0, 0, 0, 488, 0, 489, 0, 0, 0, 0, 490, 0, 0,
|
|
0, 0, 491, 0, 0, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 494, 0,
|
|
0, 0, 495, 0, 0, 0, 496, 0, 0, 0, 0, 0, 497, 0, 0, 498, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 500, 0, 0, 0, 501, 0, 0, 0, 0, 0, 502, 503, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 506, 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, 510, 0, 0, 0, 0, 0, 0, 511,
|
|
0, 512, 0, 513, 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, 516, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 0, 0, 519, 520, 0, 0, 0, 521, 0, 0, 522, 0, 0,
|
|
523, 0, 0, 524, 0, 0, 0, 0, 525, 0, 526, 0, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 529, 0, 0,
|
|
530, 0, 531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 532, 0, 0, 0, 533, 0, 0, 0, 0, 534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 535, 0, 536, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 0, 539, 0, 0, 0, 0, 0, 0, 0, 540, 0,
|
|
0, 0, 0, 0, 0, 541, 0, 0, 0, 542, 543, 0, 0, 0, 0, 0, 0, 544, 0, 545, 0, 0, 0, 0, 0, 0, 546, 0, 547, 0, 548, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, 0, 0, 0, 0, 0, 0, 550, 0, 0, 551, 0,
|
|
0, 552, 0, 0, 0, 0, 0, 0, 0, 553, 0, 554, 0, 555, 0, 0, 0, 0, 0, 0, 0, 556, 0, 557, 0, 0, 0, 0, 0, 558, 0, 559,
|
|
0, 0, 560, 0, 561, 0, 562, 563, 0, 0, 0, 0, 0, 0, 0, 564, 0, 565, 0, 566, 0, 0, 567, 0, 0, 0, 568, 0, 0, 569, 0, 0,
|
|
0, 0, 0, 0, 0, 570, 0, 571, 0, 572, 0, 573, 0, 574, 0, 0, 0, 0, 575, 576, 577, 0, 578, 579, 0, 0, 0, 0, 0, 0, 580, 0,
|
|
0, 0, 0, 0, 581,
|
|
};
|
|
void recomp_unit_0210_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 - 0x08B4C000u;
|
|
entry_id = (entry_delta < 16276u && (entry_delta & 3u) == 0u) ? kEntryIds_recomp_unit_0210[entry_delta >> 2u] : 0u;
|
|
}
|
|
switch (entry_id) {
|
|
case 1u: goto L_08B4C000;
|
|
case 2u: goto L_08B4C00C;
|
|
case 3u: goto L_08B4C040;
|
|
case 4u: goto L_08B4C048;
|
|
case 5u: goto L_08B4C054;
|
|
case 6u: goto L_08B4C070;
|
|
case 7u: goto L_08B4C09C;
|
|
case 8u: goto L_08B4C0FC;
|
|
case 9u: goto L_08B4C10C;
|
|
case 10u: goto L_08B4C11C;
|
|
case 11u: goto L_08B4C12C;
|
|
case 12u: goto L_08B4C13C;
|
|
case 13u: goto L_08B4C144;
|
|
case 14u: goto L_08B4C154;
|
|
case 15u: goto L_08B4C15C;
|
|
case 16u: goto L_08B4C170;
|
|
case 17u: goto L_08B4C18C;
|
|
case 18u: goto L_08B4C198;
|
|
case 19u: goto L_08B4C19C;
|
|
case 20u: goto L_08B4C1A4;
|
|
case 21u: goto L_08B4C1B4;
|
|
case 22u: goto L_08B4C1C0;
|
|
case 23u: goto L_08B4C1D8;
|
|
case 24u: goto L_08B4C1F4;
|
|
case 25u: goto L_08B4C1F8;
|
|
case 26u: goto L_08B4C210;
|
|
case 27u: goto L_08B4C214;
|
|
case 28u: goto L_08B4C254;
|
|
case 29u: goto L_08B4C29C;
|
|
case 30u: goto L_08B4C2A4;
|
|
case 31u: goto L_08B4C2B0;
|
|
case 32u: goto L_08B4C2E4;
|
|
case 33u: goto L_08B4C320;
|
|
case 34u: goto L_08B4C35C;
|
|
case 35u: goto L_08B4C368;
|
|
case 36u: goto L_08B4C390;
|
|
case 37u: goto L_08B4C394;
|
|
case 38u: goto L_08B4C3AC;
|
|
case 39u: goto L_08B4C3D4;
|
|
case 40u: goto L_08B4C3FC;
|
|
case 41u: goto L_08B4C458;
|
|
case 42u: goto L_08B4C464;
|
|
case 43u: goto L_08B4C474;
|
|
case 44u: goto L_08B4C49C;
|
|
case 45u: goto L_08B4C4BC;
|
|
case 46u: goto L_08B4C4CC;
|
|
case 47u: goto L_08B4C4D8;
|
|
case 48u: goto L_08B4C4E0;
|
|
case 49u: goto L_08B4C500;
|
|
case 50u: goto L_08B4C50C;
|
|
case 51u: goto L_08B4C51C;
|
|
case 52u: goto L_08B4C524;
|
|
case 53u: goto L_08B4C52C;
|
|
case 54u: goto L_08B4C53C;
|
|
case 55u: goto L_08B4C588;
|
|
case 56u: goto L_08B4C590;
|
|
case 57u: goto L_08B4C5A0;
|
|
case 58u: goto L_08B4C5AC;
|
|
case 59u: goto L_08B4C5F4;
|
|
case 60u: goto L_08B4C61C;
|
|
case 61u: goto L_08B4C62C;
|
|
case 62u: goto L_08B4C658;
|
|
case 63u: goto L_08B4C660;
|
|
case 64u: goto L_08B4C66C;
|
|
case 65u: goto L_08B4C688;
|
|
case 66u: goto L_08B4C6B4;
|
|
case 67u: goto L_08B4C714;
|
|
case 68u: goto L_08B4C71C;
|
|
case 69u: goto L_08B4C72C;
|
|
case 70u: goto L_08B4C734;
|
|
case 71u: goto L_08B4C748;
|
|
case 72u: goto L_08B4C764;
|
|
case 73u: goto L_08B4C76C;
|
|
case 74u: goto L_08B4C774;
|
|
case 75u: goto L_08B4C784;
|
|
case 76u: goto L_08B4C790;
|
|
case 77u: goto L_08B4C7A4;
|
|
case 78u: goto L_08B4C7C0;
|
|
case 79u: goto L_08B4C7C4;
|
|
case 80u: goto L_08B4C7DC;
|
|
case 81u: goto L_08B4C7E0;
|
|
case 82u: goto L_08B4C7E4;
|
|
case 83u: goto L_08B4C818;
|
|
case 84u: goto L_08B4C93C;
|
|
case 85u: goto L_08B4C94C;
|
|
case 86u: goto L_08B4C9A8;
|
|
case 87u: goto L_08B4C9B0;
|
|
case 88u: goto L_08B4C9C8;
|
|
case 89u: goto L_08B4C9D0;
|
|
case 90u: goto L_08B4C9D8;
|
|
case 91u: goto L_08B4CA1C;
|
|
case 92u: goto L_08B4CA24;
|
|
case 93u: goto L_08B4CA3C;
|
|
case 94u: goto L_08B4CA44;
|
|
case 95u: goto L_08B4CA4C;
|
|
case 96u: goto L_08B4CA58;
|
|
case 97u: goto L_08B4CA60;
|
|
case 98u: goto L_08B4CA9C;
|
|
case 99u: goto L_08B4CAA4;
|
|
case 100u: goto L_08B4CB00;
|
|
case 101u: goto L_08B4CB08;
|
|
case 102u: goto L_08B4CB20;
|
|
case 103u: goto L_08B4CB28;
|
|
case 104u: goto L_08B4CB30;
|
|
case 105u: goto L_08B4CB74;
|
|
case 106u: goto L_08B4CB7C;
|
|
case 107u: goto L_08B4CB94;
|
|
case 108u: goto L_08B4CB9C;
|
|
case 109u: goto L_08B4CBA4;
|
|
case 110u: goto L_08B4CBB0;
|
|
case 111u: goto L_08B4CBB8;
|
|
case 112u: goto L_08B4CBBC;
|
|
case 113u: goto L_08B4CBE0;
|
|
case 114u: goto L_08B4CBFC;
|
|
case 115u: goto L_08B4CC04;
|
|
case 116u: goto L_08B4CC0C;
|
|
case 117u: goto L_08B4CC14;
|
|
case 118u: goto L_08B4CC18;
|
|
case 119u: goto L_08B4CD1C;
|
|
case 120u: goto L_08B4CD78;
|
|
case 121u: goto L_08B4CDC4;
|
|
case 122u: goto L_08B4CDDC;
|
|
case 123u: goto L_08B4CDE4;
|
|
case 124u: goto L_08B4CDEC;
|
|
case 125u: goto L_08B4CDF4;
|
|
case 126u: goto L_08B4CE10;
|
|
case 127u: goto L_08B4CE18;
|
|
case 128u: goto L_08B4CE4C;
|
|
case 129u: goto L_08B4CE54;
|
|
case 130u: goto L_08B4CEAC;
|
|
case 131u: goto L_08B4CEB4;
|
|
case 132u: goto L_08B4CED8;
|
|
case 133u: goto L_08B4CEF4;
|
|
case 134u: goto L_08B4CEFC;
|
|
case 135u: goto L_08B4CF20;
|
|
case 136u: goto L_08B4CF38;
|
|
case 137u: goto L_08B4CF40;
|
|
case 138u: goto L_08B4CFBC;
|
|
case 139u: goto L_08B4CFC8;
|
|
case 140u: goto L_08B4CFE4;
|
|
case 141u: goto L_08B4CFF0;
|
|
case 142u: goto L_08B4CFF8;
|
|
case 143u: goto L_08B4D004;
|
|
case 144u: goto L_08B4D00C;
|
|
case 145u: goto L_08B4D024;
|
|
case 146u: goto L_08B4D050;
|
|
case 147u: goto L_08B4D05C;
|
|
case 148u: goto L_08B4D080;
|
|
case 149u: goto L_08B4D0AC;
|
|
case 150u: goto L_08B4D0B8;
|
|
case 151u: goto L_08B4D0C4;
|
|
case 152u: goto L_08B4D0CC;
|
|
case 153u: goto L_08B4D0F0;
|
|
case 154u: goto L_08B4D0F8;
|
|
case 155u: goto L_08B4D104;
|
|
case 156u: goto L_08B4D130;
|
|
case 157u: goto L_08B4D138;
|
|
case 158u: goto L_08B4D140;
|
|
case 159u: goto L_08B4D14C;
|
|
case 160u: goto L_08B4D154;
|
|
case 161u: goto L_08B4D15C;
|
|
case 162u: goto L_08B4D184;
|
|
case 163u: goto L_08B4D18C;
|
|
case 164u: goto L_08B4D198;
|
|
case 165u: goto L_08B4D1D4;
|
|
case 166u: goto L_08B4D1DC;
|
|
case 167u: goto L_08B4D1E4;
|
|
case 168u: goto L_08B4D1F0;
|
|
case 169u: goto L_08B4D1F8;
|
|
case 170u: goto L_08B4D200;
|
|
case 171u: goto L_08B4D228;
|
|
case 172u: goto L_08B4D230;
|
|
case 173u: goto L_08B4D23C;
|
|
case 174u: goto L_08B4D278;
|
|
case 175u: goto L_08B4D280;
|
|
case 176u: goto L_08B4D2A4;
|
|
case 177u: goto L_08B4D2AC;
|
|
case 178u: goto L_08B4D2CC;
|
|
case 179u: goto L_08B4D2EC;
|
|
case 180u: goto L_08B4D2F4;
|
|
case 181u: goto L_08B4D2FC;
|
|
case 182u: goto L_08B4D31C;
|
|
case 183u: goto L_08B4D334;
|
|
case 184u: goto L_08B4D354;
|
|
case 185u: goto L_08B4D36C;
|
|
case 186u: goto L_08B4D374;
|
|
case 187u: goto L_08B4D38C;
|
|
case 188u: goto L_08B4D3AC;
|
|
case 189u: goto L_08B4D3C4;
|
|
case 190u: goto L_08B4D3CC;
|
|
case 191u: goto L_08B4D3D4;
|
|
case 192u: goto L_08B4D3DC;
|
|
case 193u: goto L_08B4D3E4;
|
|
case 194u: goto L_08B4D3EC;
|
|
case 195u: goto L_08B4D408;
|
|
case 196u: goto L_08B4D410;
|
|
case 197u: goto L_08B4D428;
|
|
case 198u: goto L_08B4D430;
|
|
case 199u: goto L_08B4D454;
|
|
case 200u: goto L_08B4D45C;
|
|
case 201u: goto L_08B4D464;
|
|
case 202u: goto L_08B4D470;
|
|
case 203u: goto L_08B4D494;
|
|
case 204u: goto L_08B4D49C;
|
|
case 205u: goto L_08B4D4B4;
|
|
case 206u: goto L_08B4D4BC;
|
|
case 207u: goto L_08B4D4C4;
|
|
case 208u: goto L_08B4D4CC;
|
|
case 209u: goto L_08B4D4D4;
|
|
case 210u: goto L_08B4D4DC;
|
|
case 211u: goto L_08B4D4E4;
|
|
case 212u: goto L_08B4D4EC;
|
|
case 213u: goto L_08B4D51C;
|
|
case 214u: goto L_08B4D5D0;
|
|
case 215u: goto L_08B4D5E0;
|
|
case 216u: goto L_08B4D5EC;
|
|
case 217u: goto L_08B4D64C;
|
|
case 218u: goto L_08B4D6AC;
|
|
case 219u: goto L_08B4D6FC;
|
|
case 220u: goto L_08B4D728;
|
|
case 221u: goto L_08B4D750;
|
|
case 222u: goto L_08B4D790;
|
|
case 223u: goto L_08B4D84C;
|
|
case 224u: goto L_08B4D85C;
|
|
case 225u: goto L_08B4D870;
|
|
case 226u: goto L_08B4D874;
|
|
case 227u: goto L_08B4D88C;
|
|
case 228u: goto L_08B4D894;
|
|
case 229u: goto L_08B4D8A8;
|
|
case 230u: goto L_08B4D8B0;
|
|
case 231u: goto L_08B4D8C0;
|
|
case 232u: goto L_08B4D8CC;
|
|
case 233u: goto L_08B4D910;
|
|
case 234u: goto L_08B4D938;
|
|
case 235u: goto L_08B4D940;
|
|
case 236u: goto L_08B4D948;
|
|
case 237u: goto L_08B4D970;
|
|
case 238u: goto L_08B4D978;
|
|
case 239u: goto L_08B4D990;
|
|
case 240u: goto L_08B4D9D0;
|
|
case 241u: goto L_08B4DA28;
|
|
case 242u: goto L_08B4DA68;
|
|
case 243u: goto L_08B4DAB4;
|
|
case 244u: goto L_08B4DAD4;
|
|
case 245u: goto L_08B4DAF0;
|
|
case 246u: goto L_08B4DB04;
|
|
case 247u: goto L_08B4DB10;
|
|
case 248u: goto L_08B4DB1C;
|
|
case 249u: goto L_08B4DB30;
|
|
case 250u: goto L_08B4DB3C;
|
|
case 251u: goto L_08B4DB4C;
|
|
case 252u: goto L_08B4DB60;
|
|
case 253u: goto L_08B4DB64;
|
|
case 254u: goto L_08B4DB6C;
|
|
case 255u: goto L_08B4DB78;
|
|
case 256u: goto L_08B4DB90;
|
|
case 257u: goto L_08B4DB94;
|
|
case 258u: goto L_08B4DBA4;
|
|
case 259u: goto L_08B4DBA8;
|
|
case 260u: goto L_08B4DBD0;
|
|
case 261u: goto L_08B4DBE8;
|
|
case 262u: goto L_08B4DBF0;
|
|
case 263u: goto L_08B4DC04;
|
|
case 264u: goto L_08B4DC08;
|
|
case 265u: goto L_08B4DC48;
|
|
case 266u: goto L_08B4DC50;
|
|
case 267u: goto L_08B4DC58;
|
|
case 268u: goto L_08B4DC60;
|
|
case 269u: goto L_08B4DC6C;
|
|
case 270u: goto L_08B4DC74;
|
|
case 271u: goto L_08B4DC8C;
|
|
case 272u: goto L_08B4DC94;
|
|
case 273u: goto L_08B4DC98;
|
|
case 274u: goto L_08B4DCA0;
|
|
case 275u: goto L_08B4DCAC;
|
|
case 276u: goto L_08B4DCB4;
|
|
case 277u: goto L_08B4DCC0;
|
|
case 278u: goto L_08B4DCC8;
|
|
case 279u: goto L_08B4DCD0;
|
|
case 280u: goto L_08B4DCD4;
|
|
case 281u: goto L_08B4DCDC;
|
|
case 282u: goto L_08B4DCE8;
|
|
case 283u: goto L_08B4DCF0;
|
|
case 284u: goto L_08B4DCFC;
|
|
case 285u: goto L_08B4DD00;
|
|
case 286u: goto L_08B4DD14;
|
|
case 287u: goto L_08B4DD30;
|
|
case 288u: goto L_08B4DD44;
|
|
case 289u: goto L_08B4DD50;
|
|
case 290u: goto L_08B4DD64;
|
|
case 291u: goto L_08B4DD74;
|
|
case 292u: goto L_08B4DD88;
|
|
case 293u: goto L_08B4DD94;
|
|
case 294u: goto L_08B4DDA0;
|
|
case 295u: goto L_08B4DDB8;
|
|
case 296u: goto L_08B4DDC8;
|
|
case 297u: goto L_08B4DDDC;
|
|
case 298u: goto L_08B4DDF0;
|
|
case 299u: goto L_08B4DE00;
|
|
case 300u: goto L_08B4DE08;
|
|
case 301u: goto L_08B4DE1C;
|
|
case 302u: goto L_08B4DE30;
|
|
case 303u: goto L_08B4DE44;
|
|
case 304u: goto L_08B4DE74;
|
|
case 305u: goto L_08B4DE88;
|
|
case 306u: goto L_08B4DE94;
|
|
case 307u: goto L_08B4DEA4;
|
|
case 308u: goto L_08B4DEB8;
|
|
case 309u: goto L_08B4DED0;
|
|
case 310u: goto L_08B4DED8;
|
|
case 311u: goto L_08B4DEEC;
|
|
case 312u: goto L_08B4DEF4;
|
|
case 313u: goto L_08B4DF14;
|
|
case 314u: goto L_08B4DF18;
|
|
case 315u: goto L_08B4DF2C;
|
|
case 316u: goto L_08B4DF74;
|
|
case 317u: goto L_08B4DFB0;
|
|
case 318u: goto L_08B4DFC8;
|
|
case 319u: goto L_08B4DFE8;
|
|
case 320u: goto L_08B4E04C;
|
|
case 321u: goto L_08B4E054;
|
|
case 322u: goto L_08B4E05C;
|
|
case 323u: goto L_08B4E074;
|
|
case 324u: goto L_08B4E088;
|
|
case 325u: goto L_08B4E0A0;
|
|
case 326u: goto L_08B4E0B4;
|
|
case 327u: goto L_08B4E0C4;
|
|
case 328u: goto L_08B4E0D4;
|
|
case 329u: goto L_08B4E0E8;
|
|
case 330u: goto L_08B4E0F4;
|
|
case 331u: goto L_08B4E174;
|
|
case 332u: goto L_08B4E17C;
|
|
case 333u: goto L_08B4E184;
|
|
case 334u: goto L_08B4E1A0;
|
|
case 335u: goto L_08B4E1A4;
|
|
case 336u: goto L_08B4E1B4;
|
|
case 337u: goto L_08B4E1C0;
|
|
case 338u: goto L_08B4E1DC;
|
|
case 339u: goto L_08B4E220;
|
|
case 340u: goto L_08B4E22C;
|
|
case 341u: goto L_08B4E26C;
|
|
case 342u: goto L_08B4E280;
|
|
case 343u: goto L_08B4E290;
|
|
case 344u: goto L_08B4E298;
|
|
case 345u: goto L_08B4E2A8;
|
|
case 346u: goto L_08B4E2B8;
|
|
case 347u: goto L_08B4E2CC;
|
|
case 348u: goto L_08B4E2F0;
|
|
case 349u: goto L_08B4E348;
|
|
case 350u: goto L_08B4E35C;
|
|
case 351u: goto L_08B4E364;
|
|
case 352u: goto L_08B4E370;
|
|
case 353u: goto L_08B4E384;
|
|
case 354u: goto L_08B4E390;
|
|
case 355u: goto L_08B4E3B0;
|
|
case 356u: goto L_08B4E3B4;
|
|
case 357u: goto L_08B4E3C0;
|
|
case 358u: goto L_08B4E3D8;
|
|
case 359u: goto L_08B4E3F4;
|
|
case 360u: goto L_08B4E404;
|
|
case 361u: goto L_08B4E414;
|
|
case 362u: goto L_08B4E424;
|
|
case 363u: goto L_08B4E428;
|
|
case 364u: goto L_08B4E458;
|
|
case 365u: goto L_08B4E468;
|
|
case 366u: goto L_08B4E470;
|
|
case 367u: goto L_08B4E480;
|
|
case 368u: goto L_08B4E490;
|
|
case 369u: goto L_08B4E49C;
|
|
case 370u: goto L_08B4E4B4;
|
|
case 371u: goto L_08B4E4C4;
|
|
case 372u: goto L_08B4E4E8;
|
|
case 373u: goto L_08B4E508;
|
|
case 374u: goto L_08B4E5F8;
|
|
case 375u: goto L_08B4E61C;
|
|
case 376u: goto L_08B4E6B4;
|
|
case 377u: goto L_08B4E6B8;
|
|
case 378u: goto L_08B4E6C8;
|
|
case 379u: goto L_08B4E6CC;
|
|
case 380u: goto L_08B4E6DC;
|
|
case 381u: goto L_08B4E6F0;
|
|
case 382u: goto L_08B4E700;
|
|
case 383u: goto L_08B4E714;
|
|
case 384u: goto L_08B4E720;
|
|
case 385u: goto L_08B4E734;
|
|
case 386u: goto L_08B4E744;
|
|
case 387u: goto L_08B4E750;
|
|
case 388u: goto L_08B4E764;
|
|
case 389u: goto L_08B4E780;
|
|
case 390u: goto L_08B4E794;
|
|
case 391u: goto L_08B4E79C;
|
|
case 392u: goto L_08B4E808;
|
|
case 393u: goto L_08B4E818;
|
|
case 394u: goto L_08B4E820;
|
|
case 395u: goto L_08B4E830;
|
|
case 396u: goto L_08B4E840;
|
|
case 397u: goto L_08B4E84C;
|
|
case 398u: goto L_08B4EAA4;
|
|
case 399u: goto L_08B4EADC;
|
|
case 400u: goto L_08B4EB2C;
|
|
case 401u: goto L_08B4EB44;
|
|
case 402u: goto L_08B4EB54;
|
|
case 403u: goto L_08B4EBB8;
|
|
case 404u: goto L_08B4EBC0;
|
|
case 405u: goto L_08B4EBC4;
|
|
case 406u: goto L_08B4EBD0;
|
|
case 407u: goto L_08B4EBE8;
|
|
case 408u: goto L_08B4EBF8;
|
|
case 409u: goto L_08B4EC20;
|
|
case 410u: goto L_08B4EC24;
|
|
case 411u: goto L_08B4EC3C;
|
|
case 412u: goto L_08B4EC58;
|
|
case 413u: goto L_08B4EC5C;
|
|
case 414u: goto L_08B4EC6C;
|
|
case 415u: goto L_08B4EC80;
|
|
case 416u: goto L_08B4EC9C;
|
|
case 417u: goto L_08B4ECA4;
|
|
case 418u: goto L_08B4ECC4;
|
|
case 419u: goto L_08B4ED6C;
|
|
case 420u: goto L_08B4ED88;
|
|
case 421u: goto L_08B4EDBC;
|
|
case 422u: goto L_08B4EDD0;
|
|
case 423u: goto L_08B4EDD4;
|
|
case 424u: goto L_08B4EE18;
|
|
case 425u: goto L_08B4EE68;
|
|
case 426u: goto L_08B4EE74;
|
|
case 427u: goto L_08B4EF14;
|
|
case 428u: goto L_08B4EF1C;
|
|
case 429u: goto L_08B4EF24;
|
|
case 430u: goto L_08B4EF48;
|
|
case 431u: goto L_08B4EF50;
|
|
case 432u: goto L_08B4EF6C;
|
|
case 433u: goto L_08B4EF70;
|
|
case 434u: goto L_08B4EF7C;
|
|
case 435u: goto L_08B4EF88;
|
|
case 436u: goto L_08B4EFD8;
|
|
case 437u: goto L_08B4EFE8;
|
|
case 438u: goto L_08B4EFF4;
|
|
case 439u: goto L_08B4F060;
|
|
case 440u: goto L_08B4F068;
|
|
case 441u: goto L_08B4F148;
|
|
case 442u: goto L_08B4F150;
|
|
case 443u: goto L_08B4F158;
|
|
case 444u: goto L_08B4F190;
|
|
case 445u: goto L_08B4F198;
|
|
case 446u: goto L_08B4F1DC;
|
|
case 447u: goto L_08B4F26C;
|
|
case 448u: goto L_08B4F274;
|
|
case 449u: goto L_08B4F280;
|
|
case 450u: goto L_08B4F2B8;
|
|
case 451u: goto L_08B4F2C0;
|
|
case 452u: goto L_08B4F304;
|
|
case 453u: goto L_08B4F314;
|
|
case 454u: goto L_08B4F324;
|
|
case 455u: goto L_08B4F338;
|
|
case 456u: goto L_08B4F340;
|
|
case 457u: goto L_08B4F348;
|
|
case 458u: goto L_08B4F358;
|
|
case 459u: goto L_08B4F360;
|
|
case 460u: goto L_08B4F370;
|
|
case 461u: goto L_08B4F384;
|
|
case 462u: goto L_08B4F390;
|
|
case 463u: goto L_08B4F3C4;
|
|
case 464u: goto L_08B4F3E0;
|
|
case 465u: goto L_08B4F3F0;
|
|
case 466u: goto L_08B4F3F8;
|
|
case 467u: goto L_08B4F448;
|
|
case 468u: goto L_08B4F464;
|
|
case 469u: goto L_08B4F480;
|
|
case 470u: goto L_08B4F488;
|
|
case 471u: goto L_08B4F49C;
|
|
case 472u: goto L_08B4F4AC;
|
|
case 473u: goto L_08B4F4B8;
|
|
case 474u: goto L_08B4F4CC;
|
|
case 475u: goto L_08B4F4D0;
|
|
case 476u: goto L_08B4F4F0;
|
|
case 477u: goto L_08B4F508;
|
|
case 478u: goto L_08B4F528;
|
|
case 479u: goto L_08B4F534;
|
|
case 480u: goto L_08B4F548;
|
|
case 481u: goto L_08B4F5D0;
|
|
case 482u: goto L_08B4F5D8;
|
|
case 483u: goto L_08B4F604;
|
|
case 484u: goto L_08B4F618;
|
|
case 485u: goto L_08B4F62C;
|
|
case 486u: goto L_08B4F634;
|
|
case 487u: goto L_08B4F648;
|
|
case 488u: goto L_08B4F658;
|
|
case 489u: goto L_08B4F660;
|
|
case 490u: goto L_08B4F674;
|
|
case 491u: goto L_08B4F688;
|
|
case 492u: goto L_08B4F6AC;
|
|
case 493u: goto L_08B4F6D0;
|
|
case 494u: goto L_08B4F6F8;
|
|
case 495u: goto L_08B4F708;
|
|
case 496u: goto L_08B4F718;
|
|
case 497u: goto L_08B4F730;
|
|
case 498u: goto L_08B4F73C;
|
|
case 499u: goto L_08B4F750;
|
|
case 500u: goto L_08B4F798;
|
|
case 501u: goto L_08B4F7A8;
|
|
case 502u: goto L_08B4F7C0;
|
|
case 503u: goto L_08B4F7C4;
|
|
case 504u: goto L_08B4F7D0;
|
|
case 505u: goto L_08B4F828;
|
|
case 506u: goto L_08B4F840;
|
|
case 507u: goto L_08B4F850;
|
|
case 508u: goto L_08B4F89C;
|
|
case 509u: goto L_08B4F8C8;
|
|
case 510u: goto L_08B4F8E0;
|
|
case 511u: goto L_08B4F8FC;
|
|
case 512u: goto L_08B4F904;
|
|
case 513u: goto L_08B4F90C;
|
|
case 514u: goto L_08B4F914;
|
|
case 515u: goto L_08B4F960;
|
|
case 516u: goto L_08B4F968;
|
|
case 517u: goto L_08B4F994;
|
|
case 518u: goto L_08B4F9C8;
|
|
case 519u: goto L_08B4F9D4;
|
|
case 520u: goto L_08B4F9D8;
|
|
case 521u: goto L_08B4F9E8;
|
|
case 522u: goto L_08B4F9F4;
|
|
case 523u: goto L_08B4FA00;
|
|
case 524u: goto L_08B4FA0C;
|
|
case 525u: goto L_08B4FA20;
|
|
case 526u: goto L_08B4FA28;
|
|
case 527u: goto L_08B4FA38;
|
|
case 528u: goto L_08B4FA6C;
|
|
case 529u: goto L_08B4FA74;
|
|
case 530u: goto L_08B4FA80;
|
|
case 531u: goto L_08B4FA88;
|
|
case 532u: goto L_08B4FB04;
|
|
case 533u: goto L_08B4FB14;
|
|
case 534u: goto L_08B4FB28;
|
|
case 535u: goto L_08B4FC8C;
|
|
case 536u: goto L_08B4FC94;
|
|
case 537u: goto L_08B4FC98;
|
|
case 538u: goto L_08B4FCD0;
|
|
case 539u: goto L_08B4FCD8;
|
|
case 540u: goto L_08B4FCF8;
|
|
case 541u: goto L_08B4FD14;
|
|
case 542u: goto L_08B4FD24;
|
|
case 543u: goto L_08B4FD28;
|
|
case 544u: goto L_08B4FD44;
|
|
case 545u: goto L_08B4FD4C;
|
|
case 546u: goto L_08B4FD68;
|
|
case 547u: goto L_08B4FD70;
|
|
case 548u: goto L_08B4FD78;
|
|
case 549u: goto L_08B4FDD0;
|
|
case 550u: goto L_08B4FDEC;
|
|
case 551u: goto L_08B4FDF8;
|
|
case 552u: goto L_08B4FE04;
|
|
case 553u: goto L_08B4FE24;
|
|
case 554u: goto L_08B4FE2C;
|
|
case 555u: goto L_08B4FE34;
|
|
case 556u: goto L_08B4FE54;
|
|
case 557u: goto L_08B4FE5C;
|
|
case 558u: goto L_08B4FE74;
|
|
case 559u: goto L_08B4FE7C;
|
|
case 560u: goto L_08B4FE88;
|
|
case 561u: goto L_08B4FE90;
|
|
case 562u: goto L_08B4FE98;
|
|
case 563u: goto L_08B4FE9C;
|
|
case 564u: goto L_08B4FEBC;
|
|
case 565u: goto L_08B4FEC4;
|
|
case 566u: goto L_08B4FECC;
|
|
case 567u: goto L_08B4FED8;
|
|
case 568u: goto L_08B4FEE8;
|
|
case 569u: goto L_08B4FEF4;
|
|
case 570u: goto L_08B4FF14;
|
|
case 571u: goto L_08B4FF1C;
|
|
case 572u: goto L_08B4FF24;
|
|
case 573u: goto L_08B4FF2C;
|
|
case 574u: goto L_08B4FF34;
|
|
case 575u: goto L_08B4FF48;
|
|
case 576u: goto L_08B4FF4C;
|
|
case 577u: goto L_08B4FF50;
|
|
case 578u: goto L_08B4FF58;
|
|
case 579u: goto L_08B4FF5C;
|
|
case 580u: goto L_08B4FF78;
|
|
case 581u: goto L_08B4FF90;
|
|
default:
|
|
if (local_transfers == 0u) rt.unsupported(ctx.pc, 0u, "invalid internal function entry");
|
|
else ctx.pc = local_pc;
|
|
return;
|
|
}
|
|
}
|
|
L_08B4C000:
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(200)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[16] = (ctx.gpr[16] & 7u);
|
|
if (branch_taken) {
|
|
goto L_08B4C040;
|
|
}
|
|
goto L_08B4C00C;
|
|
}
|
|
L_08B4C00C:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[6] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(200)));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 56u);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 3u);
|
|
ctx.gpr[16] = (ctx.gpr[4] << 16u);
|
|
ctx.gpr[16] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[16]) >> 16u));
|
|
goto L_08B4C040;
|
|
L_08B4C040:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[16]) >= 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C054;
|
|
}
|
|
goto L_08B4C048;
|
|
}
|
|
L_08B4C048:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[21] + static_cast<std::uint32_t>(5))))));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4C1F8;
|
|
}
|
|
goto L_08B4C054;
|
|
}
|
|
L_08B4C054:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x08B4C070u);
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem) && ctx.pc == 0x08B4C070u) goto L_08B4C070;
|
|
return;
|
|
L_08B4C070:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(100)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(132), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(136), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[21] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x08B4C09Cu);
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem) && ctx.pc == 0x08B4C09Cu) goto L_08B4C09C;
|
|
return;
|
|
L_08B4C09C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(112)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(116)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(132)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(136)));
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(140), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(144), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(152), ctx.gpr[5]);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(148)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(152)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(156), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
{ const float fs = ctx.fpr[13]; 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; }
|
|
ctx.gpr[4] = (16964u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(160), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
if (branch_taken) {
|
|
goto L_08B4C1C0;
|
|
}
|
|
goto L_08B4C0FC;
|
|
}
|
|
L_08B4C0FC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(533))))));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C1C0;
|
|
}
|
|
goto L_08B4C10C;
|
|
}
|
|
L_08B4C10C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(533))))));
|
|
ctx.gpr[5] = (0u | 4u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C1C0;
|
|
}
|
|
goto L_08B4C11C;
|
|
}
|
|
L_08B4C11C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(533))))));
|
|
ctx.gpr[5] = (0u | 15u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C1C0;
|
|
}
|
|
goto L_08B4C12C;
|
|
}
|
|
L_08B4C12C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(533))))));
|
|
ctx.gpr[5] = (0u | 17u);
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C1C0;
|
|
}
|
|
goto L_08B4C13C;
|
|
}
|
|
L_08B4C13C:
|
|
ctx.gpr[31] = (0x08B4C144u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08B4C144u) goto L_08B4C144;
|
|
return;
|
|
L_08B4C144:
|
|
ctx.gpr[4] = (ctx.gpr[2] & 65535u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1536u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C1C0;
|
|
}
|
|
goto L_08B4C154;
|
|
}
|
|
L_08B4C154:
|
|
ctx.gpr[31] = (0x08B4C15Cu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08B4C15Cu) goto L_08B4C15C;
|
|
return;
|
|
L_08B4C15C:
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5516)));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5512)));
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[31] = (0x08B4C170u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4C170u) goto L_08B4C170;
|
|
return;
|
|
L_08B4C170:
|
|
ctx.gpr[1] = (ctx.gpr[3] << 1u);
|
|
ctx.gpr[4] = (ctx.gpr[2] >> 31u);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
|
|
ctx.gpr[4] = (ctx.gpr[1] | ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4C198;
|
|
}
|
|
goto L_08B4C18C;
|
|
}
|
|
L_08B4C18C:
|
|
ctx.gpr[4] = (0u | 1u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(196)));
|
|
if (branch_taken) {
|
|
goto L_08B4C19C;
|
|
}
|
|
goto L_08B4C198;
|
|
}
|
|
L_08B4C198:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(196)));
|
|
goto L_08B4C19C;
|
|
L_08B4C19C:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C1B4;
|
|
}
|
|
goto L_08B4C1A4;
|
|
}
|
|
L_08B4C1A4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4C1C0;
|
|
}
|
|
goto L_08B4C1B4;
|
|
}
|
|
L_08B4C1B4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08B4C1C0;
|
|
L_08B4C1C0:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(196)));
|
|
ctx.gpr[16] = (ctx.gpr[16] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[16]) ? 1u : 0u);
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[16] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(5))))));
|
|
goto L_08B4C1D8;
|
|
}
|
|
goto L_08B4C1D8;
|
|
L_08B4C1D8:
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[16]));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[16] = (0u | 0u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[6]) ? 1u : 0u);
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[16] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[5] + static_cast<std::uint32_t>(5))))));
|
|
goto L_08B4C1F4;
|
|
}
|
|
goto L_08B4C1F4;
|
|
L_08B4C1F4:
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[16]));
|
|
goto L_08B4C1F8;
|
|
L_08B4C1F8:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(538))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8u);
|
|
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_08B4C214;
|
|
}
|
|
goto L_08B4C210;
|
|
}
|
|
L_08B4C210:
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(0u));
|
|
goto L_08B4C214;
|
|
L_08B4C214:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(212)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(216)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(220)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(224)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(228)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(232)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(240)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(244)));
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(248)));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(252)));
|
|
ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(256)));
|
|
ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(260)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(264)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(272));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4C254:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-272));
|
|
ctx.gpr[7] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(560)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(228), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(232), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(248), ctx.gpr[21]);
|
|
ctx.gpr[21] = (ctx.gpr[4] + static_cast<std::uint32_t>(384));
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(236), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(240), ctx.gpr[19]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(244), ctx.gpr[20]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(252), ctx.gpr[22]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(256), ctx.gpr[23]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(260), ctx.gpr[30]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(264), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[7] == 0u;
|
|
ctx.gpr[18] = (ctx.gpr[6] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4C2B0;
|
|
}
|
|
goto L_08B4C29C;
|
|
}
|
|
L_08B4C29C:
|
|
ctx.gpr[31] = (0x08B4C2A4u);
|
|
ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(560)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 107u, 0x08B2090Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4C2A4u) goto L_08B4C2A4;
|
|
return;
|
|
L_08B4C2A4:
|
|
ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(560)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
aot_mem.aot_store16(ctx.gpr[16] + static_cast<std::uint32_t>(560), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
goto L_08B4C2B0;
|
|
L_08B4C2B0:
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[5] = (ctx.gpr[17] + ctx.gpr[17]);
|
|
ctx.gpr[6] = (ctx.gpr[4] + ctx.gpr[4]);
|
|
ctx.gpr[5] = (ctx.gpr[17] + ctx.gpr[5]);
|
|
ctx.gpr[19] = (ctx.gpr[16] + static_cast<std::uint32_t>(416));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
ctx.gpr[17] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[4]);
|
|
ctx.gpr[17] = (ctx.gpr[19] + ctx.gpr[17]);
|
|
ctx.gpr[19] = (ctx.gpr[19] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(444))))));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[20] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
if (branch_taken) {
|
|
goto L_08B4C49C;
|
|
}
|
|
goto L_08B4C2E4;
|
|
}
|
|
L_08B4C2E4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(444))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(48), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[23] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(448));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[30] = (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[30] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (17096u << 16u);
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08B4C320u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 267u, 0x08B40DF8u>(ctx, &aot_mem) && ctx.pc == 0x08B4C320u) goto L_08B4C320;
|
|
return;
|
|
L_08B4C320:
|
|
ctx.gpr[4] = (ctx.gpr[22] | 0u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[9] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[10] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
ctx.gpr[11] = (0u | 8u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[3] = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), ctx.gpr[3]);
|
|
ctx.gpr[31] = (0x08B4C35Cu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[2]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 607u, 0x08976C80u>(ctx, &aot_mem) && ctx.pc == 0x08B4C35Cu) goto L_08B4C35C;
|
|
return;
|
|
L_08B4C35C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[29] + static_cast<std::uint32_t>(48))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[4]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C394;
|
|
}
|
|
goto L_08B4C368;
|
|
}
|
|
L_08B4C368:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(384)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (0u | 10u);
|
|
ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]);
|
|
{ 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[6]); 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] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (ctx.lo);
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C394;
|
|
}
|
|
goto L_08B4C390;
|
|
}
|
|
L_08B4C390:
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(48), static_cast<std::uint16_t>(0u));
|
|
goto L_08B4C394;
|
|
L_08B4C394:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[29] + static_cast<std::uint32_t>(48))))));
|
|
aot_mem.aot_store16(ctx.gpr[16] + static_cast<std::uint32_t>(444), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(444))))));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < 1 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C49C;
|
|
}
|
|
goto L_08B4C3AC;
|
|
}
|
|
L_08B4C3AC:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (ctx.gpr[5] << 3u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[22] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
ctx.gpr[31] = (0x08B4C3D4u);
|
|
ctx.gpr[5] = (ctx.gpr[22] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 274u, 0x08B40E68u>(ctx, &aot_mem) && ctx.pc == 0x08B4C3D4u) goto L_08B4C3D4;
|
|
return;
|
|
L_08B4C3D4:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (ctx.gpr[5] << 3u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[23] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[31] = (0x08B4C3FCu);
|
|
ctx.gpr[5] = (ctx.gpr[23] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 274u, 0x08B40E68u>(ctx, &aot_mem) && ctx.pc == 0x08B4C3FCu) goto L_08B4C3FC;
|
|
return;
|
|
L_08B4C3FC:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[7] = (ctx.gpr[6] << 3u);
|
|
ctx.gpr[7] = (ctx.gpr[6] + ctx.gpr[7]);
|
|
ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[6]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[17] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[8] = (ctx.gpr[7] << 3u);
|
|
ctx.gpr[8] = (ctx.gpr[7] + ctx.gpr[8]);
|
|
ctx.gpr[7] = (ctx.gpr[7] + ctx.gpr[8]);
|
|
ctx.gpr[31] = (0x08B4C458u);
|
|
ctx.gpr[6] = (ctx.gpr[6] + ctx.gpr[7]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 275u, 0x08B40EACu>(ctx, &aot_mem) && ctx.pc == 0x08B4C458u) goto L_08B4C458;
|
|
return;
|
|
L_08B4C458:
|
|
ctx.gpr[17] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C474;
|
|
}
|
|
goto L_08B4C464;
|
|
}
|
|
L_08B4C464:
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(384), ctx.gpr[17]);
|
|
ctx.gpr[4] = (0u | 1u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store16(ctx.gpr[16] + static_cast<std::uint32_t>(444), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4C49C;
|
|
}
|
|
goto L_08B4C474;
|
|
}
|
|
L_08B4C474:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(4))))));
|
|
aot_mem.aot_store16(ctx.gpr[18] + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
aot_mem.aot_store16(ctx.gpr[18] + static_cast<std::uint32_t>(2), static_cast<std::uint16_t>(ctx.gpr[5]));
|
|
aot_mem.aot_store16(ctx.gpr[18] + static_cast<std::uint32_t>(4), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
ctx.gpr[4] = (0u | 0u);
|
|
aot_mem.aot_store16(ctx.gpr[16] + static_cast<std::uint32_t>(444), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B4C7E4;
|
|
}
|
|
goto L_08B4C49C;
|
|
}
|
|
L_08B4C49C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(384)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[17] = (0u | 10u);
|
|
ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]);
|
|
{ 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[17]); 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.lo);
|
|
aot_mem.aot_store16(ctx.gpr[18] + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
goto L_08B4C4BC;
|
|
L_08B4C4BC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(0))))));
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C500;
|
|
}
|
|
goto L_08B4C4CC;
|
|
}
|
|
L_08B4C4CC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(444))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[4]) <= 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C500;
|
|
}
|
|
goto L_08B4C4D8;
|
|
}
|
|
L_08B4C4D8:
|
|
ctx.gpr[31] = (0x08B4C4E0u);
|
|
ctx.gpr[4] = (ctx.gpr[21] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0118_entry, 118u, 131u, 0x089DCB28u>(ctx, &aot_mem) && ctx.pc == 0x08B4C4E0u) goto L_08B4C4E0;
|
|
return;
|
|
L_08B4C4E0:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(384)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (ctx.gpr[5] - ctx.gpr[4]);
|
|
{ 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[17]); 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.lo);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store16(ctx.gpr[18] + static_cast<std::uint32_t>(0), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4C4BC;
|
|
}
|
|
goto L_08B4C500;
|
|
}
|
|
L_08B4C500:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[16] + static_cast<std::uint32_t>(444))))));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C52C;
|
|
}
|
|
goto L_08B4C50C;
|
|
}
|
|
L_08B4C50C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(0))))));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C52C;
|
|
}
|
|
goto L_08B4C51C;
|
|
}
|
|
L_08B4C51C:
|
|
ctx.gpr[31] = (0x08B4C524u);
|
|
ctx.gpr[4] = (ctx.gpr[21] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0118_entry, 118u, 131u, 0x089DCB28u>(ctx, &aot_mem) && ctx.pc == 0x08B4C524u) goto L_08B4C524;
|
|
return;
|
|
L_08B4C524:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4C53C;
|
|
}
|
|
goto L_08B4C52C;
|
|
}
|
|
L_08B4C52C:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
aot_mem.aot_store16(ctx.gpr[16] + static_cast<std::uint32_t>(444), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B4C7E4;
|
|
}
|
|
goto L_08B4C53C;
|
|
}
|
|
L_08B4C53C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (ctx.gpr[5] << 3u);
|
|
ctx.gpr[7] = (ctx.gpr[5] + ctx.gpr[7]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[7]);
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(6))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(30040)));
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[21]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 16383u);
|
|
ctx.gpr[4] = (ctx.gpr[4] << 16u);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[4]) >> 16u));
|
|
{ const bool branch_taken = ctx.gpr[4] == ctx.gpr[5];
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[21]) < 25 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4C5A0;
|
|
}
|
|
goto L_08B4C588;
|
|
}
|
|
L_08B4C588:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C5A0;
|
|
}
|
|
goto L_08B4C590;
|
|
}
|
|
L_08B4C590:
|
|
ctx.gpr[4] = (ctx.gpr[21] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[21] = (ctx.gpr[4] << 16u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[21] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[21]) >> 16u));
|
|
if (branch_taken) {
|
|
goto L_08B4C53C;
|
|
}
|
|
goto L_08B4C5A0;
|
|
}
|
|
L_08B4C5A0:
|
|
ctx.gpr[4] = (0u | 25u);
|
|
{ const bool branch_taken = ctx.gpr[21] == ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C61C;
|
|
}
|
|
goto L_08B4C5AC;
|
|
}
|
|
L_08B4C5AC:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[7] = (ctx.gpr[5] << 3u);
|
|
ctx.gpr[7] = (ctx.gpr[5] + ctx.gpr[7]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[7]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[5] = (ctx.gpr[6] + ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(6))))));
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[21]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_store16(ctx.gpr[18] + static_cast<std::uint32_t>(2), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[20]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B4C62C;
|
|
}
|
|
goto L_08B4C5F4;
|
|
}
|
|
L_08B4C5F4:
|
|
ctx.gpr[4] = (0u + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[17] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(2))))));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[17] = (ctx.gpr[17] & 7u);
|
|
if (branch_taken) {
|
|
goto L_08B4C658;
|
|
}
|
|
goto L_08B4C61C;
|
|
}
|
|
L_08B4C61C:
|
|
ctx.gpr[4] = (0u | 0u);
|
|
aot_mem.aot_store16(ctx.gpr[16] + static_cast<std::uint32_t>(444), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B4C7E4;
|
|
}
|
|
goto L_08B4C62C;
|
|
}
|
|
L_08B4C62C:
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(4), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 56u);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 3u);
|
|
ctx.gpr[17] = (ctx.gpr[4] << 16u);
|
|
ctx.gpr[17] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[17]) >> 16u));
|
|
goto L_08B4C658;
|
|
L_08B4C658:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[17]) >= 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C66C;
|
|
}
|
|
goto L_08B4C660;
|
|
}
|
|
L_08B4C660:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[19] + static_cast<std::uint32_t>(5))))));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4C7C4;
|
|
}
|
|
goto L_08B4C66C;
|
|
}
|
|
L_08B4C66C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[18] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x08B4C688u);
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(128));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem) && ctx.pc == 0x08B4C688u) goto L_08B4C688;
|
|
return;
|
|
L_08B4C688:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(128)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(132)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(164), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[5] = (ctx.gpr[5] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x08B4C6B4u);
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(144));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem) && ctx.pc == 0x08B4C6B4u) goto L_08B4C6B4;
|
|
return;
|
|
L_08B4C6B4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(148)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(164)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(168)));
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(172), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(176), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(180), ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(184), ctx.gpr[5]);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(180)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(184)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
{ const float fs = ctx.fpr[13]; 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; }
|
|
ctx.gpr[4] = (16964u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
if (branch_taken) {
|
|
goto L_08B4C790;
|
|
}
|
|
goto L_08B4C714;
|
|
}
|
|
L_08B4C714:
|
|
ctx.gpr[31] = (0x08B4C71Cu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08B4C71Cu) goto L_08B4C71C;
|
|
return;
|
|
L_08B4C71C:
|
|
ctx.gpr[4] = (ctx.gpr[2] & 65535u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1536u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C790;
|
|
}
|
|
goto L_08B4C72C;
|
|
}
|
|
L_08B4C72C:
|
|
ctx.gpr[31] = (0x08B4C734u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08B4C734u) goto L_08B4C734;
|
|
return;
|
|
L_08B4C734:
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5516)));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5512)));
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[31] = (0x08B4C748u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 177u, 0x08B60E5Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4C748u) goto L_08B4C748;
|
|
return;
|
|
L_08B4C748:
|
|
ctx.gpr[1] = (ctx.gpr[3] << 1u);
|
|
ctx.gpr[4] = (ctx.gpr[2] >> 31u);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[3]) >> 31u));
|
|
ctx.gpr[4] = (ctx.gpr[1] | ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
ctx.gpr[4] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4C76C;
|
|
}
|
|
goto L_08B4C764;
|
|
}
|
|
L_08B4C764:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[4] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B4C76C;
|
|
}
|
|
goto L_08B4C76C;
|
|
}
|
|
L_08B4C76C:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4C784;
|
|
}
|
|
goto L_08B4C774;
|
|
}
|
|
L_08B4C774:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(1));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4C790;
|
|
}
|
|
goto L_08B4C784;
|
|
}
|
|
L_08B4C784:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-1));
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08B4C790;
|
|
L_08B4C790:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[17] = (ctx.gpr[17] + static_cast<std::uint32_t>(-1));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[17]) ? 1u : 0u);
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[17] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(5))))));
|
|
goto L_08B4C7A4;
|
|
}
|
|
goto L_08B4C7A4;
|
|
L_08B4C7A4:
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[17]));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(5))))));
|
|
ctx.gpr[4] = (0u | 0u);
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < static_cast<std::int32_t>(ctx.gpr[5]) ? 1u : 0u);
|
|
if (ctx.gpr[4] != 0u) {
|
|
ctx.gpr[17] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(5))))));
|
|
goto L_08B4C7C0;
|
|
}
|
|
goto L_08B4C7C0;
|
|
L_08B4C7C0:
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(ctx.gpr[17]));
|
|
goto L_08B4C7C4;
|
|
L_08B4C7C4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(538))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8u);
|
|
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_08B4C7E0;
|
|
}
|
|
goto L_08B4C7DC;
|
|
}
|
|
L_08B4C7DC:
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(5), static_cast<std::uint8_t>(0u));
|
|
goto L_08B4C7E0;
|
|
L_08B4C7E0:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08B4C7E4;
|
|
L_08B4C7E4:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(224)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(228)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(232)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(240)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(244)));
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(248)));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(252)));
|
|
ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(256)));
|
|
ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(260)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(264)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(272));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4C818:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-304));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(244), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(248), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(252), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(256), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(260), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(264), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(268), ctx.gpr[19]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(272), ctx.gpr[20]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(276), ctx.gpr[21]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(280), ctx.gpr[22]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(284), ctx.gpr[23]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(288), ctx.gpr[30]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(292), ctx.gpr[31]);
|
|
ctx.gpr[18] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[18] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(240), ctx.gpr[4]);
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[19] = (ctx.gpr[18] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
ctx.gpr[4] = (16448u << 16u);
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[22] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[20]; 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[15]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(68), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[17] = ctx.fpr[16] - ctx.fpr[12];
|
|
{ const float fs = ctx.fpr[17]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[17] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[17] = fs * ft; }
|
|
ctx.fpr[18] = ctx.fpr[13] - ctx.fpr[14];
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
|
|
ctx.fpr[15] = ctx.fpr[17] + ctx.fpr[18];
|
|
ctx.fpr[15] = std::sqrt(ctx.fpr[15]);
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[16];
|
|
ctx.fpr[15] = ctx.fpr[20] / ctx.fpr[15];
|
|
{ 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; }
|
|
ctx.fpr[12] = ctx.fpr[16] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = ctx.fpr[14] - ctx.fpr[13];
|
|
{ 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; }
|
|
ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(68), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[20];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(48));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[20] = (ctx.gpr[29] + static_cast<std::uint32_t>(160));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[20];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
ctx.gpr[21] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
ctx.gpr[17] = (ctx.gpr[18] + static_cast<std::uint32_t>(720));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[31] = (0x08B4C93Cu);
|
|
ctx.gpr[6] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0043_entry, 43u, 225u, 0x088B1AB4u>(ctx, &aot_mem) && ctx.pc == 0x08B4C93Cu) goto L_08B4C93C;
|
|
return;
|
|
L_08B4C93C:
|
|
ctx.gpr[23] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
ctx.gpr[22] = (ctx.gpr[18] + static_cast<std::uint32_t>(784));
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
ctx.fpr[24] = std::bit_cast<float>(0u);
|
|
if (branch_taken) {
|
|
goto L_08B4CA58;
|
|
}
|
|
goto L_08B4C94C;
|
|
}
|
|
L_08B4C94C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[4] = (16320u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
ctx.gpr[4] = (16384u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[16] = (ctx.gpr[29] + static_cast<std::uint32_t>(144));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[14];
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4C9A8u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem) && ctx.pc == 0x08B4C9A8u) goto L_08B4C9A8;
|
|
return;
|
|
L_08B4C9A8:
|
|
if (ctx.gpr[2] == 0u) {
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
goto L_08B4C9D8;
|
|
}
|
|
goto L_08B4C9B0;
|
|
L_08B4C9B0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(120)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(592), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08B4C9C8u);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(86))))));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem) && ctx.pc == 0x08B4C9C8u) goto L_08B4C9C8;
|
|
return;
|
|
L_08B4C9C8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4CA60;
|
|
}
|
|
goto L_08B4C9D0;
|
|
}
|
|
L_08B4C9D0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(768), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B4CA60;
|
|
}
|
|
goto L_08B4C9D8;
|
|
}
|
|
L_08B4C9D8:
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[20];
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[20];
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4CA1Cu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem) && ctx.pc == 0x08B4CA1Cu) goto L_08B4CA1C;
|
|
return;
|
|
L_08B4CA1C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4CA4C;
|
|
}
|
|
goto L_08B4CA24;
|
|
}
|
|
L_08B4CA24:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(120)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(592), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08B4CA3Cu);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(86))))));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem) && ctx.pc == 0x08B4CA3Cu) goto L_08B4CA3C;
|
|
return;
|
|
L_08B4CA3C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4CA60;
|
|
}
|
|
goto L_08B4CA44;
|
|
}
|
|
L_08B4CA44:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(768), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B4CA60;
|
|
}
|
|
goto L_08B4CA4C;
|
|
}
|
|
L_08B4CA4C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(672)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4CA60;
|
|
}
|
|
goto L_08B4CA58;
|
|
}
|
|
L_08B4CA58:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(120)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4CA60;
|
|
L_08B4CA60:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(672), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[20];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[20];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[31] = (0x08B4CA9Cu);
|
|
ctx.gpr[6] = (ctx.gpr[22] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0043_entry, 43u, 225u, 0x088B1AB4u>(ctx, &aot_mem) && ctx.pc == 0x08B4CA9Cu) goto L_08B4CA9C;
|
|
return;
|
|
L_08B4CA9C:
|
|
{ const bool branch_taken = ctx.gpr[2] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4CBB0;
|
|
}
|
|
goto L_08B4CAA4;
|
|
}
|
|
L_08B4CAA4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[4] = (16384u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.gpr[4] = (16320u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[16] = (ctx.gpr[29] + static_cast<std::uint32_t>(144));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[14] = ctx.fpr[15] + ctx.fpr[14];
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), ctx.gpr[22]);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4CB00u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem) && ctx.pc == 0x08B4CB00u) goto L_08B4CB00;
|
|
return;
|
|
L_08B4CB00:
|
|
if (ctx.gpr[2] == 0u) {
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
goto L_08B4CB30;
|
|
}
|
|
goto L_08B4CB08;
|
|
L_08B4CB08:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(120)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(592), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08B4CB20u);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(86))))));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem) && ctx.pc == 0x08B4CB20u) goto L_08B4CB20;
|
|
return;
|
|
L_08B4CB20:
|
|
if (ctx.gpr[2] == 0u) {
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
goto L_08B4CBBC;
|
|
}
|
|
goto L_08B4CB28;
|
|
L_08B4CB28:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(832), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B4CBB8;
|
|
}
|
|
goto L_08B4CB30;
|
|
}
|
|
L_08B4CB30:
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[20];
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[16] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[20];
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), ctx.gpr[22]);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4CB74u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem) && ctx.pc == 0x08B4CB74u) goto L_08B4CB74;
|
|
return;
|
|
L_08B4CB74:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4CBA4;
|
|
}
|
|
goto L_08B4CB7C;
|
|
}
|
|
L_08B4CB7C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(120)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(592), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08B4CB94u);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(86))))));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 275u, 0x08B45714u>(ctx, &aot_mem) && ctx.pc == 0x08B4CB94u) goto L_08B4CB94;
|
|
return;
|
|
L_08B4CB94:
|
|
if (ctx.gpr[2] == 0u) {
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
goto L_08B4CBBC;
|
|
}
|
|
goto L_08B4CB9C;
|
|
L_08B4CB9C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(832), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B4CBB8;
|
|
}
|
|
goto L_08B4CBA4;
|
|
}
|
|
L_08B4CBA4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(676)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4CBB8;
|
|
}
|
|
goto L_08B4CBB0;
|
|
}
|
|
L_08B4CBB0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(120)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4CBB8;
|
|
L_08B4CBB8:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
goto L_08B4CBBC;
|
|
L_08B4CBBC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[20];
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(676), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[24])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
goto L_08B4CBE0;
|
|
}
|
|
goto L_08B4CBE0;
|
|
L_08B4CBE0:
|
|
ctx.gpr[4] = (15897u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
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_08B4CC0C;
|
|
}
|
|
goto L_08B4CBFC;
|
|
}
|
|
L_08B4CBFC:
|
|
ctx.gpr[31] = (0x08B4CC04u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0215_entry, 215u, 36u, 0x08B6033Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4CC04u) goto L_08B4CC04;
|
|
return;
|
|
L_08B4CC04:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
if (branch_taken) {
|
|
goto L_08B4CC18;
|
|
}
|
|
goto L_08B4CC0C;
|
|
}
|
|
L_08B4CC0C:
|
|
ctx.gpr[31] = (0x08B4CC14u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 26u, 0x089644F8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CC14u) goto L_08B4CC14;
|
|
return;
|
|
L_08B4CC14:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
goto L_08B4CC18;
|
|
L_08B4CC18:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]);
|
|
{ const float vfpu_constant = std::bit_cast<float>(0x3F22F983u);
|
|
const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>());
|
|
ctx.fpr[13] = 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<0u>(ctx.gpr[4]);
|
|
{ const float vfpu_constant = std::bit_cast<float>(0x3F22F983u);
|
|
const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::sin(vfpu_s[i] * 1.57079632679489661923f);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<1u>());
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(52)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(68)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[15];
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[20];
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(48)));
|
|
ctx.fpr[16] = ctx.fpr[16] - ctx.fpr[17];
|
|
ctx.fpr[16] = ctx.fpr[16] / ctx.fpr[20];
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[16] = fs * ft; }
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]) ^ 0x80000000u);
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
{ 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_store32(ctx.gpr[18] + static_cast<std::uint32_t>(20), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(24), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(240)));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat(0u, 1u, 2u, 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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (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[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(176)));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(180)));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(184)));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[30] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[23] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[5] = (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[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(384));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[5] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[5];
|
|
ctx.gpr[31] = (0x08B4CD1Cu);
|
|
ctx.gpr[4] = (ctx.gpr[18] + ctx.gpr[4]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08B4CD1Cu) goto L_08B4CD1C;
|
|
return;
|
|
L_08B4CD1C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[0];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(100)));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(244)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(248)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(252)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(256)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(260)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(264)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(268)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(272)));
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(276)));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(280)));
|
|
ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(284)));
|
|
ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(288)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(292)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(304));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4CD78:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-128));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(120), ctx.gpr[20]);
|
|
ctx.gpr[20] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(533))))));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(116), ctx.gpr[19]);
|
|
ctx.gpr[19] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(108), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(112), ctx.gpr[18]);
|
|
ctx.gpr[5] = (ctx.gpr[4] < static_cast<std::uint32_t>(36) ? 1u : 0u);
|
|
ctx.gpr[18] = (ctx.gpr[6] | 0u);
|
|
ctx.gpr[17] = (ctx.gpr[7] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(92), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(96), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(100), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(104), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(124), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[16] = (ctx.gpr[8] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4D4E4;
|
|
}
|
|
goto L_08B4CDC4;
|
|
}
|
|
L_08B4CDC4:
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[1] = (2233u << 16u);
|
|
ctx.gpr[1] = (ctx.gpr[1] + ctx.gpr[4]);
|
|
ctx.gpr[1] = (aot_mem.aot_load32(ctx.gpr[1] + static_cast<std::uint32_t>(-30704)));
|
|
jump_target = ctx.gpr[1];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4CDDC:
|
|
ctx.gpr[31] = (0x08B4CDE4u);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem) && ctx.pc == 0x08B4CDE4u) goto L_08B4CDE4;
|
|
return;
|
|
L_08B4CDE4:
|
|
ctx.gpr[31] = (0x08B4CDECu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CDECu) goto L_08B4CDEC;
|
|
return;
|
|
L_08B4CDEC:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0C4;
|
|
}
|
|
goto L_08B4CDF4;
|
|
}
|
|
L_08B4CDF4:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (16320u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 22u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D00C;
|
|
}
|
|
goto L_08B4CE10;
|
|
}
|
|
L_08B4CE10:
|
|
ctx.gpr[31] = (0x08B4CE18u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CE18u) goto L_08B4CE18;
|
|
return;
|
|
L_08B4CE18:
|
|
ctx.gpr[4] = (ctx.gpr[2] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(16));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (16128u << 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_08B4D00C;
|
|
}
|
|
goto L_08B4CE4C;
|
|
}
|
|
L_08B4CE4C:
|
|
ctx.gpr[31] = (0x08B4CE54u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CE54u) goto L_08B4CE54;
|
|
return;
|
|
L_08B4CE54:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[2] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(24)));
|
|
ctx.gpr[4] = (ctx.gpr[4] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[20] + static_cast<std::uint32_t>(86))))));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[6] = (ctx.gpr[6] << 2u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(20)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(32));
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (16320u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[5] & ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 22u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4CEF4;
|
|
}
|
|
goto L_08B4CEAC;
|
|
}
|
|
L_08B4CEAC:
|
|
ctx.gpr[31] = (0x08B4CEB4u);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CEB4u) goto L_08B4CEB4;
|
|
return;
|
|
L_08B4CEB4:
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[22];
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5332)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
|
|
{ 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] = ctx.fpr[24] + ctx.fpr[12];
|
|
ctx.gpr[31] = (0x08B4CED8u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CED8u) goto L_08B4CED8;
|
|
return;
|
|
L_08B4CED8:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5332)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
|
|
{ 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; }
|
|
ctx.fpr[12] = ctx.fpr[26] + ctx.fpr[12];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4CF38;
|
|
}
|
|
goto L_08B4CEF4;
|
|
}
|
|
L_08B4CEF4:
|
|
ctx.gpr[31] = (0x08B4CEFCu);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CEFCu) goto L_08B4CEFC;
|
|
return;
|
|
L_08B4CEFC:
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[22];
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5332)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
|
|
{ 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] = ctx.fpr[24] - ctx.fpr[12];
|
|
ctx.gpr[31] = (0x08B4CF20u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CF20u) goto L_08B4CF20;
|
|
return;
|
|
L_08B4CF20:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5332)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
|
|
{ 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; }
|
|
ctx.fpr[12] = ctx.fpr[26] - ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4CF38;
|
|
L_08B4CF38:
|
|
ctx.gpr[31] = (0x08B4CF40u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4CF40u) goto L_08B4CF40;
|
|
return;
|
|
L_08B4CF40:
|
|
ctx.gpr[4] = (ctx.gpr[2] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
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_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5340)));
|
|
{ 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_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5336)));
|
|
ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12];
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[16];
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[14] = ctx.fpr[17] - ctx.fpr[14];
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14];
|
|
ctx.fpr[13] = std::sqrt(ctx.fpr[13]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D004;
|
|
}
|
|
goto L_08B4CFBC;
|
|
}
|
|
L_08B4CFBC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(534))))));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D004;
|
|
}
|
|
goto L_08B4CFC8;
|
|
}
|
|
L_08B4CFC8:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (16320u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 22u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4CFF0;
|
|
}
|
|
goto L_08B4CFE4;
|
|
}
|
|
L_08B4CFE4:
|
|
ctx.gpr[4] = (0u | 6u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[20] + static_cast<std::uint32_t>(534), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4CFF8;
|
|
}
|
|
goto L_08B4CFF0;
|
|
}
|
|
L_08B4CFF0:
|
|
ctx.gpr[4] = (0u | 7u);
|
|
aot_mem.aot_store8(ctx.gpr[20] + static_cast<std::uint32_t>(534), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08B4CFF8;
|
|
L_08B4CFF8:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(250));
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(512), ctx.gpr[4]);
|
|
goto L_08B4D004;
|
|
L_08B4D004:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0C4;
|
|
}
|
|
goto L_08B4D00C;
|
|
}
|
|
L_08B4D00C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5344)));
|
|
ctx.gpr[4] = (15360u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
ctx.gpr[31] = (0x08B4D024u);
|
|
{ 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[22] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[22] = fs * ft; }
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4D024u) goto L_08B4D024;
|
|
return;
|
|
L_08B4D024:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (16320u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 22u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 256u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-128));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[22]; 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 bool branch_taken = static_cast<std::int32_t>(ctx.gpr[4]) >= 0;
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
if (branch_taken) {
|
|
goto L_08B4D05C;
|
|
}
|
|
goto L_08B4D050;
|
|
}
|
|
L_08B4D050:
|
|
ctx.gpr[4] = (20352u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
goto L_08B4D05C;
|
|
L_08B4D05C:
|
|
{ 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[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5344)));
|
|
ctx.gpr[4] = (15360u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[22] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[22] = fs * ft; }
|
|
ctx.fpr[12] = ctx.fpr[20] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[31] = (0x08B4D080u);
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4D080u) goto L_08B4D080;
|
|
return;
|
|
L_08B4D080:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
ctx.gpr[5] = (16320u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 22u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 256u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-128));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[22]; 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 bool branch_taken = static_cast<std::int32_t>(ctx.gpr[4]) >= 0;
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
if (branch_taken) {
|
|
goto L_08B4D0B8;
|
|
}
|
|
goto L_08B4D0AC;
|
|
}
|
|
L_08B4D0AC:
|
|
ctx.gpr[4] = (20352u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
goto L_08B4D0B8;
|
|
L_08B4D0B8:
|
|
{ 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] = ctx.fpr[20] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4D0C4;
|
|
L_08B4D0C4:
|
|
ctx.gpr[31] = (0x08B4D0CCu);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 28u, 0x089602C8u>(ctx, &aot_mem) && ctx.pc == 0x08B4D0CCu) goto L_08B4D0CC;
|
|
return;
|
|
L_08B4D0CC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[2] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D0F0u);
|
|
ctx.gpr[9] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D0F0u) goto L_08B4D0F0;
|
|
return;
|
|
L_08B4D0F0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D4EC;
|
|
}
|
|
goto L_08B4D0F8;
|
|
}
|
|
L_08B4D0F8:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(440)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D130;
|
|
}
|
|
goto L_08B4D104;
|
|
}
|
|
L_08B4D104:
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(440)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + static_cast<std::uint32_t>(48));
|
|
ctx.gpr[7] = (ctx.gpr[5] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D130u);
|
|
ctx.gpr[9] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D130u) goto L_08B4D130;
|
|
return;
|
|
L_08B4D130:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D138;
|
|
}
|
|
L_08B4D138:
|
|
ctx.gpr[31] = (0x08B4D140u);
|
|
ctx.gpr[4] = (ctx.gpr[29] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem) && ctx.pc == 0x08B4D140u) goto L_08B4D140;
|
|
return;
|
|
L_08B4D140:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (0x08B4D14Cu);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem) && ctx.pc == 0x08B4D14Cu) goto L_08B4D14C;
|
|
return;
|
|
L_08B4D14C:
|
|
ctx.gpr[31] = (0x08B4D154u);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem) && ctx.pc == 0x08B4D154u) goto L_08B4D154;
|
|
return;
|
|
L_08B4D154:
|
|
ctx.gpr[31] = (0x08B4D15Cu);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem) && ctx.pc == 0x08B4D15Cu) goto L_08B4D15C;
|
|
return;
|
|
L_08B4D15C:
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D184u);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 817u, 0x08B43F68u>(ctx, &aot_mem) && ctx.pc == 0x08B4D184u) goto L_08B4D184;
|
|
return;
|
|
L_08B4D184:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D18C;
|
|
}
|
|
L_08B4D18C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(440)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D1D4;
|
|
}
|
|
goto L_08B4D198;
|
|
}
|
|
L_08B4D198:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(440)));
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(320));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(320));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B4D1D4u);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 817u, 0x08B43F68u>(ctx, &aot_mem) && ctx.pc == 0x08B4D1D4u) goto L_08B4D1D4;
|
|
return;
|
|
L_08B4D1D4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D1DC;
|
|
}
|
|
L_08B4D1DC:
|
|
ctx.gpr[31] = (0x08B4D1E4u);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem) && ctx.pc == 0x08B4D1E4u) goto L_08B4D1E4;
|
|
return;
|
|
L_08B4D1E4:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (0x08B4D1F0u);
|
|
ctx.gpr[4] = (ctx.gpr[29] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem) && ctx.pc == 0x08B4D1F0u) goto L_08B4D1F0;
|
|
return;
|
|
L_08B4D1F0:
|
|
ctx.gpr[31] = (0x08B4D1F8u);
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem) && ctx.pc == 0x08B4D1F8u) goto L_08B4D1F8;
|
|
return;
|
|
L_08B4D1F8:
|
|
ctx.gpr[31] = (0x08B4D200u);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(0)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 22u, 0x08960240u>(ctx, &aot_mem) && ctx.pc == 0x08B4D200u) goto L_08B4D200;
|
|
return;
|
|
L_08B4D200:
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[2] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D228u);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 7u, 0x08B44098u>(ctx, &aot_mem) && ctx.pc == 0x08B4D228u) goto L_08B4D228;
|
|
return;
|
|
L_08B4D228:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D230;
|
|
}
|
|
L_08B4D230:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(440)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D278;
|
|
}
|
|
goto L_08B4D23C;
|
|
}
|
|
L_08B4D23C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(440)));
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(320));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(320));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B4D278u);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 7u, 0x08B44098u>(ctx, &aot_mem) && ctx.pc == 0x08B4D278u) goto L_08B4D278;
|
|
return;
|
|
L_08B4D278:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D280;
|
|
}
|
|
L_08B4D280:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(448)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(452)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D2A4u);
|
|
ctx.gpr[9] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D2A4u) goto L_08B4D2A4;
|
|
return;
|
|
L_08B4D2A4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D2AC;
|
|
}
|
|
L_08B4D2AC:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (0u | 1u);
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store8(ctx.gpr[16] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5348)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D2CC;
|
|
}
|
|
L_08B4D2CC:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (0u | 1u);
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store8(ctx.gpr[16] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5348)));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D2EC;
|
|
}
|
|
L_08B4D2EC:
|
|
ctx.gpr[31] = (0x08B4D2F4u);
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0130_entry, 130u, 561u, 0x08A0F37Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4D2F4u) goto L_08B4D2F4;
|
|
return;
|
|
L_08B4D2F4:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D31C;
|
|
}
|
|
goto L_08B4D2FC;
|
|
}
|
|
L_08B4D2FC:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (0u | 1u);
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store8(ctx.gpr[16] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4D36C;
|
|
}
|
|
goto L_08B4D31C;
|
|
}
|
|
L_08B4D31C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(538))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 16u);
|
|
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_08B4D354;
|
|
}
|
|
goto L_08B4D334;
|
|
}
|
|
L_08B4D334:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store8(ctx.gpr[16] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4D36C;
|
|
}
|
|
goto L_08B4D354;
|
|
}
|
|
L_08B4D354:
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D36Cu);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
goto L_08B4D51C;
|
|
L_08B4D36C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D374;
|
|
}
|
|
L_08B4D374:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(538))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 16u);
|
|
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_08B4D3AC;
|
|
}
|
|
goto L_08B4D38C;
|
|
}
|
|
L_08B4D38C:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[18] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store8(ctx.gpr[16] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4D3C4;
|
|
}
|
|
goto L_08B4D3AC;
|
|
}
|
|
L_08B4D3AC:
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D3C4u);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
goto L_08B4D51C;
|
|
L_08B4D3C4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D3CC;
|
|
}
|
|
L_08B4D3CC:
|
|
ctx.gpr[31] = (0x08B4D3D4u);
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
goto L_08B4DF74;
|
|
L_08B4D3D4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D3DC;
|
|
}
|
|
L_08B4D3DC:
|
|
ctx.gpr[31] = (0x08B4D3E4u);
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
goto L_08B4E61C;
|
|
L_08B4D3E4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D3EC;
|
|
}
|
|
L_08B4D3EC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(448)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(452)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B4D408u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 57u, 0x08B445F8u>(ctx, &aot_mem) && ctx.pc == 0x08B4D408u) goto L_08B4D408;
|
|
return;
|
|
L_08B4D408:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[16] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D410;
|
|
}
|
|
L_08B4D410:
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D428u);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 79u, 0x08B44844u>(ctx, &aot_mem) && ctx.pc == 0x08B4D428u) goto L_08B4D428;
|
|
return;
|
|
L_08B4D428:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D430;
|
|
}
|
|
L_08B4D430:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(448)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(452)));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D454u);
|
|
ctx.gpr[9] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D454u) goto L_08B4D454;
|
|
return;
|
|
L_08B4D454:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D45C;
|
|
}
|
|
L_08B4D45C:
|
|
ctx.gpr[31] = (0x08B4D464u);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem) && ctx.pc == 0x08B4D464u) goto L_08B4D464;
|
|
return;
|
|
L_08B4D464:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (0x08B4D470u);
|
|
ctx.gpr[4] = (ctx.gpr[29] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 16u, 0x08960154u>(ctx, &aot_mem) && ctx.pc == 0x08B4D470u) goto L_08B4D470;
|
|
return;
|
|
L_08B4D470:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[8] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D494u);
|
|
ctx.gpr[9] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D494u) goto L_08B4D494;
|
|
return;
|
|
L_08B4D494:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D49C;
|
|
}
|
|
L_08B4D49C:
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4D4B4u);
|
|
ctx.gpr[8] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 37u, 0x08B44304u>(ctx, &aot_mem) && ctx.pc == 0x08B4D4B4u) goto L_08B4D4B4;
|
|
return;
|
|
L_08B4D4B4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D4BC;
|
|
}
|
|
L_08B4D4BC:
|
|
ctx.gpr[31] = (0x08B4D4C4u);
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
goto L_08B4EADC;
|
|
L_08B4D4C4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D4CC;
|
|
}
|
|
L_08B4D4CC:
|
|
ctx.gpr[31] = (0x08B4D4D4u);
|
|
ctx.gpr[4] = (ctx.gpr[20] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 210u, 0x08B45348u>(ctx, &aot_mem) && ctx.pc == 0x08B4D4D4u) goto L_08B4D4D4;
|
|
return;
|
|
L_08B4D4D4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D4DC;
|
|
}
|
|
L_08B4D4DC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D4E4;
|
|
}
|
|
L_08B4D4E4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D0F0;
|
|
}
|
|
goto L_08B4D4EC;
|
|
}
|
|
L_08B4D4EC:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(92)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(100)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(108)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(112)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(116)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(120)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(124)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(128));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4D51C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-288));
|
|
ctx.gpr[9] = (ctx.gpr[4] + static_cast<std::uint32_t>(16));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[9] + static_cast<std::uint32_t>(0)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(236), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[9] + static_cast<std::uint32_t>(4)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
{ const float fs = ctx.fpr[26]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(164), ctx.gpr[9]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(224), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(228), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(232), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(240), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(244), std::bit_cast<std::uint32_t>(ctx.fpr[30]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(248), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(252), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(256), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(260), ctx.gpr[19]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(264), ctx.gpr[20]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(268), ctx.gpr[21]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(272), ctx.gpr[22]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(276), ctx.gpr[23]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(280), ctx.gpr[30]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(284), ctx.gpr[31]);
|
|
ctx.fpr[13] = std::sqrt(ctx.fpr[13]);
|
|
ctx.gpr[9] = (15395u << 16u);
|
|
ctx.gpr[9] = (ctx.gpr[9] | 55050u);
|
|
ctx.fpr[24] = std::bit_cast<float>(ctx.gpr[9]);
|
|
ctx.gpr[9] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(152), ctx.gpr[9]);
|
|
ctx.gpr[19] = (ctx.gpr[4] + static_cast<std::uint32_t>(416));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(200), ctx.gpr[5]);
|
|
ctx.fpr[28] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(188), ctx.gpr[6]);
|
|
ctx.gpr[20] = (ctx.gpr[19] + static_cast<std::uint32_t>(6));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[13]) || std::isnan(ctx.fpr[28])) && ctx.fpr[13] == ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(192), ctx.gpr[7]);
|
|
ctx.gpr[19] = (ctx.gpr[19] + static_cast<std::uint32_t>(12));
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[23] = (ctx.gpr[29] + static_cast<std::uint32_t>(33));
|
|
ctx.gpr[22] = (ctx.gpr[29] + static_cast<std::uint32_t>(34));
|
|
ctx.gpr[21] = (ctx.gpr[29] + static_cast<std::uint32_t>(35));
|
|
ctx.gpr[18] = (ctx.gpr[4] | 0u);
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(196), ctx.gpr[8]);
|
|
if (branch_taken) {
|
|
goto L_08B4D5E0;
|
|
}
|
|
goto L_08B4D5D0;
|
|
}
|
|
L_08B4D5D0:
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[13];
|
|
ctx.fpr[26] = ctx.fpr[26] / ctx.fpr[13];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(160), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4D5EC;
|
|
}
|
|
goto L_08B4D5E0;
|
|
}
|
|
L_08B4D5E0:
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(160), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4D5EC;
|
|
L_08B4D5EC:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(220), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(216), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[20] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[20] + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(22), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[20] + static_cast<std::uint32_t>(4))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(20), static_cast<std::uint16_t>(ctx.gpr[5]));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(24), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(4))))));
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(26), static_cast<std::uint16_t>(ctx.gpr[5]));
|
|
ctx.gpr[17] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[29] + static_cast<std::uint32_t>(22))))));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[7] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(28), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(204), ctx.gpr[17]);
|
|
ctx.gpr[17] = (ctx.gpr[17] << 2u);
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(30), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
ctx.gpr[4] = (ctx.gpr[5] + ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), ctx.gpr[17]);
|
|
ctx.gpr[5] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[31] = (0x08B4D64Cu);
|
|
ctx.gpr[6] = (ctx.gpr[23] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem) && ctx.pc == 0x08B4D64Cu) goto L_08B4D64C;
|
|
return;
|
|
L_08B4D64C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(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::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(33))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(24))))));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[20] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
{ 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[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.gpr[16] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[29] + static_cast<std::uint32_t>(28))))));
|
|
ctx.gpr[5] = (ctx.gpr[22] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(208), ctx.gpr[16]);
|
|
{ const float fs = ctx.fpr[22]; const float ft = ctx.fpr[20]; 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.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.gpr[16] = (ctx.gpr[16] << 2u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[16]);
|
|
ctx.gpr[6] = (ctx.gpr[21] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(172), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[20] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[20] = fs * ft; }
|
|
ctx.gpr[31] = (0x08B4D6ACu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem) && ctx.pc == 0x08B4D6ACu) goto L_08B4D6AC;
|
|
return;
|
|
L_08B4D6AC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(34))))));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(35))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(30))))));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
{ 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_store32(ctx.gpr[29] + static_cast<std::uint32_t>(212), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[24]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[17]);
|
|
{ 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[30] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[30] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[24] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[24] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(180), std::bit_cast<std::uint32_t>(ctx.fpr[30]));
|
|
ctx.gpr[31] = (0x08B4D6FCu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(176), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D6FCu) goto L_08B4D6FC;
|
|
return;
|
|
L_08B4D6FC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(25))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[5] = (16544u << 16u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.fpr[28] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[0];
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[16]);
|
|
ctx.gpr[31] = (0x08B4D728u);
|
|
{ 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[26] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[26] = fs * ft; }
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D728u) goto L_08B4D728;
|
|
return;
|
|
L_08B4D728:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(31))))));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (ctx.gpr[29] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[0];
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[17]);
|
|
ctx.gpr[31] = (0x08B4D750u);
|
|
{ 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; }
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem) && ctx.pc == 0x08B4D750u) goto L_08B4D750;
|
|
return;
|
|
L_08B4D750:
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
{ const float fs = ctx.fpr[22]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[15];
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
ctx.fpr[12] = ctx.fpr[16] + ctx.fpr[13];
|
|
ctx.gpr[5] = (ctx.gpr[29] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[31] = (0x08B4D790u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[16]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 603u, 0x08976BF0u>(ctx, &aot_mem) && ctx.pc == 0x08B4D790u) goto L_08B4D790;
|
|
return;
|
|
L_08B4D790:
|
|
{ const float fs = ctx.fpr[24]; const float ft = ctx.fpr[28]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
{ 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[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(44), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(152)));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[13] = ctx.fpr[15] + ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(44), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[18] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[18] = ctx.fpr[18] - ctx.fpr[16];
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[17];
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[18]; 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[14]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
ctx.fpr[30] = ctx.fpr[15] + ctx.fpr[19];
|
|
ctx.fpr[30] = std::sqrt(ctx.fpr[30]);
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[16];
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[17];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(132), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(136), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), ctx.gpr[4]);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(52)));
|
|
ctx.fpr[0] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
{ const float fs = ctx.fpr[0]; const float ft = ctx.fpr[0]; 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[12] = ctx.fpr[19] + ctx.fpr[16];
|
|
ctx.fpr[12] = std::sqrt(ctx.fpr[12]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5352)));
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[18]; 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[0]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(204)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(208)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] < ctx.fpr[17])) ? 0x00800000u : 0u);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(212)));
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(216)));
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14];
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(220)));
|
|
if (branch_taken) {
|
|
goto L_08B4D894;
|
|
}
|
|
goto L_08B4D84C;
|
|
}
|
|
L_08B4D84C:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
{ const float fs = ctx.fpr[30]; 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; }
|
|
goto L_08B4D874;
|
|
}
|
|
goto L_08B4D85C;
|
|
L_08B4D85C:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5356)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D894;
|
|
}
|
|
goto L_08B4D870;
|
|
}
|
|
L_08B4D870:
|
|
{ const float fs = ctx.fpr[30]; 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; }
|
|
goto L_08B4D874;
|
|
L_08B4D874:
|
|
ctx.fpr[12] = ctx.fpr[13] / ctx.fpr[12];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5360)));
|
|
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_08B4D894;
|
|
}
|
|
goto L_08B4D88C;
|
|
}
|
|
L_08B4D88C:
|
|
if (ctx.gpr[16] != ctx.gpr[17]) {
|
|
{ const float fs = ctx.fpr[30]; const float ft = ctx.fpr[22]; 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; }
|
|
goto L_08B4DA68;
|
|
}
|
|
goto L_08B4D894;
|
|
L_08B4D894:
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[5] = (0u | 2u);
|
|
ctx.gpr[6] = (0u | 2u);
|
|
ctx.gpr[31] = (0x08B4D8A8u);
|
|
ctx.gpr[7] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0208_entry, 208u, 509u, 0x08B46834u>(ctx, &aot_mem) && ctx.pc == 0x08B4D8A8u) goto L_08B4D8A8;
|
|
return;
|
|
L_08B4D8A8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4D978;
|
|
}
|
|
goto L_08B4D8B0;
|
|
}
|
|
L_08B4D8B0:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(533))))));
|
|
ctx.gpr[5] = (static_cast<std::int32_t>(ctx.gpr[4]) < 9 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.gpr[5] = (0u | 12u);
|
|
if (branch_taken) {
|
|
goto L_08B4D940;
|
|
}
|
|
goto L_08B4D8C0;
|
|
}
|
|
L_08B4D8C0:
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < 8 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[4] = (0u | 9u);
|
|
if (branch_taken) {
|
|
goto L_08B4D910;
|
|
}
|
|
goto L_08B4D8CC;
|
|
}
|
|
L_08B4D8CC:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[20] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[20] + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(22), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[20] + static_cast<std::uint32_t>(4))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(20), static_cast<std::uint16_t>(ctx.gpr[5]));
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(0))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(24), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[19] + static_cast<std::uint32_t>(4))))));
|
|
ctx.gpr[7] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[29] + static_cast<std::uint32_t>(22))))));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(28), static_cast<std::uint16_t>(ctx.gpr[5]));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(26), static_cast<std::uint16_t>(ctx.gpr[6]));
|
|
aot_mem.aot_store16(ctx.gpr[29] + static_cast<std::uint32_t>(30), static_cast<std::uint16_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (ctx.gpr[7] << 2u);
|
|
ctx.gpr[16] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[29] + static_cast<std::uint32_t>(28))))));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08B4D978;
|
|
}
|
|
goto L_08B4D910;
|
|
}
|
|
L_08B4D910:
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(533), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(448)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(452)));
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(188)));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(200)));
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(192)));
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4D938u);
|
|
ctx.gpr[9] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(196)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D938u) goto L_08B4D938;
|
|
return;
|
|
L_08B4D938:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DF2C;
|
|
}
|
|
goto L_08B4D940;
|
|
}
|
|
L_08B4D940:
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
ctx.gpr[4] = (0u | 13u);
|
|
if (branch_taken) {
|
|
goto L_08B4D8CC;
|
|
}
|
|
goto L_08B4D948;
|
|
}
|
|
L_08B4D948:
|
|
aot_mem.aot_store8(ctx.gpr[18] + static_cast<std::uint32_t>(533), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(448)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(452)));
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(188)));
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(200)));
|
|
ctx.gpr[8] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(192)));
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4D970u);
|
|
ctx.gpr[9] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(196)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 783u, 0x08B43C48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D970u) goto L_08B4D970;
|
|
return;
|
|
L_08B4D970:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DF2C;
|
|
}
|
|
goto L_08B4D978;
|
|
}
|
|
L_08B4D978:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(148)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(152)));
|
|
ctx.gpr[31] = (0x08B4D990u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[17]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem) && ctx.pc == 0x08B4D990u) goto L_08B4D990;
|
|
return;
|
|
L_08B4D990:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[19] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[30] = ctx.fpr[12] + ctx.fpr[14];
|
|
ctx.fpr[30] = std::sqrt(ctx.fpr[30]);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[6] = (ctx.gpr[23] | 0u);
|
|
ctx.gpr[31] = (0x08B4D9D0u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[17]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem) && ctx.pc == 0x08B4D9D0u) goto L_08B4D9D0;
|
|
return;
|
|
L_08B4D9D0:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(32))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(24))))));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(33))))));
|
|
ctx.fpr[20] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
{ 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[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[5] = (ctx.gpr[16] << 2u);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
{ const float fs = ctx.fpr[22]; const float ft = ctx.fpr[20]; 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.gpr[6] = (ctx.gpr[21] | 0u);
|
|
{ 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_store32(ctx.gpr[29] + static_cast<std::uint32_t>(172), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
{ 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; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[31] = (0x08B4DA28u);
|
|
ctx.gpr[5] = (ctx.gpr[22] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 588u, 0x08976A00u>(ctx, &aot_mem) && ctx.pc == 0x08B4DA28u) goto L_08B4DA28;
|
|
return;
|
|
L_08B4DA28:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(34))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(30))))));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
{ 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; }
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[29] + static_cast<std::uint32_t>(35))))));
|
|
{ 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_store32(ctx.gpr[29] + static_cast<std::uint32_t>(180), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
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; }
|
|
{ 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_store32(ctx.gpr[29] + static_cast<std::uint32_t>(176), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const float fs = ctx.fpr[30]; const float ft = ctx.fpr[22]; 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; }
|
|
goto L_08B4DA68;
|
|
L_08B4DA68:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
{ const float fs = ctx.fpr[30]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5364)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(68), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[16]; 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; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5368)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(152)));
|
|
ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12];
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
ctx.fpr[14] = ctx.fpr[14] - ctx.fpr[15];
|
|
ctx.gpr[16] = (ctx.gpr[18] + static_cast<std::uint32_t>(320));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] <= ctx.fpr[17])) ? 0x00800000u : 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(64), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(68), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
if (branch_taken) {
|
|
goto L_08B4DAD4;
|
|
}
|
|
goto L_08B4DAB4;
|
|
}
|
|
L_08B4DAB4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(96), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(100), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
goto L_08B4DAD4;
|
|
L_08B4DAD4:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(68)));
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[12];
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[31] = (0x08B4DAF0u);
|
|
ctx.fpr[12] = ctx.fpr[14] - ctx.fpr[15];
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4DAF0u) goto L_08B4DAF0;
|
|
return;
|
|
L_08B4DAF0:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4DB10;
|
|
}
|
|
goto L_08B4DB04;
|
|
}
|
|
L_08B4DB04:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
goto L_08B4DB10;
|
|
L_08B4DB10:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(160)));
|
|
ctx.gpr[31] = (0x08B4DB1Cu);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4DB1Cu) goto L_08B4DB1C;
|
|
return;
|
|
L_08B4DB1C:
|
|
ctx.fpr[26] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4DB3C;
|
|
}
|
|
goto L_08B4DB30;
|
|
}
|
|
L_08B4DB30:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[26] = ctx.fpr[26] + ctx.fpr[12];
|
|
goto L_08B4DB3C;
|
|
L_08B4DB3C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(532))))));
|
|
ctx.gpr[5] = (0u | 2u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DB64;
|
|
}
|
|
goto L_08B4DB4C;
|
|
}
|
|
L_08B4DB4C:
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[5] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4DB60u);
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0209_entry, 209u, 459u, 0x08B4AB3Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4DB60u) goto L_08B4DB60;
|
|
return;
|
|
L_08B4DB60:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
goto L_08B4DB64;
|
|
L_08B4DB64:
|
|
ctx.gpr[31] = (0x08B4DB6Cu);
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[26];
|
|
if (rt.invoke_chained_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem) && ctx.pc == 0x08B4DB6Cu) goto L_08B4DB6C;
|
|
return;
|
|
L_08B4DB6C:
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[31] = (0x08B4DB78u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 779u, 0x08B43C18u>(ctx, &aot_mem) && ctx.pc == 0x08B4DB78u) goto L_08B4DB78;
|
|
return;
|
|
L_08B4DB78:
|
|
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);
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(188)));
|
|
if (branch_taken) {
|
|
goto L_08B4DB94;
|
|
}
|
|
goto L_08B4DB90;
|
|
}
|
|
L_08B4DB90:
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4DB94;
|
|
L_08B4DB94:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= ctx.fpr[20])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DBA8;
|
|
}
|
|
goto L_08B4DBA4;
|
|
}
|
|
L_08B4DBA4:
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
goto L_08B4DBA8;
|
|
L_08B4DBA8:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
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_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5372)));
|
|
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_08B4DC08;
|
|
}
|
|
goto L_08B4DBD0;
|
|
}
|
|
L_08B4DBD0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5376)));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 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_08B4DBF0;
|
|
}
|
|
goto L_08B4DBE8;
|
|
}
|
|
L_08B4DBE8:
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5376)));
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]) ^ 0x80000000u);
|
|
goto L_08B4DBF0;
|
|
L_08B4DBF0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5376)));
|
|
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_08B4DC08;
|
|
}
|
|
goto L_08B4DC04;
|
|
}
|
|
L_08B4DC04:
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5376)));
|
|
goto L_08B4DC08;
|
|
L_08B4DC08:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(164)));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (17008u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[24] = 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_store32(ctx.gpr[29] + static_cast<std::uint32_t>(184), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[16] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(532))))));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[16]) < 2 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[4] = (0u | 4u);
|
|
if (branch_taken) {
|
|
goto L_08B4DC58;
|
|
}
|
|
goto L_08B4DC48;
|
|
}
|
|
L_08B4DC48:
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[16]) < 0;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DCA0;
|
|
}
|
|
goto L_08B4DC50;
|
|
}
|
|
L_08B4DC50:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DC60;
|
|
}
|
|
goto L_08B4DC58;
|
|
}
|
|
L_08B4DC58:
|
|
{ const bool branch_taken = ctx.gpr[16] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DCA0;
|
|
}
|
|
goto L_08B4DC60;
|
|
}
|
|
L_08B4DC60:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(535))))));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DC8C;
|
|
}
|
|
goto L_08B4DC6C;
|
|
}
|
|
L_08B4DC6C:
|
|
ctx.gpr[31] = (0x08B4DC74u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0209_entry, 209u, 248u, 0x08B49730u>(ctx, &aot_mem) && ctx.pc == 0x08B4DC74u) goto L_08B4DC74;
|
|
return;
|
|
L_08B4DC74:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(535))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
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[0] / ctx.fpr[24];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DC98;
|
|
}
|
|
goto L_08B4DC8C;
|
|
}
|
|
L_08B4DC8C:
|
|
ctx.gpr[31] = (0x08B4DC94u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0209_entry, 209u, 248u, 0x08B49730u>(ctx, &aot_mem) && ctx.pc == 0x08B4DC94u) goto L_08B4DC94;
|
|
return;
|
|
L_08B4DC94:
|
|
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
goto L_08B4DC98;
|
|
L_08B4DC98:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DCA0;
|
|
}
|
|
goto L_08B4DCA0;
|
|
}
|
|
L_08B4DCA0:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(532))))));
|
|
{ const bool branch_taken = static_cast<std::int32_t>(ctx.gpr[4]) < 0;
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < 2 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4DCDC;
|
|
}
|
|
goto L_08B4DCAC;
|
|
}
|
|
L_08B4DCAC:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DCDC;
|
|
}
|
|
goto L_08B4DCB4;
|
|
}
|
|
L_08B4DCB4:
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[31] = (0x08B4DCC0u);
|
|
ctx.gpr[5] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0130_entry, 130u, 573u, 0x08A0F448u>(ctx, &aot_mem) && ctx.pc == 0x08B4DCC0u) goto L_08B4DCC0;
|
|
return;
|
|
L_08B4DCC0:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DCD4;
|
|
}
|
|
goto L_08B4DCC8;
|
|
}
|
|
L_08B4DCC8:
|
|
ctx.gpr[31] = (0x08B4DCD0u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0194_entry, 194u, 449u, 0x08B0DD38u>(ctx, &aot_mem) && ctx.pc == 0x08B4DCD0u) goto L_08B4DCD0;
|
|
return;
|
|
L_08B4DCD0:
|
|
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
goto L_08B4DCD4;
|
|
L_08B4DCD4:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DCDC;
|
|
}
|
|
goto L_08B4DCDC;
|
|
}
|
|
L_08B4DCDC:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(156), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[31] = (0x08B4DCE8u);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0130_entry, 130u, 561u, 0x08A0F37Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4DCE8u) goto L_08B4DCE8;
|
|
return;
|
|
L_08B4DCE8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4DD00;
|
|
}
|
|
goto L_08B4DCF0;
|
|
}
|
|
L_08B4DCF0:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(156), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[31] = (0x08B4DCFCu);
|
|
ctx.gpr[4] = (ctx.gpr[18] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0194_entry, 194u, 449u, 0x08B0DD38u>(ctx, &aot_mem) && ctx.pc == 0x08B4DCFCu) goto L_08B4DCFC;
|
|
return;
|
|
L_08B4DCFC:
|
|
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
goto L_08B4DD00;
|
|
L_08B4DD00:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(148)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[31] = (0x08B4DD14u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0092_entry, 92u, 592u, 0x08976B48u>(ctx, &aot_mem) && ctx.pc == 0x08B4DD14u) goto L_08B4DD14;
|
|
return;
|
|
L_08B4DD14:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[12];
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[31] = (0x08B4DD30u);
|
|
ctx.fpr[12] = ctx.fpr[14] - ctx.fpr[15];
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4DD30u) goto L_08B4DD30;
|
|
return;
|
|
L_08B4DD30:
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4DD50;
|
|
}
|
|
goto L_08B4DD44;
|
|
}
|
|
L_08B4DD44:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[22] = ctx.fpr[22] + ctx.fpr[12];
|
|
goto L_08B4DD50;
|
|
L_08B4DD50:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5296)));
|
|
ctx.fpr[12] = ctx.fpr[22] - ctx.fpr[26];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5292)));
|
|
ctx.gpr[31] = (0x08B4DD64u);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5300)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 773u, 0x08B43B88u>(ctx, &aot_mem) && ctx.pc == 0x08B4DD64u) goto L_08B4DD64;
|
|
return;
|
|
L_08B4DD64:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(168)));
|
|
ctx.fpr[22] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[31] = (0x08B4DD74u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(172)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4DD74u) goto L_08B4DD74;
|
|
return;
|
|
L_08B4DD74:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4DD94;
|
|
}
|
|
goto L_08B4DD88;
|
|
}
|
|
L_08B4DD88:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
goto L_08B4DD94;
|
|
L_08B4DD94:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(176)));
|
|
ctx.gpr[31] = (0x08B4DDA0u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(180)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4DDA0u) goto L_08B4DDA0;
|
|
return;
|
|
L_08B4DDA0:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[26] = std::bit_cast<float>(ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08B4DDC8;
|
|
}
|
|
goto L_08B4DDB8;
|
|
}
|
|
L_08B4DDB8:
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
goto L_08B4DDC8;
|
|
L_08B4DDC8:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5380)));
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5292)));
|
|
ctx.gpr[31] = (0x08B4DDDCu);
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5300)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 773u, 0x08B43B88u>(ctx, &aot_mem) && ctx.pc == 0x08B4DDDCu) goto L_08B4DDDC;
|
|
return;
|
|
L_08B4DDDC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5384)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[30] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
if (branch_taken) {
|
|
goto L_08B4DE00;
|
|
}
|
|
goto L_08B4DDF0;
|
|
}
|
|
L_08B4DDF0:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(535))))));
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[4]) < 12 ? 1u : 0u);
|
|
if (ctx.gpr[4] == 0u) {
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5384)));
|
|
goto L_08B4DE08;
|
|
}
|
|
goto L_08B4DE00;
|
|
L_08B4DE00:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[30] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (branch_taken) {
|
|
goto L_08B4DE1C;
|
|
}
|
|
goto L_08B4DE08;
|
|
}
|
|
L_08B4DE08:
|
|
ctx.fpr[12] = ctx.fpr[30] / ctx.fpr[12];
|
|
ctx.fpr[13] = ctx.fpr[26] - ctx.fpr[20];
|
|
ctx.fpr[12] = ctx.fpr[26] - ctx.fpr[12];
|
|
{ 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[30] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[30] = fs * ft; }
|
|
ctx.fpr[30] = ctx.fpr[26] - ctx.fpr[30];
|
|
goto L_08B4DE1C;
|
|
L_08B4DE1C:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[30]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
goto L_08B4DE30;
|
|
}
|
|
goto L_08B4DE30;
|
|
L_08B4DE30:
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
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_08B4DE44;
|
|
}
|
|
goto L_08B4DE44;
|
|
L_08B4DE44:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[18] + static_cast<std::uint32_t>(535))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(192)));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(184)));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5388)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] < ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[13] = ctx.fpr[14] - ctx.fpr[12];
|
|
if (branch_taken) {
|
|
goto L_08B4DE94;
|
|
}
|
|
goto L_08B4DE74;
|
|
}
|
|
L_08B4DE74:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5392)));
|
|
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_08B4DE94;
|
|
}
|
|
goto L_08B4DE88;
|
|
}
|
|
L_08B4DE88:
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
if (branch_taken) {
|
|
goto L_08B4DF18;
|
|
}
|
|
goto L_08B4DE94;
|
|
}
|
|
L_08B4DE94:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
goto L_08B4DEF4;
|
|
}
|
|
goto L_08B4DEA4;
|
|
L_08B4DEA4:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5396)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5404)));
|
|
goto L_08B4DED8;
|
|
}
|
|
goto L_08B4DEB8;
|
|
L_08B4DEB8:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5400)));
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[12];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < 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[26]));
|
|
goto L_08B4DED0;
|
|
}
|
|
goto L_08B4DED0;
|
|
L_08B4DED0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (branch_taken) {
|
|
goto L_08B4DF18;
|
|
}
|
|
goto L_08B4DED8;
|
|
}
|
|
L_08B4DED8:
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[12];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[26] < 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[26]));
|
|
goto L_08B4DEEC;
|
|
}
|
|
goto L_08B4DEEC;
|
|
L_08B4DEEC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[19] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (branch_taken) {
|
|
goto L_08B4DF18;
|
|
}
|
|
goto L_08B4DEF4;
|
|
}
|
|
L_08B4DEF4:
|
|
ctx.fpr[28] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5408)));
|
|
ctx.fpr[28] = ctx.fpr[28] / ctx.fpr[12];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5348)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[28] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5348)));
|
|
goto L_08B4DF14;
|
|
}
|
|
goto L_08B4DF14;
|
|
L_08B4DF14:
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
goto L_08B4DF18;
|
|
L_08B4DF18:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(156)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(200)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(196)));
|
|
aot_mem.aot_store32(ctx.gpr[4] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store8(ctx.gpr[5] + static_cast<std::uint32_t>(0), static_cast<std::uint8_t>(0u));
|
|
goto L_08B4DF2C;
|
|
L_08B4DF2C:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(224)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(228)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(232)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(236)));
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(240)));
|
|
ctx.fpr[30] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(244)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(248)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(252)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(256)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(260)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(264)));
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(268)));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(272)));
|
|
ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(276)));
|
|
ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(280)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(284)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(288));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4DF74:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-176));
|
|
ctx.gpr[5] = (15969u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(1640)));
|
|
ctx.gpr[5] = (ctx.gpr[5] | 18350u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(144), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(152), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(156), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(160), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(164), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(168), ctx.gpr[31]);
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4DFC8;
|
|
}
|
|
goto L_08B4DFB0;
|
|
}
|
|
L_08B4DFB0:
|
|
ctx.gpr[4] = (14979u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1640)));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4719u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1640), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4DFC8;
|
|
L_08B4DFC8:
|
|
ctx.gpr[4] = (15897u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1640)));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
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);
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(48));
|
|
if (branch_taken) {
|
|
goto L_08B4E054;
|
|
}
|
|
goto L_08B4DFE8;
|
|
}
|
|
L_08B4DFE8:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(448)));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(452)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[12];
|
|
ctx.fpr[22] = ctx.fpr[22] - ctx.fpr[13];
|
|
{ const float fs = ctx.fpr[20]; const float ft = ctx.fpr[20]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[22]; const float ft = ctx.fpr[22]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[24] = ctx.fpr[14] + ctx.fpr[15];
|
|
ctx.fpr[24] = std::sqrt(ctx.fpr[24]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(535))))));
|
|
ctx.fpr[26] = std::bit_cast<float>(0u);
|
|
ctx.gpr[5] = (16544u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (17096u << 16u);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[14];
|
|
ctx.fpr[28] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08B4E05C;
|
|
}
|
|
goto L_08B4E04C;
|
|
}
|
|
L_08B4E04C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E0C4;
|
|
}
|
|
goto L_08B4E054;
|
|
}
|
|
L_08B4E054:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E5F8;
|
|
}
|
|
goto L_08B4E05C;
|
|
}
|
|
L_08B4E05C:
|
|
ctx.gpr[5] = (17046u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
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_08B4E088;
|
|
}
|
|
goto L_08B4E074;
|
|
}
|
|
L_08B4E074:
|
|
ctx.gpr[5] = (16179u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 13107u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
{ 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[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
if (branch_taken) {
|
|
goto L_08B4E0C4;
|
|
}
|
|
goto L_08B4E088;
|
|
}
|
|
L_08B4E088:
|
|
ctx.gpr[5] = (16672u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
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_08B4E0B4;
|
|
}
|
|
goto L_08B4E0A0;
|
|
}
|
|
L_08B4E0A0:
|
|
ctx.gpr[5] = (16076u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 52429u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
{ 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[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
if (branch_taken) {
|
|
goto L_08B4E0C4;
|
|
}
|
|
goto L_08B4E0B4;
|
|
}
|
|
L_08B4E0B4:
|
|
ctx.gpr[5] = (15948u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 52429u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ 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[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
goto L_08B4E0C4;
|
|
L_08B4E0C4:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[24]) || std::isnan(ctx.fpr[26])) && ctx.fpr[24] == ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E0E8;
|
|
}
|
|
goto L_08B4E0D4;
|
|
}
|
|
L_08B4E0D4:
|
|
ctx.fpr[20] = ctx.fpr[20] / ctx.fpr[24];
|
|
ctx.fpr[22] = ctx.fpr[22] / ctx.fpr[24];
|
|
{ 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[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const bool branch_taken = 0u == 0u;
|
|
{ const float fs = ctx.fpr[22]; 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; }
|
|
if (branch_taken) {
|
|
goto L_08B4E0F4;
|
|
}
|
|
goto L_08B4E0E8;
|
|
}
|
|
L_08B4E0E8:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
{ 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[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[22]; 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; }
|
|
goto L_08B4E0F4;
|
|
L_08B4E0F4:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[5] = (16255u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 15204u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.gpr[6] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[5]);
|
|
ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[6]);
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<32u>());
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
{ const float fs = ctx.fpr[15]; 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; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
{ const float fs = ctx.fpr[16]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[16] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[16] = fs * ft; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(84), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fpr[14] = ctx.fpr[12] - ctx.fpr[15];
|
|
ctx.fpr[15] = ctx.fpr[13] - ctx.fpr[16];
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
ctx.fpr[16] = ctx.fpr[18] + ctx.fpr[19];
|
|
ctx.fpr[16] = std::sqrt(ctx.fpr[16]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[16]) || std::isnan(ctx.fpr[26])) && ctx.fpr[16] == ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E17C;
|
|
}
|
|
goto L_08B4E174;
|
|
}
|
|
L_08B4E174:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
if (branch_taken) {
|
|
goto L_08B4E184;
|
|
}
|
|
goto L_08B4E17C;
|
|
}
|
|
L_08B4E17C:
|
|
ctx.fpr[14] = ctx.fpr[14] / ctx.fpr[16];
|
|
ctx.fpr[15] = ctx.fpr[15] / ctx.fpr[16];
|
|
goto L_08B4E184;
|
|
L_08B4E184:
|
|
ctx.gpr[5] = (15107u << 16u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] < ctx.fpr[17])) ? 0x00800000u : 0u);
|
|
ctx.fpr[18] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[5] = (ctx.gpr[5] | 4719u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[19]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[18] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[18] = fs * ft; }
|
|
if (branch_taken) {
|
|
goto L_08B4E1A4;
|
|
}
|
|
goto L_08B4E1A0;
|
|
}
|
|
L_08B4E1A0:
|
|
ctx.fpr[18] = ctx.fpr[18] / ctx.fpr[17];
|
|
goto L_08B4E1A4;
|
|
L_08B4E1A4:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[18] <= ctx.fpr[16])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
goto L_08B4E1C0;
|
|
}
|
|
goto L_08B4E1B4;
|
|
L_08B4E1B4:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(84), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (branch_taken) {
|
|
goto L_08B4E1DC;
|
|
}
|
|
goto L_08B4E1C0;
|
|
}
|
|
L_08B4E1C0:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
{ const float fs = ctx.fpr[18]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12];
|
|
ctx.fpr[15] = ctx.fpr[16] + ctx.fpr[15];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(84), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
goto L_08B4E1DC;
|
|
L_08B4E1DC:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(48)));
|
|
{ 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[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(52)));
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(456)));
|
|
ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[16] + ctx.fpr[15];
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2048u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[17]));
|
|
if (branch_taken) {
|
|
goto L_08B4E22C;
|
|
}
|
|
goto L_08B4E220;
|
|
}
|
|
L_08B4E220:
|
|
ctx.gpr[5] = (16384u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
goto L_08B4E22C;
|
|
L_08B4E22C:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(56)));
|
|
ctx.gpr[5] = (15395u << 16u);
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.gpr[5] = (ctx.gpr[5] | 55050u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (14979u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 4719u);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(1654))))));
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.gpr[5] = (ctx.gpr[5] & 2u);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.fpr[13] = ctx.fpr[12] - ctx.fpr[13];
|
|
if (branch_taken) {
|
|
goto L_08B4E2CC;
|
|
}
|
|
goto L_08B4E26C;
|
|
}
|
|
L_08B4E26C:
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[15] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
goto L_08B4E280;
|
|
}
|
|
goto L_08B4E280;
|
|
L_08B4E280:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] <= ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E298;
|
|
}
|
|
goto L_08B4E290;
|
|
}
|
|
L_08B4E290:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4E2CC;
|
|
}
|
|
goto L_08B4E298;
|
|
}
|
|
L_08B4E298:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[5] = (16320u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4E2B8;
|
|
}
|
|
goto L_08B4E2A8;
|
|
}
|
|
L_08B4E2A8:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[14];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4E2CC;
|
|
}
|
|
goto L_08B4E2B8;
|
|
}
|
|
L_08B4E2B8:
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
{ 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; }
|
|
ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4E2CC;
|
|
L_08B4E2CC:
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(56)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[31] = (0x08B4E2F0u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem) && ctx.pc == 0x08B4E2F0u) goto L_08B4E2F0;
|
|
return;
|
|
L_08B4E2F0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[4] = (16253u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 28836u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]);
|
|
ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]);
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(120)));
|
|
{ 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_store32(ctx.gpr[16] + static_cast<std::uint32_t>(120), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (16640u << 16u);
|
|
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_08B4E364;
|
|
}
|
|
goto L_08B4E348;
|
|
}
|
|
L_08B4E348:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1860)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E364;
|
|
}
|
|
goto L_08B4E35C;
|
|
}
|
|
L_08B4E35C:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (branch_taken) {
|
|
goto L_08B4E428;
|
|
}
|
|
goto L_08B4E364;
|
|
}
|
|
L_08B4E364:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[31] = (0x08B4E370u);
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4E370u) goto L_08B4E370;
|
|
return;
|
|
L_08B4E370:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4E390;
|
|
}
|
|
goto L_08B4E384;
|
|
}
|
|
L_08B4E384:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
goto L_08B4E390;
|
|
L_08B4E390:
|
|
ctx.gpr[4] = (16457u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1860)));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
if (branch_taken) {
|
|
goto L_08B4E3B4;
|
|
}
|
|
goto L_08B4E3B0;
|
|
}
|
|
L_08B4E3B0:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1860)));
|
|
goto L_08B4E3B4;
|
|
L_08B4E3B4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1716)));
|
|
ctx.gpr[31] = (0x08B4E3C0u);
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
|
|
if (rt.invoke_chained_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem) && ctx.pc == 0x08B4E3C0u) goto L_08B4E3C0;
|
|
return;
|
|
L_08B4E3C0:
|
|
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]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
goto L_08B4E3D8;
|
|
}
|
|
goto L_08B4E3D8;
|
|
L_08B4E3D8:
|
|
ctx.gpr[4] = (16076u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
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_08B4E424;
|
|
}
|
|
goto L_08B4E3F4;
|
|
}
|
|
L_08B4E3F4:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E414;
|
|
}
|
|
goto L_08B4E404;
|
|
}
|
|
L_08B4E404:
|
|
ctx.gpr[4] = (48373u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 49807u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08B4E428;
|
|
}
|
|
goto L_08B4E414;
|
|
}
|
|
L_08B4E414:
|
|
ctx.gpr[4] = (15605u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 49807u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08B4E428;
|
|
}
|
|
goto L_08B4E424;
|
|
}
|
|
L_08B4E424:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
goto L_08B4E428;
|
|
L_08B4E428:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(120)));
|
|
ctx.gpr[4] = (14673u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.fpr[13] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.gpr[4] = (ctx.gpr[4] | 46871u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[15] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
goto L_08B4E458;
|
|
}
|
|
goto L_08B4E458;
|
|
L_08B4E458:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] <= ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E470;
|
|
}
|
|
goto L_08B4E468;
|
|
}
|
|
L_08B4E468:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(120), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4E49C;
|
|
}
|
|
goto L_08B4E470;
|
|
}
|
|
L_08B4E470:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E490;
|
|
}
|
|
goto L_08B4E480;
|
|
}
|
|
L_08B4E480:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(120)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[14];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(120), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4E49C;
|
|
}
|
|
goto L_08B4E490;
|
|
}
|
|
L_08B4E490:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(120)));
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(120), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4E49C;
|
|
L_08B4E49C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(120)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1716)));
|
|
{ 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.gpr[31] = (0x08B4E4B4u);
|
|
ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12];
|
|
if (rt.invoke_chained_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem) && ctx.pc == 0x08B4E4B4u) goto L_08B4E4B4;
|
|
return;
|
|
L_08B4E4B4:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(617))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 1u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1716), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
if (branch_taken) {
|
|
goto L_08B4E4E8;
|
|
}
|
|
goto L_08B4E4C4;
|
|
}
|
|
L_08B4E4C4:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(320)));
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(324)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[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; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (branch_taken) {
|
|
goto L_08B4E508;
|
|
}
|
|
goto L_08B4E4E8;
|
|
}
|
|
L_08B4E4E8:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(320)));
|
|
ctx.gpr[4] = (16448u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(324)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[13]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[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; }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
goto L_08B4E508;
|
|
L_08B4E508:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1716)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[5]);
|
|
{ const float vfpu_constant = std::bit_cast<float>(0x3F22F983u);
|
|
const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<1u>());
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), 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<0u>(ctx.gpr[5]);
|
|
{ const float vfpu_constant = std::bit_cast<float>(0x3F22F983u);
|
|
const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::sin(vfpu_s[i] * 1.57079632679489661923f);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<1u>());
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + 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_load32(ctx.gpr[29] + static_cast<std::uint32_t>(68)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(48)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(52)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(20), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(24), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4E5F8;
|
|
L_08B4E5F8:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(148)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(152)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(156)));
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(160)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(164)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(168)));
|
|
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_08B4E61C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-176));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(448)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(452)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[13] = ctx.fpr[14] - ctx.fpr[13];
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[13]; 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[15] = ctx.fpr[15] + ctx.fpr[16];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(144), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(152), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(156), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(160), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(164), ctx.gpr[31]);
|
|
ctx.fpr[20] = std::sqrt(ctx.fpr[15]);
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(456)));
|
|
ctx.fpr[18] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[14] = ctx.fpr[17] - ctx.fpr[18];
|
|
ctx.fpr[20] = ctx.fpr[14] / ctx.fpr[20];
|
|
ctx.gpr[5] = (48793u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 39322u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (16025u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 39322u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (16585u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 4059u);
|
|
ctx.fpr[24] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
ctx.fpr[22] = std::bit_cast<float>(0u);
|
|
ctx.gpr[5] = (16544u << 16u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.fpr[26] = std::bit_cast<float>(ctx.gpr[5]);
|
|
if (branch_taken) {
|
|
goto L_08B4E6B8;
|
|
}
|
|
goto L_08B4E6B4;
|
|
}
|
|
L_08B4E6B4:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
goto L_08B4E6B8;
|
|
L_08B4E6B8:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E6CC;
|
|
}
|
|
goto L_08B4E6C8;
|
|
}
|
|
L_08B4E6C8:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
goto L_08B4E6CC;
|
|
L_08B4E6CC:
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[31] = (0x08B4E6DCu);
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4E6DCu) goto L_08B4E6DC;
|
|
return;
|
|
L_08B4E6DC:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[24];
|
|
goto L_08B4E6F0;
|
|
}
|
|
goto L_08B4E6F0;
|
|
L_08B4E6F0:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[24])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E714;
|
|
}
|
|
goto L_08B4E700;
|
|
}
|
|
L_08B4E700:
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[24];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[24])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E700;
|
|
}
|
|
goto L_08B4E714;
|
|
}
|
|
L_08B4E714:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1716)));
|
|
ctx.gpr[31] = (0x08B4E720u);
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
if (rt.invoke_chained_direct<&recomp_unit_0162_entry, 162u, 580u, 0x08A8F0B4u>(ctx, &aot_mem) && ctx.pc == 0x08B4E720u) goto L_08B4E720;
|
|
return;
|
|
L_08B4E720:
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E744;
|
|
}
|
|
goto L_08B4E734;
|
|
}
|
|
L_08B4E734:
|
|
ctx.gpr[4] = (15651u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 55050u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
if (branch_taken) {
|
|
goto L_08B4E750;
|
|
}
|
|
goto L_08B4E744;
|
|
}
|
|
L_08B4E744:
|
|
ctx.gpr[4] = (48419u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 55050u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4E750;
|
|
L_08B4E750:
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
goto L_08B4E764;
|
|
}
|
|
goto L_08B4E764;
|
|
L_08B4E764:
|
|
ctx.gpr[4] = (15948u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] < ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E79C;
|
|
}
|
|
goto L_08B4E780;
|
|
}
|
|
L_08B4E780:
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
goto L_08B4E794;
|
|
}
|
|
goto L_08B4E794;
|
|
L_08B4E794:
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[26]; 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; }
|
|
goto L_08B4E79C;
|
|
L_08B4E79C:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[4] = (16245u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 49807u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]);
|
|
ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]);
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>());
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1720)));
|
|
{ const float fs = ctx.fpr[14]; 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; }
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1720), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[4] = (15172u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39846u);
|
|
ctx.fpr[15] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[15]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[15] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
goto L_08B4E808;
|
|
}
|
|
goto L_08B4E808;
|
|
L_08B4E808:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] <= ctx.fpr[15])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E820;
|
|
}
|
|
goto L_08B4E818;
|
|
}
|
|
L_08B4E818:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1720), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4E84C;
|
|
}
|
|
goto L_08B4E820;
|
|
}
|
|
L_08B4E820:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4E840;
|
|
}
|
|
goto L_08B4E830;
|
|
}
|
|
L_08B4E830:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1720)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[14];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1720), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4E84C;
|
|
}
|
|
goto L_08B4E840;
|
|
}
|
|
L_08B4E840:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1720)));
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[14];
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1720), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4E84C;
|
|
L_08B4E84C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1716)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1720)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
{ const float fs = ctx.fpr[14]; 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; }
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(1716), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1716)));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[5]);
|
|
{ const float vfpu_constant = std::bit_cast<float>(0x3F22F983u);
|
|
const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::cos(vfpu_s[i] * 1.57079632679489661923f);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<1u>());
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[5]);
|
|
{ const float vfpu_constant = std::bit_cast<float>(0x3F22F983u);
|
|
const float vfpu_value[4]{vfpu_constant, vfpu_constant, vfpu_constant, vfpu_constant};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::sin(vfpu_s[i] * 1.57079632679489661923f);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<1u, 1u>(vfpu_d); }
|
|
ctx.gpr[5] = (ctx.vfpu_scalar_bits_ct<1u>());
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
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);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(1720)));
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[26]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[14];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(72), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<2u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_cross_quat(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[6] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + 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_load32(ctx.gpr[29] + static_cast<std::uint32_t>(68)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + 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_load32(ctx.gpr[29] + static_cast<std::uint32_t>(72)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(48)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(52)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(20), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(56)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(24), std::bit_cast<std::uint32_t>(ctx.fpr[15]));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(32)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(36)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(36), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7676)));
|
|
ctx.gpr[4] = (16243u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 13107u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[17]));
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.set_vfpu_scalar_bits_ct<0u>(ctx.gpr[4]);
|
|
ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[5]);
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::log2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<32u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] * vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 1u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::exp2(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<32u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<32u>());
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[16] = ctx.fpr[12] - ctx.fpr[16];
|
|
ctx.gpr[4] = (15395u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 55050u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[16] + static_cast<std::uint32_t>(535))))));
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[18] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[18])));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[18]; 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[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(320)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[16];
|
|
{ const float fs = ctx.fpr[19]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[19] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[19] = fs * ft; }
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[19];
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[17]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[18]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
{ const float fs = ctx.fpr[14]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[0] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(324)));
|
|
{ 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[0] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[0] = fs * ft; }
|
|
ctx.fpr[14] = ctx.fpr[14] + ctx.fpr[0];
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[17]; 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[15]; const float ft = ctx.fpr[18]; 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[15]; const float ft = ctx.fpr[16]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[15] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[15] = fs * ft; }
|
|
ctx.fpr[19] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(328)));
|
|
{ const float fs = ctx.fpr[19]; 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] = ctx.fpr[15] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(84), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(88), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[31] = (0x08B4EAA4u);
|
|
ctx.gpr[4] = (ctx.gpr[16] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem) && ctx.pc == 0x08B4EAA4u) goto L_08B4EAA4;
|
|
return;
|
|
L_08B4EAA4:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[29] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[16] + static_cast<std::uint32_t>(112));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(148)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(152)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(156)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(160)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(164)));
|
|
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_08B4EADC:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[17]);
|
|
ctx.gpr[17] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(440)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[18]);
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.gpr[18] = (ctx.gpr[17] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[12];
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(20), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B4EB2Cu);
|
|
ctx.fpr[12] = ctx.fpr[14] - ctx.fpr[12];
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4EB2Cu) goto L_08B4EB2C;
|
|
return;
|
|
L_08B4EB2C:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fpr[13] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(440)));
|
|
if (branch_taken) {
|
|
goto L_08B4EB54;
|
|
}
|
|
goto L_08B4EB44;
|
|
}
|
|
L_08B4EB44:
|
|
ctx.gpr[5] = (16585u << 16u);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
goto L_08B4EB54;
|
|
L_08B4EB54:
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[16] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[18] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[13] = ctx.fpr[14] - ctx.fpr[13];
|
|
ctx.gpr[5] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[17] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(4)));
|
|
ctx.fpr[15] = ctx.fpr[15] - ctx.fpr[16];
|
|
ctx.fpr[14] = ctx.fpr[17] - ctx.fpr[16];
|
|
{ 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[15]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[22] = ctx.fpr[12] + ctx.fpr[14];
|
|
ctx.fpr[22] = std::sqrt(ctx.fpr[22]);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(72)));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 14u);
|
|
ctx.gpr[5] = (ctx.gpr[5] ^ 6u);
|
|
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_08B4EBC0;
|
|
}
|
|
goto L_08B4EBB8;
|
|
}
|
|
L_08B4EBB8:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[4] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4EBC4;
|
|
}
|
|
goto L_08B4EBC0;
|
|
}
|
|
L_08B4EBC0:
|
|
ctx.gpr[5] = (0u | 0u);
|
|
goto L_08B4EBC4;
|
|
L_08B4EBC4:
|
|
ctx.gpr[6] = (16448u << 16u);
|
|
{ const bool branch_taken = ctx.gpr[5] == 0u;
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[6]);
|
|
if (branch_taken) {
|
|
goto L_08B4EBF8;
|
|
}
|
|
goto L_08B4EBD0;
|
|
}
|
|
L_08B4EBD0:
|
|
ctx.gpr[6] = (aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(236)));
|
|
ctx.gpr[6] = (ctx.gpr[6] & 256u);
|
|
ctx.gpr[6] = (0u < ctx.gpr[6] ? 1u : 0u);
|
|
ctx.gpr[6] = (ctx.gpr[6] & 255u);
|
|
{ const bool branch_taken = ctx.gpr[6] == 0u;
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(48));
|
|
if (branch_taken) {
|
|
goto L_08B4EBF8;
|
|
}
|
|
goto L_08B4EBE8;
|
|
}
|
|
L_08B4EBE8:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[5] + static_cast<std::uint32_t>(8)));
|
|
ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(1952), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4EC24;
|
|
}
|
|
goto L_08B4EBF8;
|
|
}
|
|
L_08B4EBF8:
|
|
ctx.gpr[5] = (16576u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14];
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[6] + static_cast<std::uint32_t>(8)));
|
|
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_08B4EC20;
|
|
}
|
|
goto L_08B4EC20;
|
|
L_08B4EC20:
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(1952), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
goto L_08B4EC24;
|
|
L_08B4EC24:
|
|
ctx.gpr[5] = (16968u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
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_08B4EC5C;
|
|
}
|
|
goto L_08B4EC3C;
|
|
}
|
|
L_08B4EC3C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(1952)));
|
|
ctx.gpr[5] = (16840u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
goto L_08B4EC58;
|
|
}
|
|
goto L_08B4EC58;
|
|
L_08B4EC58:
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(1952), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4EC5C;
|
|
L_08B4EC5C:
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(384));
|
|
ctx.gpr[31] = (0x08B4EC6Cu);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0118_entry, 118u, 187u, 0x089DD29Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4EC6Cu) goto L_08B4EC6C;
|
|
return;
|
|
L_08B4EC6C:
|
|
ctx.gpr[4] = (ctx.gpr[17] | 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[22]));
|
|
ctx.gpr[31] = (0x08B4EC80u);
|
|
ctx.gpr[5] = (0u | 1u);
|
|
goto L_08B4ECC4;
|
|
L_08B4EC80:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(636)));
|
|
ctx.gpr[4] = (17254u << 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_08B4ECA4;
|
|
}
|
|
goto L_08B4EC9C;
|
|
}
|
|
L_08B4EC9C:
|
|
ctx.gpr[4] = (0u | 30u);
|
|
aot_mem.aot_store8(ctx.gpr[16] + static_cast<std::uint32_t>(533), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08B4ECA4;
|
|
L_08B4ECA4:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(12)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(16)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(20)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4ECC4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-800));
|
|
ctx.gpr[5] = (ctx.gpr[5] & 255u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(720), ctx.gpr[5]);
|
|
ctx.gpr[5] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[4] + static_cast<std::uint32_t>(533))))));
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(48));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(704), ctx.gpr[6]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(768), ctx.gpr[20]);
|
|
ctx.gpr[6] = (ctx.gpr[4] + static_cast<std::uint32_t>(16));
|
|
ctx.gpr[20] = (ctx.gpr[4] | 0u);
|
|
ctx.gpr[4] = (16457u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(748), std::bit_cast<std::uint32_t>(ctx.fpr[30]));
|
|
ctx.fpr[30] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (49225u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(744), std::bit_cast<std::uint32_t>(ctx.fpr[28]));
|
|
ctx.fpr[28] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(728), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[4] = (49024u << 16u);
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(732), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(736), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(740), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(756), ctx.gpr[17]);
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(712), ctx.gpr[6]);
|
|
ctx.fpr[22] = std::bit_cast<float>(0u);
|
|
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[17] = (0u | 0u);
|
|
ctx.gpr[7] = (0u | 31u);
|
|
ctx.fpr[26] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(752), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(760), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(764), ctx.gpr[19]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(772), ctx.gpr[21]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(776), ctx.gpr[22]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(780), ctx.gpr[23]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(784), ctx.gpr[30]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(788), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != ctx.gpr[7];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(716), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
if (branch_taken) {
|
|
goto L_08B4EDD0;
|
|
}
|
|
goto L_08B4ED6C;
|
|
}
|
|
L_08B4ED6C:
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(537)));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
goto L_08B4EDD4;
|
|
}
|
|
goto L_08B4ED88;
|
|
L_08B4ED88:
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 2u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (15395u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 55050u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
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_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
goto L_08B4EDD4;
|
|
}
|
|
goto L_08B4EDBC;
|
|
L_08B4EDBC:
|
|
ctx.gpr[4] = (16329u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[17] = (0u | 1u);
|
|
ctx.fpr[24] = ctx.fpr[24] + ctx.fpr[12];
|
|
goto L_08B4EDD0;
|
|
L_08B4EDD0:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(76)));
|
|
goto L_08B4EDD4;
|
|
L_08B4EDD4:
|
|
ctx.gpr[5] = (16320u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & ctx.gpr[5]);
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7660)));
|
|
ctx.gpr[4] = (ctx.gpr[4] >> 22u);
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(7668)));
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[4]);
|
|
ctx.gpr[6] = (0u | 500u);
|
|
ctx.gpr[4] = (ctx.gpr[7] + ctx.gpr[4]);
|
|
{ const std::uint32_t dividend = ctx.gpr[5]; const std::uint32_t divisor = ctx.gpr[6]; if (divisor == 0u) { ctx.lo = 0xFFFFFFFFu; ctx.hi = dividend; } else { ctx.lo = dividend / divisor; ctx.hi = dividend % divisor; } }
|
|
ctx.gpr[5] = (ctx.hi);
|
|
// nop
|
|
// nop
|
|
{ const std::uint32_t dividend = ctx.gpr[4]; const std::uint32_t divisor = ctx.gpr[6]; if (divisor == 0u) { ctx.lo = 0xFFFFFFFFu; ctx.hi = dividend; } else { ctx.lo = dividend / divisor; ctx.hi = dividend % divisor; } }
|
|
ctx.gpr[4] = (ctx.hi);
|
|
ctx.gpr[4] = (ctx.gpr[5] < ctx.gpr[4] ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(708), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
if (branch_taken) {
|
|
goto L_08B4F348;
|
|
}
|
|
goto L_08B4EE18;
|
|
}
|
|
L_08B4EE18:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(724), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1952)));
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1956), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (16968u << 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[18] = (ctx.gpr[20] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[16] = (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[16] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(704)));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[19] = (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[19] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[31] = (0x08B4EE68u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 285u, 0x08B41074u>(ctx, &aot_mem) && ctx.pc == 0x08B4EE68u) goto L_08B4EE68;
|
|
return;
|
|
L_08B4EE68:
|
|
ctx.fpr[26] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.gpr[31] = (0x08B4EE74u);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 284u, 0x08B41050u>(ctx, &aot_mem) && ctx.pc == 0x08B4EE74u) goto L_08B4EE74;
|
|
return;
|
|
L_08B4EE74:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(144), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(148), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(152), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.gpr[22] = (ctx.gpr[29] + static_cast<std::uint32_t>(144));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (17008u << 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]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.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[16] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[21] = (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[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[30] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
ctx.gpr[23] = (0u | 1u);
|
|
ctx.gpr[4] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[23]);
|
|
ctx.gpr[31] = (0x08B4EF14u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4EF14u) goto L_08B4EF14;
|
|
return;
|
|
L_08B4EF14:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(724)));
|
|
if (branch_taken) {
|
|
goto L_08B4EF70;
|
|
}
|
|
goto L_08B4EF1C;
|
|
}
|
|
L_08B4EF1C:
|
|
if (ctx.gpr[17] == 0u) {
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
goto L_08B4EF50;
|
|
}
|
|
goto L_08B4EF24;
|
|
L_08B4EF24:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1960)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[26]; 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[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1956)));
|
|
ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
goto L_08B4EF48;
|
|
}
|
|
goto L_08B4EF48;
|
|
L_08B4EF48:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1956), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4EF70;
|
|
}
|
|
goto L_08B4EF50;
|
|
}
|
|
L_08B4EF50:
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1960)));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1956)));
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14];
|
|
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_08B4EF6C;
|
|
}
|
|
goto L_08B4EF6C;
|
|
L_08B4EF6C:
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1956), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
goto L_08B4EF70;
|
|
L_08B4EF70:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(708), std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.gpr[31] = (0x08B4EF7Cu);
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 285u, 0x08B41074u>(ctx, &aot_mem) && ctx.pc == 0x08B4EF7Cu) goto L_08B4EF7C;
|
|
return;
|
|
L_08B4EF7C:
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
ctx.gpr[31] = (0x08B4EF88u);
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 284u, 0x08B41050u>(ctx, &aot_mem) && ctx.pc == 0x08B4EF88u) goto L_08B4EF88;
|
|
return;
|
|
L_08B4EF88:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(184), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (17096u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(618))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 8u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
{ 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; }
|
|
if (branch_taken) {
|
|
goto L_08B4EFE8;
|
|
}
|
|
goto L_08B4EFD8;
|
|
}
|
|
L_08B4EFD8:
|
|
ctx.gpr[4] = (16544u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
if (branch_taken) {
|
|
goto L_08B4EFF4;
|
|
}
|
|
goto L_08B4EFE8;
|
|
}
|
|
L_08B4EFE8:
|
|
ctx.gpr[4] = (16880u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
goto L_08B4EFF4;
|
|
L_08B4EFF4:
|
|
aot_mem.aot_store8(ctx.gpr[20] + static_cast<std::uint32_t>(1968), static_cast<std::uint8_t>(ctx.gpr[23]));
|
|
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[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[4] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[23]);
|
|
ctx.gpr[31] = (0x08B4F060u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4F060u) goto L_08B4F060;
|
|
return;
|
|
L_08B4F060:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F340;
|
|
}
|
|
goto L_08B4F068;
|
|
}
|
|
L_08B4F068:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[20] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[18] = (ctx.gpr[29] + static_cast<std::uint32_t>(224));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (17530u << 16u);
|
|
ctx.fpr[24] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.fpr[26] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[24]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(232), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (16672u << 16u);
|
|
ctx.fpr[22] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[17] = (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[17] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(704)));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[16] = (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[16] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.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[16] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[23]);
|
|
ctx.gpr[31] = (0x08B4F148u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4F148u) goto L_08B4F148;
|
|
return;
|
|
L_08B4F148:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F158;
|
|
}
|
|
goto L_08B4F150;
|
|
}
|
|
L_08B4F150:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[26] = std::bit_cast<float>(0u);
|
|
if (branch_taken) {
|
|
goto L_08B4F1DC;
|
|
}
|
|
goto L_08B4F158;
|
|
}
|
|
L_08B4F158:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[23]);
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[4] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4F190u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4F190u) goto L_08B4F190;
|
|
return;
|
|
L_08B4F190:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F1DC;
|
|
}
|
|
goto L_08B4F198;
|
|
}
|
|
L_08B4F198:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(256), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(260), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(264), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(256));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[26] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4F1DC;
|
|
L_08B4F1DC:
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[18] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(704)));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ 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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[5] = (std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[5]);
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[22] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.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[16] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[21] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[5] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[23]);
|
|
ctx.gpr[31] = (0x08B4F26Cu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4F26Cu) goto L_08B4F26C;
|
|
return;
|
|
L_08B4F26C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F280;
|
|
}
|
|
goto L_08B4F274;
|
|
}
|
|
L_08B4F274:
|
|
ctx.fpr[22] = std::bit_cast<float>(0u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.fpr[24] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
if (branch_taken) {
|
|
goto L_08B4F304;
|
|
}
|
|
goto L_08B4F280;
|
|
}
|
|
L_08B4F280:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[23]);
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
ctx.gpr[4] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[21] | 0u);
|
|
ctx.gpr[7] = (ctx.gpr[30] | 0u);
|
|
ctx.gpr[8] = (0u | 1u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4F2B8u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0036_entry, 36u, 698u, 0x0889786Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4F2B8u) goto L_08B4F2B8;
|
|
return;
|
|
L_08B4F2B8:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
ctx.fpr[22] = std::bit_cast<float>(0u);
|
|
if (branch_taken) {
|
|
goto L_08B4F304;
|
|
}
|
|
goto L_08B4F2C0;
|
|
}
|
|
L_08B4F2C0:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(288), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(292), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(88)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(296), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(288));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[19] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(272));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[24] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4F304;
|
|
L_08B4F304:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[24] <= ctx.fpr[26])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F324;
|
|
}
|
|
goto L_08B4F314;
|
|
}
|
|
L_08B4F314:
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
ctx.fpr[26] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1932), std::bit_cast<std::uint32_t>(ctx.fpr[26]));
|
|
if (branch_taken) {
|
|
goto L_08B4F338;
|
|
}
|
|
goto L_08B4F324;
|
|
}
|
|
L_08B4F324:
|
|
ctx.gpr[4] = (48896u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (16128u << 16u);
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1932), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[26] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4F338;
|
|
L_08B4F338:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F348;
|
|
}
|
|
goto L_08B4F340;
|
|
}
|
|
L_08B4F340:
|
|
aot_mem.aot_store8(ctx.gpr[20] + static_cast<std::uint32_t>(1968), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1932), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
goto L_08B4F348;
|
|
L_08B4F348:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(533))))));
|
|
ctx.gpr[5] = (0u | 36u);
|
|
{ const bool branch_taken = ctx.gpr[4] != ctx.gpr[5];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F360;
|
|
}
|
|
goto L_08B4F358;
|
|
}
|
|
L_08B4F358:
|
|
aot_mem.aot_store8(ctx.gpr[20] + static_cast<std::uint32_t>(1968), static_cast<std::uint8_t>(0u));
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1932), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
goto L_08B4F360;
|
|
L_08B4F360:
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(712)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[31] = (0x08B4F370u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(4)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0088_entry, 88u, 28u, 0x08964540u>(ctx, &aot_mem) && ctx.pc == 0x08B4F370u) goto L_08B4F370;
|
|
return;
|
|
L_08B4F370:
|
|
ctx.fpr[20] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[0]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4F390;
|
|
}
|
|
goto L_08B4F384;
|
|
}
|
|
L_08B4F384:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[12];
|
|
goto L_08B4F390;
|
|
L_08B4F390:
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(704)));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(328)));
|
|
ctx.gpr[4] = (17096u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[16] + static_cast<std::uint32_t>(8)));
|
|
{ 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[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1956)));
|
|
ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12];
|
|
ctx.fpr[12] = ctx.fpr[15] - ctx.fpr[12];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1936), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
if (branch_taken) {
|
|
goto L_08B4F3E0;
|
|
}
|
|
goto L_08B4F3C4;
|
|
}
|
|
L_08B4F3C4:
|
|
ctx.gpr[4] = (16544u << 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_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1936)));
|
|
ctx.fpr[12] = ctx.fpr[14] + ctx.fpr[12];
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1936), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4F3F0;
|
|
}
|
|
goto L_08B4F3E0;
|
|
}
|
|
L_08B4F3E0:
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[26]; 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[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1936)));
|
|
ctx.fpr[12] = ctx.fpr[13] + ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1936), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4F3F0;
|
|
L_08B4F3F0:
|
|
ctx.gpr[31] = (0x08B4F3F8u);
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1936)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0199_entry, 199u, 110u, 0x08B20934u>(ctx, &aot_mem) && ctx.pc == 0x08B4F3F8u) goto L_08B4F3F8;
|
|
return;
|
|
L_08B4F3F8:
|
|
ctx.gpr[4] = (ctx.gpr[2] & 65535u);
|
|
ctx.gpr[4] = (ctx.gpr[4] & 15u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
ctx.gpr[4] = (16608u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (15107u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4719u);
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[13];
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
{ 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[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = ctx.fpr[24] + ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1936), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[26];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[16])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
goto L_08B4F448;
|
|
}
|
|
goto L_08B4F448;
|
|
L_08B4F448:
|
|
ctx.gpr[4] = (48793u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
goto L_08B4F464;
|
|
}
|
|
goto L_08B4F464;
|
|
L_08B4F464:
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(708)));
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1936), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = ctx.fpr[15] - ctx.fpr[20];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[30])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4F49C;
|
|
}
|
|
goto L_08B4F480;
|
|
}
|
|
L_08B4F480:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4F488;
|
|
L_08B4F488:
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[14];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[30])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F488;
|
|
}
|
|
goto L_08B4F49C;
|
|
}
|
|
L_08B4F49C:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (49152u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4F4D0;
|
|
}
|
|
goto L_08B4F4AC;
|
|
}
|
|
L_08B4F4AC:
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4F4B8;
|
|
L_08B4F4B8:
|
|
ctx.fpr[13] = ctx.fpr[13] + ctx.fpr[14];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F4B8;
|
|
}
|
|
goto L_08B4F4CC;
|
|
}
|
|
L_08B4F4CC:
|
|
ctx.gpr[4] = (49152u << 16u);
|
|
goto L_08B4F4D0;
|
|
L_08B4F4D0:
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1924), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] < ctx.fpr[13])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1924)));
|
|
goto L_08B4F4F0;
|
|
}
|
|
goto L_08B4F4F0;
|
|
L_08B4F4F0:
|
|
ctx.gpr[4] = (49024u << 16u);
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[17] <= 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[17]));
|
|
goto L_08B4F508;
|
|
}
|
|
goto L_08B4F508;
|
|
L_08B4F508:
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1924), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(716)));
|
|
ctx.gpr[4] = (17008u << 16u);
|
|
ctx.fpr[18] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[18])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F534;
|
|
}
|
|
goto L_08B4F528;
|
|
}
|
|
L_08B4F528:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(720)));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F548;
|
|
}
|
|
goto L_08B4F534;
|
|
}
|
|
L_08B4F534:
|
|
ctx.gpr[4] = (48972u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 52429u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
if (branch_taken) {
|
|
goto L_08B4F604;
|
|
}
|
|
goto L_08B4F548;
|
|
}
|
|
L_08B4F548:
|
|
ctx.gpr[4] = (16968u << 16u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.set_vfpu_scalar_bits_ct<28u>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vscl_ct<0u, 0u, 28u, 3u>();
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[16] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] + vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(448));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(336));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(344), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 0u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = std::fabs(std::sqrt(vfpu_s[i]));
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(537)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[14];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(537)));
|
|
goto L_08B4F5D8;
|
|
}
|
|
goto L_08B4F5D0;
|
|
L_08B4F5D0:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F604;
|
|
}
|
|
goto L_08B4F5D8;
|
|
}
|
|
L_08B4F5D8:
|
|
ctx.gpr[5] = (48972u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[14])));
|
|
ctx.gpr[4] = (ctx.gpr[5] | 52429u);
|
|
ctx.gpr[5] = (16880u << 16u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[0] = std::bit_cast<float>(ctx.gpr[5]);
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[19]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[14] = ctx.fpr[0] - ctx.fpr[14];
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[14];
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
goto L_08B4F604;
|
|
L_08B4F604:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F708;
|
|
}
|
|
goto L_08B4F618;
|
|
}
|
|
L_08B4F618:
|
|
ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[15];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4F648;
|
|
}
|
|
goto L_08B4F62C;
|
|
}
|
|
L_08B4F62C:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4F634;
|
|
L_08B4F634:
|
|
ctx.fpr[20] = ctx.fpr[20] + ctx.fpr[13];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] < ctx.fpr[28])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F634;
|
|
}
|
|
goto L_08B4F648;
|
|
}
|
|
L_08B4F648:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[30])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
ctx.gpr[4] = (16585u << 16u);
|
|
if (branch_taken) {
|
|
goto L_08B4F674;
|
|
}
|
|
goto L_08B4F658;
|
|
}
|
|
L_08B4F658:
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
goto L_08B4F660;
|
|
L_08B4F660:
|
|
ctx.fpr[20] = ctx.fpr[20] - ctx.fpr[13];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[20] <= ctx.fpr[30])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F660;
|
|
}
|
|
goto L_08B4F674;
|
|
}
|
|
L_08B4F674:
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[20]) ^ 0x80000000u);
|
|
goto L_08B4F688;
|
|
}
|
|
goto L_08B4F688;
|
|
L_08B4F688:
|
|
ctx.gpr[4] = (16113u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 17979u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[14] = ctx.fpr[13] / ctx.fpr[14];
|
|
ctx.fpr[14] = ctx.fpr[16] - ctx.fpr[14];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
goto L_08B4F6AC;
|
|
}
|
|
goto L_08B4F6AC;
|
|
L_08B4F6AC:
|
|
ctx.fpr[15] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
ctx.gpr[4] = (16329u << 16u);
|
|
{ const float fs = ctx.fpr[15]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[14] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[14] = fs * ft; }
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4059u);
|
|
ctx.fpr[19] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[19])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
if (branch_taken) {
|
|
goto L_08B4F708;
|
|
}
|
|
goto L_08B4F6D0;
|
|
}
|
|
L_08B4F6D0:
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F708;
|
|
}
|
|
goto L_08B4F6F8;
|
|
}
|
|
L_08B4F6F8:
|
|
ctx.gpr[4] = (16025u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 39322u);
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
goto L_08B4F708;
|
|
L_08B4F708:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] <= ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = ((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F73C;
|
|
}
|
|
goto L_08B4F718;
|
|
}
|
|
L_08B4F718:
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[14] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[14] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4F730;
|
|
}
|
|
goto L_08B4F730;
|
|
L_08B4F730:
|
|
ctx.fpr[12] = ctx.fpr[16] - ctx.fpr[14];
|
|
{ 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_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4F73C;
|
|
L_08B4F73C:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[22])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F7C4;
|
|
}
|
|
goto L_08B4F750;
|
|
}
|
|
L_08B4F750:
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<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]);
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[18]; 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] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(535))))));
|
|
ctx.fpr[13] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[13] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[13])));
|
|
ctx.fpr[12] = ctx.fpr[13] - ctx.fpr[12];
|
|
ctx.gpr[4] = (16672u << 16u);
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = ctx.fpr[12] / ctx.fpr[14];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[16] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
goto L_08B4F798;
|
|
}
|
|
goto L_08B4F798;
|
|
L_08B4F798:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[22] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
goto L_08B4F7A8;
|
|
}
|
|
goto L_08B4F7A8;
|
|
L_08B4F7A8:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] <= ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
goto L_08B4F7C0;
|
|
}
|
|
goto L_08B4F7C0;
|
|
L_08B4F7C0:
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4F7C4;
|
|
L_08B4F7C4:
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[20] + static_cast<std::uint32_t>(1968)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F828;
|
|
}
|
|
goto L_08B4F7D0;
|
|
}
|
|
L_08B4F7D0:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[17] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(392), std::bit_cast<std::uint32_t>(ctx.fpr[22]));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_value[4]{}; vfpu_value[0u] = 1.0f;
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 1u, 1u, 3u>();
|
|
ctx.execute_vfpu_vcmp_ct<28u, 32u, 1u, 3u>();
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / std::sqrt(vfpu_s[i]);
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vscl_ct<1u, 1u, 28u, 3u>();
|
|
ctx.execute_vfpu_vcmov_ct<1u, 0u, 3u, 0u, false>();
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<1u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[20] + static_cast<std::uint32_t>(320));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
ctx.execute_vfpu_vdot_ct<28u, 0u, 1u, 3u>();
|
|
ctx.gpr[4] = (ctx.vfpu_scalar_bits_ct<28u>());
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (16384u << 16u);
|
|
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_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4F828;
|
|
L_08B4F828:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[16]));
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[20] + static_cast<std::uint32_t>(1928)));
|
|
goto L_08B4F840;
|
|
}
|
|
goto L_08B4F840;
|
|
L_08B4F840:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[17])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[17]));
|
|
goto L_08B4F850;
|
|
}
|
|
goto L_08B4F850;
|
|
L_08B4F850:
|
|
aot_mem.aot_store32(ctx.gpr[20] + static_cast<std::uint32_t>(1928), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(728)));
|
|
ctx.fpr[22] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(732)));
|
|
ctx.fpr[24] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(736)));
|
|
ctx.fpr[26] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(740)));
|
|
ctx.fpr[28] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(744)));
|
|
ctx.fpr[30] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(748)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(752)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(756)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(760)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(764)));
|
|
ctx.gpr[20] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(768)));
|
|
ctx.gpr[21] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(772)));
|
|
ctx.gpr[22] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(776)));
|
|
ctx.gpr[23] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(780)));
|
|
ctx.gpr[30] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(784)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(788)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(800));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4F89C:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-336));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(316), ctx.gpr[17]);
|
|
ctx.gpr[17] = (ctx.gpr[5] | 0u);
|
|
ctx.gpr[5] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast<std::uint32_t>(-7080)));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(308), std::bit_cast<std::uint32_t>(ctx.fpr[20]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(312), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(320), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(324), ctx.gpr[19]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(328), ctx.gpr[31]);
|
|
{ const bool branch_taken = ctx.gpr[5] != 0u;
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4F8FC;
|
|
}
|
|
goto L_08B4F8C8;
|
|
}
|
|
L_08B4F8C8:
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(112), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(116), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(120), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[31] = (0x08B4F8E0u);
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast<std::uint32_t>(7800)));
|
|
if (rt.invoke_chained_direct<&recomp_unit_0087_entry, 87u, 48u, 0x08960450u>(ctx, &aot_mem) && ctx.pc == 0x08B4F8E0u) goto L_08B4F8E0;
|
|
return;
|
|
L_08B4F8E0:
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[2] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[19] = (0u | 0u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F904;
|
|
}
|
|
goto L_08B4F8FC;
|
|
}
|
|
L_08B4F8FC:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4FE9C;
|
|
}
|
|
goto L_08B4F904;
|
|
}
|
|
L_08B4F904:
|
|
{ const bool branch_taken = ctx.gpr[18] != 0u;
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[19]) < 5 ? 1u : 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4F9E8;
|
|
}
|
|
goto L_08B4F90C;
|
|
}
|
|
L_08B4F90C:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F9E8;
|
|
}
|
|
goto L_08B4F914;
|
|
}
|
|
L_08B4F914:
|
|
ctx.gpr[5] = (16180u << 16u);
|
|
ctx.gpr[2] = (17116u << 16u);
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.fpr[16] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[5] = (ctx.gpr[5] | 65012u);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(160)));
|
|
ctx.fpr[14] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[2] = (49024u << 16u);
|
|
ctx.fpr[15] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(164)));
|
|
ctx.fpr[17] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
ctx.gpr[7] = (ctx.gpr[29] + static_cast<std::uint32_t>(144));
|
|
ctx.gpr[8] = (ctx.gpr[29] + static_cast<std::uint32_t>(148));
|
|
ctx.gpr[9] = (ctx.gpr[29] + static_cast<std::uint32_t>(64));
|
|
ctx.gpr[5] = (0u | 1u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4F960u);
|
|
ctx.gpr[11] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0093_entry, 93u, 327u, 0x0897A644u>(ctx, &aot_mem) && ctx.pc == 0x08B4F960u) goto L_08B4F960;
|
|
return;
|
|
L_08B4F960:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F9D8;
|
|
}
|
|
goto L_08B4F968;
|
|
}
|
|
L_08B4F968:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[6] = (ctx.gpr[5] << 3u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[4] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(8))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] & 256u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F9D8;
|
|
}
|
|
goto L_08B4F994;
|
|
}
|
|
L_08B4F994:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
ctx.gpr[2] = (16672u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(176));
|
|
ctx.gpr[5] = (0u | 1u);
|
|
ctx.gpr[7] = (0u | 2u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 1u);
|
|
ctx.gpr[11] = (0u | 1u);
|
|
ctx.gpr[31] = (0x08B4F9C8u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0037_entry, 37u, 365u, 0x0889A004u>(ctx, &aot_mem) && ctx.pc == 0x08B4F9C8u) goto L_08B4F9C8;
|
|
return;
|
|
L_08B4F9C8:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[29] + static_cast<std::uint32_t>(176))))));
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4F9D8;
|
|
}
|
|
goto L_08B4F9D4;
|
|
}
|
|
L_08B4F9D4:
|
|
ctx.gpr[18] = (0u | 1u);
|
|
goto L_08B4F9D8;
|
|
L_08B4F9D8:
|
|
ctx.gpr[4] = (ctx.gpr[19] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[19] = (ctx.gpr[4] << 16u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[19] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(ctx.gpr[19]) >> 16u));
|
|
if (branch_taken) {
|
|
goto L_08B4F904;
|
|
}
|
|
goto L_08B4F9E8;
|
|
}
|
|
L_08B4F9E8:
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[19]) < 5 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FE98;
|
|
}
|
|
goto L_08B4F9F4;
|
|
}
|
|
L_08B4F9F4:
|
|
ctx.gpr[18] = (0u | 0u);
|
|
ctx.gpr[31] = (0x08B4FA00u);
|
|
ctx.gpr[4] = (0u | 1920u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0190_entry, 190u, 732u, 0x08AFF2C4u>(ctx, &aot_mem) && ctx.pc == 0x08B4FA00u) goto L_08B4FA00;
|
|
return;
|
|
L_08B4FA00:
|
|
ctx.gpr[19] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[19] == 0u;
|
|
ctx.gpr[6] = (ctx.gpr[17] | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4FA28;
|
|
}
|
|
goto L_08B4FA0C;
|
|
}
|
|
L_08B4FA0C:
|
|
ctx.gpr[4] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[16] | 0u);
|
|
ctx.gpr[6] = (0u | 1u);
|
|
ctx.gpr[31] = (0x08B4FA20u);
|
|
ctx.gpr[7] = (0u | 1u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0012_entry, 12u, 92u, 0x08834A84u>(ctx, &aot_mem) && ctx.pc == 0x08B4FA20u) goto L_08B4FA20;
|
|
return;
|
|
L_08B4FA20:
|
|
ctx.gpr[18] = (ctx.gpr[19] | 0u);
|
|
ctx.gpr[6] = (ctx.gpr[17] | 0u);
|
|
goto L_08B4FA28;
|
|
L_08B4FA28:
|
|
ctx.gpr[17] = (ctx.gpr[18] | 0u);
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(384));
|
|
ctx.gpr[31] = (0x08B4FA38u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0118_entry, 118u, 187u, 0x089DD29Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4FA38u) goto L_08B4FA38;
|
|
return;
|
|
L_08B4FA38:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(100)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(448));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(192));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[31] = (0x08B4FA6Cu);
|
|
ctx.gpr[6] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0207_entry, 207u, 391u, 0x08B4196Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4FA6Cu) goto L_08B4FA6C;
|
|
return;
|
|
L_08B4FA6C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FA80;
|
|
}
|
|
goto L_08B4FA74;
|
|
}
|
|
L_08B4FA74:
|
|
ctx.gpr[4] = (0u | 9u);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(533), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
if (branch_taken) {
|
|
goto L_08B4FA88;
|
|
}
|
|
goto L_08B4FA80;
|
|
}
|
|
L_08B4FA80:
|
|
ctx.gpr[4] = (0u | 8u);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(533), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
goto L_08B4FA88;
|
|
L_08B4FA88:
|
|
ctx.gpr[4] = (0u | 25u);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(535), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(535))))));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fpr[12] = static_cast<float>(static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(ctx.fpr[12])));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(520), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (0u | 0u);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(534), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (0u | 2u);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(532), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (ctx.gpr[17] + static_cast<std::uint32_t>(448));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<1u, 4u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<0u, 3u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<1u, 3u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 3u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<0u, 3u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(80));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<0u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
{ const float fs = ctx.fpr[12]; const float ft = ctx.fpr[12]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[12] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[12] = fs * ft; }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
{ const float fs = ctx.fpr[13]; 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; }
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
ctx.fpr[12] = std::sqrt(ctx.fpr[12]);
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[12]) || std::isnan(ctx.fpr[14])) && ctx.fpr[12] == ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (!((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
goto L_08B4FB14;
|
|
}
|
|
goto L_08B4FB04;
|
|
L_08B4FB04:
|
|
ctx.gpr[4] = (16256u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
{ const bool branch_taken = 0u == 0u;
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
if (branch_taken) {
|
|
goto L_08B4FB28;
|
|
}
|
|
goto L_08B4FB14;
|
|
}
|
|
L_08B4FB14:
|
|
ctx.fpr[13] = ctx.fpr[13] / ctx.fpr[12];
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
ctx.fpr[12] = ctx.fpr[14] / ctx.fpr[12];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(80), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(84), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
goto L_08B4FB28;
|
|
L_08B4FB28:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(16), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(20), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(24), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(84)));
|
|
aot_mem.aot_store32(ctx.gpr[17] + 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_load32(ctx.gpr[29] + static_cast<std::uint32_t>(80)));
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(4), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(8), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(32), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(36), 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_store32(ctx.gpr[17] + static_cast<std::uint32_t>(40), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(144)));
|
|
ctx.gpr[6] = (ctx.gpr[5] << 3u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[10] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[10] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[10] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[10] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[10] + static_cast<std::uint32_t>(4))))));
|
|
ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[8]);
|
|
ctx.set_vfpu_scalar_bits_ct<33u>(ctx.gpr[9]);
|
|
ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[10]);
|
|
{ float vfpu_value[4]{};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<96u, 1u>(vfpu_value); }
|
|
{ const std::uint16_t vfpu_half = 22080u;
|
|
const std::uint32_t vfpu_sign = static_cast<std::uint32_t>(vfpu_half & 0x8000u) << 16u;
|
|
std::uint32_t vfpu_exponent = (vfpu_half >> 10u) & 0x1Fu;
|
|
std::uint32_t vfpu_mantissa = vfpu_half & 0x03FFu;
|
|
std::uint32_t vfpu_bits = 0u;
|
|
if (vfpu_exponent == 0u) {
|
|
if (vfpu_mantissa == 0u) vfpu_bits = vfpu_sign;
|
|
else {
|
|
std::uint32_t shift = 0u;
|
|
while ((vfpu_mantissa & 0x0400u) == 0u) { vfpu_mantissa <<= 1u; ++shift; }
|
|
vfpu_mantissa &= 0x03FFu;
|
|
vfpu_bits = vfpu_sign | ((113u - shift) << 23u) | (vfpu_mantissa << 13u);
|
|
}
|
|
} else if (vfpu_exponent == 31u) {
|
|
vfpu_bits = vfpu_sign | 0x7F800000u | (vfpu_mantissa << 13u);
|
|
} else {
|
|
vfpu_bits = vfpu_sign | ((vfpu_exponent + 112u) << 23u) | (vfpu_mantissa << 13u);
|
|
}
|
|
const float vfpu_value[1]{std::bit_cast<float>(vfpu_bits)};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_ct<1u, 2u>(vfpu_s);
|
|
ctx.apply_vfpu_source_prefix_ct<2u, 0u>(vfpu_s);
|
|
const float vfpu_scale = std::ldexp(1.0f, -static_cast<int>(3u));
|
|
for (std::uint32_t vfpu_i = 0; vfpu_i < 2u; ++vfpu_i) {
|
|
const auto vfpu_integer = static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(vfpu_s[vfpu_i]));
|
|
vfpu_d[vfpu_i] = static_cast<float>(vfpu_integer) * vfpu_scale;
|
|
}
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<2u, 2u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_ct<32u, 1u>(vfpu_s);
|
|
ctx.apply_vfpu_source_prefix_ct<1u, 0u>(vfpu_s);
|
|
const float vfpu_scale = std::ldexp(1.0f, -static_cast<int>(0u));
|
|
for (std::uint32_t vfpu_i = 0; vfpu_i < 1u; ++vfpu_i) {
|
|
const auto vfpu_integer = static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(vfpu_s[vfpu_i]));
|
|
vfpu_d[vfpu_i] = static_cast<float>(vfpu_integer) * vfpu_scale;
|
|
}
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<66u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vcmp_ct<66u, 96u, 1u, 2u>();
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<66u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<98u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vcmov_ct<66u, 98u, 1u, 0u, false>();
|
|
{ float vfpu_value[4]{1.0f, 1.0f, 1.0f, 1.0f};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<98u, 1u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(192));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<2u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(200)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
ctx.fpr[12] = ctx.fpr[12] - ctx.fpr[14];
|
|
{ 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.gpr[4] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(-16928)));
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(148)));
|
|
ctx.gpr[6] = (ctx.gpr[5] << 3u);
|
|
ctx.gpr[6] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[5] = (ctx.gpr[5] + ctx.gpr[6]);
|
|
ctx.gpr[10] = (ctx.gpr[4] + ctx.gpr[5]);
|
|
ctx.gpr[8] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[10] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[9] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[10] + static_cast<std::uint32_t>(2))))));
|
|
ctx.gpr[10] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[10] + static_cast<std::uint32_t>(4))))));
|
|
ctx.set_vfpu_scalar_bits_ct<1u>(ctx.gpr[8]);
|
|
ctx.set_vfpu_scalar_bits_ct<33u>(ctx.gpr[9]);
|
|
ctx.set_vfpu_scalar_bits_ct<32u>(ctx.gpr[10]);
|
|
{ float vfpu_value[4]{};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<96u, 1u>(vfpu_value); }
|
|
{ const std::uint16_t vfpu_half = 22080u;
|
|
const std::uint32_t vfpu_sign = static_cast<std::uint32_t>(vfpu_half & 0x8000u) << 16u;
|
|
std::uint32_t vfpu_exponent = (vfpu_half >> 10u) & 0x1Fu;
|
|
std::uint32_t vfpu_mantissa = vfpu_half & 0x03FFu;
|
|
std::uint32_t vfpu_bits = 0u;
|
|
if (vfpu_exponent == 0u) {
|
|
if (vfpu_mantissa == 0u) vfpu_bits = vfpu_sign;
|
|
else {
|
|
std::uint32_t shift = 0u;
|
|
while ((vfpu_mantissa & 0x0400u) == 0u) { vfpu_mantissa <<= 1u; ++shift; }
|
|
vfpu_mantissa &= 0x03FFu;
|
|
vfpu_bits = vfpu_sign | ((113u - shift) << 23u) | (vfpu_mantissa << 13u);
|
|
}
|
|
} else if (vfpu_exponent == 31u) {
|
|
vfpu_bits = vfpu_sign | 0x7F800000u | (vfpu_mantissa << 13u);
|
|
} else {
|
|
vfpu_bits = vfpu_sign | ((vfpu_exponent + 112u) << 23u) | (vfpu_mantissa << 13u);
|
|
}
|
|
const float vfpu_value[1]{std::bit_cast<float>(vfpu_bits)};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<64u, 1u>(vfpu_value); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_ct<1u, 2u>(vfpu_s);
|
|
ctx.apply_vfpu_source_prefix_ct<2u, 0u>(vfpu_s);
|
|
const float vfpu_scale = std::ldexp(1.0f, -static_cast<int>(3u));
|
|
for (std::uint32_t vfpu_i = 0; vfpu_i < 2u; ++vfpu_i) {
|
|
const auto vfpu_integer = static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(vfpu_s[vfpu_i]));
|
|
vfpu_d[vfpu_i] = static_cast<float>(vfpu_integer) * vfpu_scale;
|
|
}
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<2u, 2u>(vfpu_d); }
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_ct<32u, 1u>(vfpu_s);
|
|
ctx.apply_vfpu_source_prefix_ct<1u, 0u>(vfpu_s);
|
|
const float vfpu_scale = std::ldexp(1.0f, -static_cast<int>(0u));
|
|
for (std::uint32_t vfpu_i = 0; vfpu_i < 1u; ++vfpu_i) {
|
|
const auto vfpu_integer = static_cast<std::int32_t>(std::bit_cast<std::uint32_t>(vfpu_s[vfpu_i]));
|
|
vfpu_d[vfpu_i] = static_cast<float>(vfpu_integer) * vfpu_scale;
|
|
}
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<66u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vcmp_ct<66u, 96u, 1u, 2u>();
|
|
{ float vfpu_s[4]{}, vfpu_t[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<66u, 1u, 0u>(vfpu_s);
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<64u, 1u, 1u>(vfpu_t);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = vfpu_s[i] - vfpu_t[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<98u, 1u>(vfpu_d); }
|
|
ctx.execute_vfpu_vcmov_ct<66u, 98u, 1u, 0u, false>();
|
|
{ float vfpu_value[4]{1.0f, 1.0f, 1.0f, 1.0f};
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<98u, 1u>(vfpu_value); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(208));
|
|
{ float vfpu_value[4]{}; ctx.read_vfpu_vector_ct<2u, 4u>(vfpu_value);
|
|
const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(216)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(64)));
|
|
{ const float fs = ctx.fpr[13]; const float ft = ctx.fpr[14]; if ((std::isinf(fs) && ft == 0.0f) || (std::isinf(ft) && fs == 0.0f)) ctx.fpr[13] = std::bit_cast<float>(0x7FC00000u); else ctx.fpr[13] = fs * ft; }
|
|
ctx.fpr[12] = ctx.fpr[12] + ctx.fpr[13];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (20078u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 27432u);
|
|
ctx.fpr[20] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
ctx.gpr[5] = (17530u << 16u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[5]);
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(20));
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 1u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.gpr[31] = (0x08B4FC8Cu);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem) && ctx.pc == 0x08B4FC8Cu) goto L_08B4FC8C;
|
|
return;
|
|
L_08B4FC8C:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FC98;
|
|
}
|
|
goto L_08B4FC94;
|
|
}
|
|
L_08B4FC94:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
goto L_08B4FC98;
|
|
L_08B4FC98:
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), 0u);
|
|
ctx.gpr[2] = (50298u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(96));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[2]);
|
|
ctx.gpr[5] = (ctx.gpr[29] + static_cast<std::uint32_t>(32));
|
|
ctx.gpr[6] = (ctx.gpr[29] + static_cast<std::uint32_t>(20));
|
|
ctx.gpr[7] = (0u | 1u);
|
|
ctx.gpr[8] = (0u | 0u);
|
|
ctx.gpr[9] = (0u | 0u);
|
|
ctx.gpr[10] = (0u | 0u);
|
|
ctx.gpr[11] = (0u | 1u);
|
|
ctx.gpr[31] = (0x08B4FCD0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 287u, 0x08891DD4u>(ctx, &aot_mem) && ctx.pc == 0x08B4FCD0u) goto L_08B4FCD0;
|
|
return;
|
|
L_08B4FCD0:
|
|
{ const bool branch_taken = ctx.gpr[2] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FD28;
|
|
}
|
|
goto L_08B4FCD8;
|
|
}
|
|
L_08B4FCD8:
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
ctx.fpr[12] = std::bit_cast<float>(0u);
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
ctx.fpr[13] = ctx.fpr[13] - ctx.fpr[14];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[13] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[13]) ^ 0x80000000u);
|
|
goto L_08B4FCF8;
|
|
}
|
|
goto L_08B4FCF8;
|
|
L_08B4FCF8:
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(104)));
|
|
ctx.fpr[14] = std::bit_cast<float>(0u);
|
|
ctx.fpr[12] = ctx.fpr[20] - ctx.fpr[12];
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[12] < ctx.fpr[14])) ? 0x00800000u : 0u);
|
|
// nop
|
|
if (((ctx.fcr31 & 0x00800000u) != 0u)) {
|
|
ctx.fpr[12] = std::bit_cast<float>(std::bit_cast<std::uint32_t>(ctx.fpr[12]) ^ 0x80000000u);
|
|
goto L_08B4FD14;
|
|
}
|
|
goto L_08B4FD14;
|
|
L_08B4FD14:
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((ctx.fpr[13] < ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FD28;
|
|
}
|
|
goto L_08B4FD24;
|
|
}
|
|
L_08B4FD24:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(40)));
|
|
goto L_08B4FD28;
|
|
L_08B4FD28:
|
|
ctx.gpr[4] = (20078u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] | 27432u);
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.gpr[4]);
|
|
ctx.fcr31 = (ctx.fcr31 & ~0x00800000u) | (((!(std::isnan(ctx.fpr[20]) || std::isnan(ctx.fpr[12])) && ctx.fpr[20] == ctx.fpr[12])) ? 0x00800000u : 0u);
|
|
// nop
|
|
{ const bool branch_taken = !((ctx.fcr31 & 0x00800000u) != 0u);
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FD70;
|
|
}
|
|
goto L_08B4FD44;
|
|
}
|
|
L_08B4FD44:
|
|
{ const bool branch_taken = ctx.gpr[17] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FD68;
|
|
}
|
|
goto L_08B4FD4C;
|
|
}
|
|
L_08B4FD4C:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + static_cast<std::uint32_t>(92)));
|
|
ctx.gpr[5] = (0u | 3u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(24));
|
|
ctx.gpr[6] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int16_t>(aot_mem.aot_load16(ctx.gpr[4] + static_cast<std::uint32_t>(0))))));
|
|
ctx.gpr[7] = (aot_mem.aot_load32(ctx.gpr[4] + static_cast<std::uint32_t>(4)));
|
|
jump_target = ctx.gpr[7];
|
|
ctx.gpr[31] = (0x08B4FD68u);
|
|
ctx.gpr[4] = (ctx.gpr[17] + ctx.gpr[6]);
|
|
ctx.pc = jump_target;
|
|
if (rt.invoke_chained_call(ctx, &aot_mem) && ctx.pc == 0x08B4FD68u) goto L_08B4FD68;
|
|
return;
|
|
L_08B4FD68:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 0u);
|
|
if (branch_taken) {
|
|
goto L_08B4FE9C;
|
|
}
|
|
goto L_08B4FD70;
|
|
}
|
|
L_08B4FD70:
|
|
ctx.gpr[31] = (0x08B4FD78u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0179_entry, 179u, 160u, 0x08AD0AE4u>(ctx, &aot_mem) && ctx.pc == 0x08B4FD78u) goto L_08B4FD78;
|
|
return;
|
|
L_08B4FD78:
|
|
ctx.fpr[12] = ctx.fpr[20] + ctx.fpr[0];
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(104), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(96)));
|
|
ctx.fpr[14] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(100)));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(48), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(52), std::bit_cast<std::uint32_t>(ctx.fpr[14]));
|
|
aot_mem.aot_store32(ctx.gpr[17] + static_cast<std::uint32_t>(56), std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
ctx.gpr[4] = (17008u << 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]);
|
|
{ float vfpu_s[4]{}, vfpu_d[4]{};
|
|
ctx.read_vfpu_vector_with_source_prefix_ct<28u, 1u, 0u>(vfpu_s);
|
|
for (std::uint32_t i = 0; i < 1u; ++i) vfpu_d[i] = 1.0f / vfpu_s[i];
|
|
ctx.write_vfpu_vector_with_destination_prefix_ct<28u, 1u>(vfpu_d); }
|
|
ctx.gpr[4] = (ctx.gpr[29] + static_cast<std::uint32_t>(112));
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.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);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
{ const std::uint32_t vfpu_address = ctx.gpr[4] + static_cast<std::uint32_t>(0);
|
|
float vfpu_value[4]{
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 0u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 4u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 8u)),
|
|
std::bit_cast<float>(aot_mem.aot_load32(vfpu_address + 12u))};
|
|
ctx.write_vfpu_vector_ct<0u, 4u>(vfpu_value); }
|
|
ctx.gpr[5] = (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[5] + static_cast<std::uint32_t>(0);
|
|
aot_mem.aot_store32(vfpu_address + 0u, std::bit_cast<std::uint32_t>(vfpu_value[0]));
|
|
aot_mem.aot_store32(vfpu_address + 4u, std::bit_cast<std::uint32_t>(vfpu_value[1]));
|
|
aot_mem.aot_store32(vfpu_address + 8u, std::bit_cast<std::uint32_t>(vfpu_value[2]));
|
|
aot_mem.aot_store32(vfpu_address + 12u, std::bit_cast<std::uint32_t>(vfpu_value[3])); }
|
|
ctx.gpr[31] = (0x08B4FDD0u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0152_entry, 152u, 538u, 0x08A666C0u>(ctx, &aot_mem) && ctx.pc == 0x08B4FDD0u) goto L_08B4FDD0;
|
|
return;
|
|
L_08B4FDD0:
|
|
ctx.gpr[4] = (aot_mem.aot_load32(ctx.gpr[17] + 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_store32(ctx.gpr[17] + static_cast<std::uint32_t>(72), ctx.gpr[4]);
|
|
ctx.gpr[31] = (0x08B4FDECu);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0035_entry, 35u, 224u, 0x08891A2Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4FDECu) goto L_08B4FDEC;
|
|
return;
|
|
L_08B4FDEC:
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[16]) < 195 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
ctx.gpr[4] = (0u | 227u);
|
|
if (branch_taken) {
|
|
goto L_08B4FE2C;
|
|
}
|
|
goto L_08B4FDF8;
|
|
}
|
|
L_08B4FDF8:
|
|
ctx.gpr[4] = (static_cast<std::int32_t>(ctx.gpr[16]) < 194 ? 1u : 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] != 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FE5C;
|
|
}
|
|
goto L_08B4FE04;
|
|
}
|
|
L_08B4FE04:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(613))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 4u);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(613), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5456)));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[31] = (0x08B4FE24u);
|
|
aot_mem.aot_store32(ctx.gpr[28] + static_cast<std::uint32_t>(5456), ctx.gpr[5]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0194_entry, 194u, 499u, 0x08B0E0BCu>(ctx, &aot_mem) && ctx.pc == 0x08B4FE24u) goto L_08B4FE24;
|
|
return;
|
|
L_08B4FE24:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FE5C;
|
|
}
|
|
goto L_08B4FE2C;
|
|
}
|
|
L_08B4FE2C:
|
|
{ const bool branch_taken = ctx.gpr[16] != ctx.gpr[4];
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FE5C;
|
|
}
|
|
goto L_08B4FE34;
|
|
}
|
|
L_08B4FE34:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(613))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 2u);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(613), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[5] = (aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5452)));
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
ctx.gpr[5] = (ctx.gpr[5] + static_cast<std::uint32_t>(1));
|
|
ctx.gpr[31] = (0x08B4FE54u);
|
|
aot_mem.aot_store32(ctx.gpr[28] + static_cast<std::uint32_t>(5452), ctx.gpr[5]);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0194_entry, 194u, 496u, 0x08B0E08Cu>(ctx, &aot_mem) && ctx.pc == 0x08B4FE54u) goto L_08B4FE54;
|
|
return;
|
|
L_08B4FE54:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FE5C;
|
|
}
|
|
goto L_08B4FE5C;
|
|
}
|
|
L_08B4FE5C:
|
|
ctx.gpr[4] = (static_cast<std::uint32_t>(static_cast<std::int32_t>(static_cast<std::int8_t>(aot_mem.aot_load8(ctx.gpr[17] + static_cast<std::uint32_t>(618))))));
|
|
ctx.gpr[4] = (ctx.gpr[4] | 32u);
|
|
aot_mem.aot_store8(ctx.gpr[17] + static_cast<std::uint32_t>(618), static_cast<std::uint8_t>(ctx.gpr[4]));
|
|
ctx.gpr[4] = (aot_mem.aot_load8(ctx.gpr[28] + static_cast<std::uint32_t>(-7080)));
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FE90;
|
|
}
|
|
goto L_08B4FE74;
|
|
}
|
|
L_08B4FE74:
|
|
ctx.gpr[31] = (0x08B4FE7Cu);
|
|
ctx.gpr[4] = (0u | 408u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0174_entry, 174u, 466u, 0x08ABE278u>(ctx, &aot_mem) && ctx.pc == 0x08B4FE7Cu) goto L_08B4FE7C;
|
|
return;
|
|
L_08B4FE7C:
|
|
ctx.gpr[4] = (ctx.gpr[2] | 0u);
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FE90;
|
|
}
|
|
goto L_08B4FE88;
|
|
}
|
|
L_08B4FE88:
|
|
ctx.gpr[31] = (0x08B4FE90u);
|
|
ctx.gpr[5] = (ctx.gpr[17] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0124_entry, 124u, 655u, 0x089F75BCu>(ctx, &aot_mem) && ctx.pc == 0x08B4FE90u) goto L_08B4FE90;
|
|
return;
|
|
L_08B4FE90:
|
|
{ const bool branch_taken = 0u == 0u;
|
|
ctx.gpr[2] = (0u | 1u);
|
|
if (branch_taken) {
|
|
goto L_08B4FE9C;
|
|
}
|
|
goto L_08B4FE98;
|
|
}
|
|
L_08B4FE98:
|
|
ctx.gpr[2] = (0u | 0u);
|
|
goto L_08B4FE9C;
|
|
L_08B4FE9C:
|
|
ctx.fpr[20] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(308)));
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(312)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(316)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(320)));
|
|
ctx.gpr[19] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(324)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(328)));
|
|
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_08B4FEBC:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4FEC4:
|
|
jump_target = ctx.gpr[31];
|
|
// nop
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4FECC:
|
|
ctx.gpr[2] = (2229u << 16u);
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[2] = (ctx.gpr[2] + static_cast<std::uint32_t>(-308));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4FED8:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B4FEE8u);
|
|
// nop
|
|
goto L_08B4FECC;
|
|
L_08B4FEE8:
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4FEF4:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-16));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(0), ctx.gpr[16]);
|
|
ctx.gpr[16] = (ctx.gpr[5] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(4), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), ctx.gpr[18]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B4FF14u);
|
|
ctx.gpr[18] = (0u | 0u);
|
|
goto L_08B4FECC;
|
|
L_08B4FF14:
|
|
if (ctx.gpr[2] == ctx.gpr[16]) {
|
|
ctx.gpr[18] = (0u | 1u);
|
|
goto L_08B4FF5C;
|
|
}
|
|
goto L_08B4FF1C;
|
|
L_08B4FF1C:
|
|
ctx.gpr[31] = (0x08B4FF24u);
|
|
ctx.gpr[17] = (0u | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0176_entry, 176u, 463u, 0x08AC5950u>(ctx, &aot_mem) && ctx.pc == 0x08B4FF24u) goto L_08B4FF24;
|
|
return;
|
|
L_08B4FF24:
|
|
if (ctx.gpr[2] == ctx.gpr[16]) {
|
|
ctx.gpr[17] = (0u | 1u);
|
|
goto L_08B4FF4C;
|
|
}
|
|
goto L_08B4FF2C;
|
|
L_08B4FF2C:
|
|
ctx.gpr[31] = (0x08B4FF34u);
|
|
// nop
|
|
if (rt.invoke_chained_direct<&recomp_unit_0095_entry, 95u, 115u, 0x08980688u>(ctx, &aot_mem) && ctx.pc == 0x08B4FF34u) goto L_08B4FF34;
|
|
return;
|
|
L_08B4FF34:
|
|
ctx.gpr[4] = (ctx.gpr[2] ^ ctx.gpr[16]);
|
|
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;
|
|
ctx.gpr[4] = (ctx.gpr[17] & 255u);
|
|
if (branch_taken) {
|
|
goto L_08B4FF50;
|
|
}
|
|
goto L_08B4FF48;
|
|
}
|
|
L_08B4FF48:
|
|
ctx.gpr[17] = (0u | 1u);
|
|
goto L_08B4FF4C;
|
|
L_08B4FF4C:
|
|
ctx.gpr[4] = (ctx.gpr[17] & 255u);
|
|
goto L_08B4FF50;
|
|
L_08B4FF50:
|
|
{ const bool branch_taken = ctx.gpr[4] == 0u;
|
|
// nop
|
|
if (branch_taken) {
|
|
goto L_08B4FF5C;
|
|
}
|
|
goto L_08B4FF58;
|
|
}
|
|
L_08B4FF58:
|
|
ctx.gpr[18] = (0u | 1u);
|
|
goto L_08B4FF5C;
|
|
L_08B4FF5C:
|
|
ctx.gpr[2] = (ctx.gpr[18] & 255u);
|
|
ctx.gpr[16] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(0)));
|
|
ctx.gpr[17] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(4)));
|
|
ctx.gpr[18] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(8)));
|
|
ctx.gpr[31] = (aot_mem.aot_load32(ctx.gpr[29] + static_cast<std::uint32_t>(12)));
|
|
jump_target = ctx.gpr[31];
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(16));
|
|
local_pc = jump_target;
|
|
if (++local_transfers < 256u) { entry_id = 0u; goto LOCAL_DISPATCH; }
|
|
ctx.pc = jump_target;
|
|
return;
|
|
L_08B4FF78:
|
|
ctx.gpr[29] = (ctx.gpr[29] + static_cast<std::uint32_t>(-32));
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(8), ctx.gpr[16]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(12), ctx.gpr[17]);
|
|
aot_mem.aot_store32(ctx.gpr[29] + static_cast<std::uint32_t>(16), ctx.gpr[31]);
|
|
ctx.gpr[31] = (0x08B4FF90u);
|
|
ctx.gpr[16] = (ctx.gpr[4] | 0u);
|
|
if (rt.invoke_chained_direct<&recomp_unit_0176_entry, 176u, 472u, 0x08AC59D4u>(ctx, &aot_mem) && ctx.pc == 0x08B4FF90u) goto L_08B4FF90;
|
|
return;
|
|
L_08B4FF90:
|
|
ctx.gpr[4] = (2235u << 16u);
|
|
ctx.gpr[4] = (ctx.gpr[4] + static_cast<std::uint32_t>(-29984));
|
|
ctx.gpr[5] = (0u | 80u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(36), ctx.gpr[4]);
|
|
ctx.gpr[4] = (0u | 20u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(184), ctx.gpr[5]);
|
|
ctx.gpr[5] = (0u | 300u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(188), ctx.gpr[4]);
|
|
ctx.gpr[4] = (0u | 72u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(192), ctx.gpr[5]);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(196), ctx.gpr[4]);
|
|
ctx.fpr[12] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5584)));
|
|
ctx.fpr[12] = std::bit_cast<float>(ctx.fpu_float_to_word_ct<1u>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(204), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(208), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(212), 0u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(216), 0u);
|
|
ctx.gpr[4] = (std::bit_cast<std::uint32_t>(ctx.fpr[12]));
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(200), ctx.gpr[4]);
|
|
ctx.fpr[13] = std::bit_cast<float>(aot_mem.aot_load32(ctx.gpr[28] + static_cast<std::uint32_t>(5580)));
|
|
ctx.gpr[17] = (ctx.gpr[29] + static_cast<std::uint32_t>(4));
|
|
ctx.gpr[5] = (0u | 255u);
|
|
ctx.gpr[4] = (ctx.gpr[17] | 0u);
|
|
aot_mem.aot_store32(ctx.gpr[16] + static_cast<std::uint32_t>(220), std::bit_cast<std::uint32_t>(ctx.fpr[13]));
|
|
ctx.gpr[6] = (0u | 255u);
|
|
ctx.gpr[7] = (0u | 255u);
|
|
ctx.gpr[31] = (0x08B50000u);
|
|
ctx.gpr[8] = (0u | 255u);
|
|
(void)rt.invoke_chained_direct<&recomp_unit_0140_entry, 140u, 317u, 0x08A3550Cu>(ctx, &aot_mem);
|
|
return;
|
|
}
|
|
|
|
void recomp_unit_0210(Runtime &rt, AllegrexContext &ctx) {
|
|
auto aot_mem = rt.memory().aot_fast_view();
|
|
recomp_unit_0210_entry(rt, ctx, 0u, aot_mem);
|
|
}
|
|
|
|
void register_generated_unit_210(Runtime &runtime) {
|
|
runtime.register_generated_unit(210u, 0x08B4C000u, 16384u, &recomp_unit_0210, &recomp_unit_0210_entry);
|
|
runtime.register_function(0x08B4C000u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C00Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C040u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C048u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C054u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C070u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C09Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C0FCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C10Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C11Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C12Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C13Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C144u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C154u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C15Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C170u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C18Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C198u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C19Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C1A4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C1B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C1C0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C1D8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C1F4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C1F8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C210u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C214u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C254u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C29Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C2A4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C2B0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C2E4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C320u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C35Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C368u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C390u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C394u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C3ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C3D4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C3FCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C458u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C464u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C474u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C49Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C4BCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C4CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C4D8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C4E0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C500u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C50Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C51Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C524u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C52Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C53Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C588u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C590u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C5A0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C5ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C5F4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C61Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C62Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C658u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C660u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C66Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C688u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C6B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C714u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C71Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C72Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C734u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C748u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C764u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C76Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C774u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C784u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C790u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C7A4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C7C0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C7C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C7DCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C7E0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C7E4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C818u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C93Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C94Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C9A8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C9B0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C9C8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C9D0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4C9D8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA1Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA24u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA3Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA44u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA4Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA58u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA60u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CA9Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CAA4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB00u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB08u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB20u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB28u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB30u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB7Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB94u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CB9Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CBA4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CBB0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CBB8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CBBCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CBE0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CBFCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CC04u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CC0Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CC14u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CC18u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CD1Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CD78u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CDC4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CDDCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CDE4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CDECu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CDF4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CE10u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CE18u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CE4Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CE54u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CEACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CEB4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CED8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CEF4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CEFCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CF20u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CF38u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CF40u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CFBCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CFC8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CFE4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CFF0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4CFF8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D004u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D00Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D024u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D050u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D05Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D080u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D0ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D0B8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D0C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D0CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D0F0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D0F8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D104u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D130u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D138u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D140u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D14Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D154u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D15Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D184u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D18Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D198u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D1D4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D1DCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D1E4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D1F0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D1F8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D200u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D228u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D230u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D23Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D278u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D280u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D2A4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D2ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D2CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D2ECu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D2F4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D2FCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D31Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D334u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D354u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D36Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D374u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D38Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D3ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D3C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D3CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D3D4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D3DCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D3E4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D3ECu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D408u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D410u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D428u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D430u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D454u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D45Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D464u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D470u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D494u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D49Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4BCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4D4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4DCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4E4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D4ECu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D51Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D5D0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D5E0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D5ECu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D64Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D6ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D6FCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D728u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D750u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D790u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D84Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D85Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D870u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D874u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D88Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D894u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D8A8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D8B0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D8C0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D8CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D910u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D938u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D940u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D948u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D970u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D978u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D990u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4D9D0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DA28u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DA68u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DAB4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DAD4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DAF0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB04u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB10u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB1Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB30u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB3Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB4Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB60u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB64u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB6Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB78u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB90u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DB94u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DBA4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DBA8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DBD0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DBE8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DBF0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC04u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC08u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC48u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC50u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC58u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC60u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC6Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC8Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC94u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DC98u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCA0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCB4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCC0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCC8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCD0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCD4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCDCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCE8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCF0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DCFCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD00u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD14u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD30u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD44u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD50u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD64u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD88u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DD94u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DDA0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DDB8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DDC8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DDDCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DDF0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE00u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE08u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE1Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE30u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE44u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE88u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DE94u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DEA4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DEB8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DED0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DED8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DEECu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DEF4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DF14u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DF18u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DF2Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DF74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DFB0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DFC8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4DFE8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E04Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E054u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E05Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E074u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E088u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E0A0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E0B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E0C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E0D4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E0E8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E0F4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E174u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E17Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E184u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E1A0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E1A4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E1B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E1C0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E1DCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E220u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E22Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E26Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E280u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E290u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E298u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E2A8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E2B8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E2CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E2F0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E348u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E35Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E364u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E370u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E384u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E390u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E3B0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E3B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E3C0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E3D8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E3F4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E404u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E414u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E424u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E428u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E458u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E468u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E470u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E480u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E490u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E49Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E4B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E4C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E4E8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E508u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E5F8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E61Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E6B4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E6B8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E6C8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E6CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E6DCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E6F0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E700u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E714u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E720u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E734u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E744u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E750u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E764u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E780u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E794u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E79Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E808u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E818u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E820u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E830u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E840u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4E84Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EAA4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EADCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EB2Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EB44u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EB54u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EBB8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EBC0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EBC4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EBD0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EBE8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EBF8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC20u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC24u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC3Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC58u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC5Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC6Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC80u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EC9Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4ECA4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4ECC4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4ED6Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4ED88u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EDBCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EDD0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EDD4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EE18u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EE68u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EE74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF14u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF1Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF24u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF48u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF50u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF6Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF70u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF7Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EF88u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EFD8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EFE8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4EFF4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F060u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F068u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F148u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F150u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F158u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F190u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F198u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F1DCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F26Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F274u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F280u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F2B8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F2C0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F304u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F314u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F324u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F338u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F340u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F348u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F358u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F360u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F370u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F384u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F390u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F3C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F3E0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F3F0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F3F8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F448u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F464u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F480u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F488u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F49Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F4ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F4B8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F4CCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F4D0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F4F0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F508u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F528u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F534u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F548u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F5D0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F5D8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F604u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F618u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F62Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F634u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F648u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F658u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F660u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F674u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F688u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F6ACu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F6D0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F6F8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F708u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F718u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F730u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F73Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F750u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F798u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F7A8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F7C0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F7C4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F7D0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F828u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F840u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F850u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F89Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F8C8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F8E0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F8FCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F904u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F90Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F914u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F960u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F968u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F994u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F9C8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F9D4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F9D8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F9E8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4F9F4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA00u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA0Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA20u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA28u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA38u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA6Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA80u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FA88u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FB04u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FB14u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FB28u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FC8Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FC94u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FC98u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FCD0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FCD8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FCF8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD14u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD24u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD28u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD44u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD4Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD68u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD70u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FD78u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FDD0u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FDECu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FDF8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE04u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE24u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE2Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE34u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE54u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE5Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE74u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE7Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE88u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE90u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE98u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FE9Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FEBCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FEC4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FECCu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FED8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FEE8u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FEF4u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF14u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF1Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF24u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF2Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF34u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF48u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF4Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF50u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF58u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF5Cu, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF78u, &recomp_unit_0210, "recomp_unit_0210");
|
|
runtime.register_function(0x08B4FF90u, &recomp_unit_0210, "recomp_unit_0210");
|
|
}
|
|
} // namespace psprecomp
|