@specy/risc-v 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +1051 -1039
  2. package/dist/index.mjs +1051 -1039
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2934,9 +2934,21 @@ var asr_JsRiscV_initialize$exported$12 = (var$1, var$2) => {
2934
2934
  ju_ArrayList_clear(asrrh_Stack_callStack);
2935
2935
  };
2936
2936
  var asr_JsRiscV_getUndoStack$exported$13 = (var$1) => {
2937
- let var$2;
2937
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
2938
2938
  asr_JsRiscV_$callClinit();
2939
- var$1 = ju_Arrays_stream(var$1.$main.$main0.$backStepper.$backSteps.$stack);
2939
+ var$2 = var$1.$main.$main0.$backStepper.$backSteps;
2940
+ var$3 = var$2.$size1;
2941
+ var$4 = $rt_createArray(asrs_BackStepper$BackStep, var$3);
2942
+ var$5 = var$4.data;
2943
+ var$6 = 0;
2944
+ while (var$6 < var$3) {
2945
+ var$7 = var$2.$stack.data;
2946
+ var$8 = var$2.$top - var$6 | 0;
2947
+ var$9 = var$2.$capacity;
2948
+ var$5[var$6] = var$7[(var$8 + var$9 | 0) % var$9 | 0];
2949
+ var$6 = var$6 + 1 | 0;
2950
+ }
2951
+ var$1 = ju_Arrays_stream(var$4);
2940
2952
  var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_0();
2941
2953
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
2942
2954
  var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_1();
@@ -3288,11 +3300,11 @@ var asr_JsRiscV__clinit_ = () => {
3288
3300
  ju_Comparator$NaturalOrder__clinit_();
3289
3301
  asrr_BasicInstructionFormat__clinit_();
3290
3302
  jl_Long__clinit_();
3291
- asrs_Simulator$Reason__clinit_();
3292
- asrrh_Stack__clinit_();
3293
3303
  asrrh_FloatingPointRegisterFile__clinit_();
3294
3304
  asrrh_ControlAndStatusRegisterFile__clinit_();
3295
3305
  asrrh_InterruptController__clinit_();
3306
+ asrrh_Stack__clinit_();
3307
+ asrs_Simulator$Reason__clinit_();
3296
3308
  asra_Tokenizer__clinit_();
3297
3309
  asrs_Simulator__clinit_();
3298
3310
  asra_Directives__clinit_();
@@ -3310,8 +3322,8 @@ var asr_JsRiscV__clinit_ = () => {
3310
3322
  jnc_CoderResult__clinit_();
3311
3323
  jn_ByteOrder__clinit_();
3312
3324
  asrjt_Float32__clinit_();
3313
- jm_BigInteger__clinit_();
3314
3325
  asrjt_Float64__clinit_();
3326
+ jm_BigInteger__clinit_();
3315
3327
  asrjo_Arithmetic__clinit_();
3316
3328
  asrj_RoundingMode__clinit_();
3317
3329
  asrj_Flags__clinit_();
@@ -7153,6 +7165,40 @@ var asrrh_RegisterFile__clinit_ = () => {
7153
7165
  asrrh_RegisterFile_instance = var$1;
7154
7166
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7155
7167
  };
7168
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7169
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7170
+ let var$2, var$3, var$4, var$5;
7171
+ var$1 = var$1;
7172
+ asr_JsRiscV_$callClinit();
7173
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7174
+ var$3 = var$2.data;
7175
+ var$4 = 0;
7176
+ while (var$4 < asra_TokenList_size(var$1)) {
7177
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7178
+ var$4 = var$4 + 1 | 0;
7179
+ }
7180
+ var$5 = new asr_JsRiscVTokenizedLine();
7181
+ var$5.$line0 = var$1.$processedLine;
7182
+ var$5.$tokens0 = var$2;
7183
+ return var$5;
7184
+ };
7185
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7186
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7187
+ asr_JsRiscV_$callClinit();
7188
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7189
+ };
7190
+ function asr_JsRiscVTokenizedLine() {
7191
+ let a = this;
7192
+ jl_Object.call(a);
7193
+ a.$line0 = null;
7194
+ a.$tokens0 = null;
7195
+ }
7196
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7197
+ return $rt_ustr(var$1.$line0);
7198
+ };
7199
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7200
+ return otji_JS_wrap(var$1.$tokens0);
7201
+ };
7156
7202
  function asr_JsProgramStatement() {
7157
7203
  let a = this;
7158
7204
  jl_Object.call(a);
@@ -7230,270 +7276,6 @@ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7230
7276
  var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7231
7277
  return $rt_ustr(var$1.$machineStatement0);
7232
7278
  };
7233
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7234
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7235
- let var$2, var$3, var$4, var$5;
7236
- var$1 = var$1;
7237
- asr_JsRiscV_$callClinit();
7238
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7239
- var$3 = var$2.data;
7240
- var$4 = 0;
7241
- while (var$4 < asra_TokenList_size(var$1)) {
7242
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7243
- var$4 = var$4 + 1 | 0;
7244
- }
7245
- var$5 = new asr_JsRiscVTokenizedLine();
7246
- var$5.$line0 = var$1.$processedLine;
7247
- var$5.$tokens0 = var$2;
7248
- return var$5;
7249
- };
7250
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7251
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7252
- asr_JsRiscV_$callClinit();
7253
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7254
- };
7255
- function asr_JsRiscVTokenizedLine() {
7256
- let a = this;
7257
- jl_Object.call(a);
7258
- a.$line0 = null;
7259
- a.$tokens0 = null;
7260
- }
7261
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7262
- return $rt_ustr(var$1.$line0);
7263
- };
7264
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7265
- return otji_JS_wrap(var$1.$tokens0);
7266
- };
7267
- var ju_Arrays = $rt_classWithoutFields();
7268
- var ju_Arrays_copyOf1 = ($array, $length) => {
7269
- let $result, var$4, $sz, $i;
7270
- $array = $array.data;
7271
- $result = $rt_createCharArray($length);
7272
- var$4 = $result.data;
7273
- $sz = jl_Math_min($length, $array.length);
7274
- $i = 0;
7275
- while ($i < $sz) {
7276
- var$4[$i] = $array[$i];
7277
- $i = $i + 1 | 0;
7278
- }
7279
- return $result;
7280
- };
7281
- var ju_Arrays_copyOf0 = ($array, $length) => {
7282
- let $result, var$4, $sz, $i;
7283
- $array = $array.data;
7284
- $result = $rt_createByteArray($length);
7285
- var$4 = $result.data;
7286
- $sz = jl_Math_min($length, $array.length);
7287
- $i = 0;
7288
- while ($i < $sz) {
7289
- var$4[$i] = $array[$i];
7290
- $i = $i + 1 | 0;
7291
- }
7292
- return $result;
7293
- };
7294
- var ju_Arrays_copyOf2 = ($array, $length) => {
7295
- let $result, var$4, $sz, $i;
7296
- $array = $array.data;
7297
- $result = $rt_createIntArray($length);
7298
- var$4 = $result.data;
7299
- $sz = jl_Math_min($length, $array.length);
7300
- $i = 0;
7301
- while ($i < $sz) {
7302
- var$4[$i] = $array[$i];
7303
- $i = $i + 1 | 0;
7304
- }
7305
- return $result;
7306
- };
7307
- var ju_Arrays_copyOf = ($original, $newLength) => {
7308
- let var$3, $result, $sz, $i;
7309
- var$3 = $original.data;
7310
- $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7311
- $sz = jl_Math_min($newLength, var$3.length);
7312
- $i = 0;
7313
- while ($i < $sz) {
7314
- $result.data[$i] = var$3[$i];
7315
- $i = $i + 1 | 0;
7316
- }
7317
- return $result;
7318
- };
7319
- var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7320
- let var$5, var$6, var$7;
7321
- if ($fromIndex > $toIndex) {
7322
- var$5 = new jl_IllegalArgumentException();
7323
- jl_Throwable__init_(var$5);
7324
- $rt_throw(var$5);
7325
- }
7326
- while ($fromIndex < $toIndex) {
7327
- var$6 = $a.data;
7328
- var$7 = $fromIndex + 1 | 0;
7329
- var$6[$fromIndex] = $val;
7330
- $fromIndex = var$7;
7331
- }
7332
- };
7333
- var ju_Arrays_fill = ($a, $val) => {
7334
- ju_Arrays_fill0($a, 0, $a.data.length, $val);
7335
- };
7336
- var ju_Arrays_sort = ($a) => {
7337
- let var$2, $second, $chunkSize, var$5, $i, var$7, var$8, var$9, $i_0, var$11, var$12, var$13, var$14, var$15, var$16, var$17;
7338
- var$2 = $a.data.length;
7339
- if (!var$2)
7340
- return;
7341
- $second = $rt_createIntArray(var$2);
7342
- $chunkSize = 1;
7343
- var$5 = $a;
7344
- while ($chunkSize < var$2) {
7345
- $i = 0;
7346
- while (true) {
7347
- var$7 = var$5.data;
7348
- var$8 = var$7.length;
7349
- if ($i >= var$8)
7350
- break;
7351
- var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7352
- $i_0 = $i + (2 * $chunkSize | 0) | 0;
7353
- var$8 = jl_Math_min(var$8, $i_0);
7354
- var$11 = $i;
7355
- var$12 = var$9;
7356
- a: {
7357
- b: {
7358
- while ($i != var$9) {
7359
- if (var$12 == var$8)
7360
- break b;
7361
- var$13 = var$7[$i];
7362
- var$14 = var$7[var$12];
7363
- if (var$13 > var$14) {
7364
- var$15 = $second.data;
7365
- var$16 = var$11 + 1 | 0;
7366
- var$15[var$11] = var$14;
7367
- var$12 = var$12 + 1 | 0;
7368
- } else {
7369
- var$15 = $second.data;
7370
- var$16 = var$11 + 1 | 0;
7371
- var$15[var$11] = var$13;
7372
- $i = $i + 1 | 0;
7373
- }
7374
- var$11 = var$16;
7375
- }
7376
- while (true) {
7377
- if (var$12 >= var$8)
7378
- break a;
7379
- var$15 = $second.data;
7380
- var$17 = var$11 + 1 | 0;
7381
- $i = var$12 + 1 | 0;
7382
- var$15[var$11] = var$7[var$12];
7383
- var$11 = var$17;
7384
- var$12 = $i;
7385
- }
7386
- }
7387
- while (true) {
7388
- if ($i >= var$9)
7389
- break a;
7390
- var$15 = $second.data;
7391
- var$17 = var$11 + 1 | 0;
7392
- var$8 = $i + 1 | 0;
7393
- var$15[var$11] = var$7[$i];
7394
- var$11 = var$17;
7395
- $i = var$8;
7396
- }
7397
- }
7398
- $i = $i_0;
7399
- }
7400
- $chunkSize = $chunkSize * 2 | 0;
7401
- var$15 = var$5;
7402
- var$5 = $second;
7403
- $second = var$15;
7404
- }
7405
- c: {
7406
- if (var$5 !== $a) {
7407
- $i_0 = 0;
7408
- while (true) {
7409
- $a = var$5.data;
7410
- if ($i_0 >= $a.length)
7411
- break c;
7412
- $second.data[$i_0] = $a[$i_0];
7413
- $i_0 = $i_0 + 1 | 0;
7414
- }
7415
- }
7416
- }
7417
- };
7418
- var ju_Arrays_binarySearch = ($a, $key) => {
7419
- let var$3, var$4, var$5, var$6, var$7;
7420
- $a = $a.data;
7421
- var$3 = 0;
7422
- var$4 = $a.length;
7423
- if (var$3 > var$4) {
7424
- var$5 = new jl_IllegalArgumentException();
7425
- jl_Throwable__init_(var$5);
7426
- $rt_throw(var$5);
7427
- }
7428
- var$6 = var$4 - 1 | 0;
7429
- a: {
7430
- while (true) {
7431
- if (var$3 > var$6) {
7432
- var$4 = (-var$3 | 0) - 1 | 0;
7433
- break a;
7434
- }
7435
- var$4 = (var$3 + var$6 | 0) / 2 | 0;
7436
- var$7 = $a[var$4];
7437
- if (var$7 == $key)
7438
- break;
7439
- if ($key >= var$7)
7440
- var$3 = var$4 + 1 | 0;
7441
- else
7442
- var$6 = var$4 - 1 | 0;
7443
- }
7444
- }
7445
- return var$4;
7446
- };
7447
- var ju_Arrays_stream = ($array) => {
7448
- let var$2, var$3, var$4;
7449
- var$2 = $array.data;
7450
- var$3 = new jusi_ArrayStreamImpl();
7451
- var$4 = var$2.length;
7452
- var$3.$array6 = $array;
7453
- var$3.$index1 = 0;
7454
- var$3.$end1 = var$4;
7455
- var$3.$size2 = var$4 - 0 | 0;
7456
- return var$3;
7457
- };
7458
- var juf_ToIntFunction = $rt_classWithoutFields(0);
7459
- var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7460
- var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7461
- var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7462
- let var$2, var$3;
7463
- var$1 = var$1;
7464
- var$2 = new asr_JsBackStep();
7465
- var$3 = var$1.$action;
7466
- var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7467
- var$2.$pc2 = var$1.$pc1;
7468
- var$2.$param10 = var$1.$param1;
7469
- var$2.$param20 = Long_lo(var$1.$param2);
7470
- return var$2;
7471
- };
7472
- var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7473
- var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7474
- asr_JsRiscV_$callClinit();
7475
- return $rt_createArray(asr_JsBackStep, var$1);
7476
- };
7477
- function asr_JsBackStep() {
7478
- let a = this;
7479
- jl_Object.call(a);
7480
- a.$action0 = 0;
7481
- a.$pc2 = 0;
7482
- a.$param10 = 0;
7483
- a.$param20 = 0;
7484
- }
7485
- var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7486
- return var$1.$pc2;
7487
- };
7488
- var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7489
- return var$1.$param20;
7490
- };
7491
- var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7492
- return var$1.$action0;
7493
- };
7494
- var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7495
- return var$1.$param10;
7496
- };
7497
7279
  function asr_JsCompilationResult() {
7498
7280
  let a = this;
7499
7281
  jl_Object.call(a);
@@ -7580,6 +7362,236 @@ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7580
7362
  var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7581
7363
  return var$1.$fp;
7582
7364
  };
7365
+ var ju_Arrays = $rt_classWithoutFields();
7366
+ var ju_Arrays_copyOf1 = ($array, $length) => {
7367
+ let $result, var$4, $sz, $i;
7368
+ $array = $array.data;
7369
+ $result = $rt_createCharArray($length);
7370
+ var$4 = $result.data;
7371
+ $sz = jl_Math_min($length, $array.length);
7372
+ $i = 0;
7373
+ while ($i < $sz) {
7374
+ var$4[$i] = $array[$i];
7375
+ $i = $i + 1 | 0;
7376
+ }
7377
+ return $result;
7378
+ };
7379
+ var ju_Arrays_copyOf0 = ($array, $length) => {
7380
+ let $result, var$4, $sz, $i;
7381
+ $array = $array.data;
7382
+ $result = $rt_createByteArray($length);
7383
+ var$4 = $result.data;
7384
+ $sz = jl_Math_min($length, $array.length);
7385
+ $i = 0;
7386
+ while ($i < $sz) {
7387
+ var$4[$i] = $array[$i];
7388
+ $i = $i + 1 | 0;
7389
+ }
7390
+ return $result;
7391
+ };
7392
+ var ju_Arrays_copyOf2 = ($array, $length) => {
7393
+ let $result, var$4, $sz, $i;
7394
+ $array = $array.data;
7395
+ $result = $rt_createIntArray($length);
7396
+ var$4 = $result.data;
7397
+ $sz = jl_Math_min($length, $array.length);
7398
+ $i = 0;
7399
+ while ($i < $sz) {
7400
+ var$4[$i] = $array[$i];
7401
+ $i = $i + 1 | 0;
7402
+ }
7403
+ return $result;
7404
+ };
7405
+ var ju_Arrays_copyOf = ($original, $newLength) => {
7406
+ let var$3, $result, $sz, $i;
7407
+ var$3 = $original.data;
7408
+ $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7409
+ $sz = jl_Math_min($newLength, var$3.length);
7410
+ $i = 0;
7411
+ while ($i < $sz) {
7412
+ $result.data[$i] = var$3[$i];
7413
+ $i = $i + 1 | 0;
7414
+ }
7415
+ return $result;
7416
+ };
7417
+ var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7418
+ let var$5, var$6, var$7;
7419
+ if ($fromIndex > $toIndex) {
7420
+ var$5 = new jl_IllegalArgumentException();
7421
+ jl_Throwable__init_(var$5);
7422
+ $rt_throw(var$5);
7423
+ }
7424
+ while ($fromIndex < $toIndex) {
7425
+ var$6 = $a.data;
7426
+ var$7 = $fromIndex + 1 | 0;
7427
+ var$6[$fromIndex] = $val;
7428
+ $fromIndex = var$7;
7429
+ }
7430
+ };
7431
+ var ju_Arrays_fill = ($a, $val) => {
7432
+ ju_Arrays_fill0($a, 0, $a.data.length, $val);
7433
+ };
7434
+ var ju_Arrays_sort = ($a) => {
7435
+ let var$2, $second, $chunkSize, var$5, $i, var$7, var$8, var$9, $i_0, var$11, var$12, var$13, var$14, var$15, var$16, var$17;
7436
+ var$2 = $a.data.length;
7437
+ if (!var$2)
7438
+ return;
7439
+ $second = $rt_createIntArray(var$2);
7440
+ $chunkSize = 1;
7441
+ var$5 = $a;
7442
+ while ($chunkSize < var$2) {
7443
+ $i = 0;
7444
+ while (true) {
7445
+ var$7 = var$5.data;
7446
+ var$8 = var$7.length;
7447
+ if ($i >= var$8)
7448
+ break;
7449
+ var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7450
+ $i_0 = $i + (2 * $chunkSize | 0) | 0;
7451
+ var$8 = jl_Math_min(var$8, $i_0);
7452
+ var$11 = $i;
7453
+ var$12 = var$9;
7454
+ a: {
7455
+ b: {
7456
+ while ($i != var$9) {
7457
+ if (var$12 == var$8)
7458
+ break b;
7459
+ var$13 = var$7[$i];
7460
+ var$14 = var$7[var$12];
7461
+ if (var$13 > var$14) {
7462
+ var$15 = $second.data;
7463
+ var$16 = var$11 + 1 | 0;
7464
+ var$15[var$11] = var$14;
7465
+ var$12 = var$12 + 1 | 0;
7466
+ } else {
7467
+ var$15 = $second.data;
7468
+ var$16 = var$11 + 1 | 0;
7469
+ var$15[var$11] = var$13;
7470
+ $i = $i + 1 | 0;
7471
+ }
7472
+ var$11 = var$16;
7473
+ }
7474
+ while (true) {
7475
+ if (var$12 >= var$8)
7476
+ break a;
7477
+ var$15 = $second.data;
7478
+ var$17 = var$11 + 1 | 0;
7479
+ $i = var$12 + 1 | 0;
7480
+ var$15[var$11] = var$7[var$12];
7481
+ var$11 = var$17;
7482
+ var$12 = $i;
7483
+ }
7484
+ }
7485
+ while (true) {
7486
+ if ($i >= var$9)
7487
+ break a;
7488
+ var$15 = $second.data;
7489
+ var$17 = var$11 + 1 | 0;
7490
+ var$8 = $i + 1 | 0;
7491
+ var$15[var$11] = var$7[$i];
7492
+ var$11 = var$17;
7493
+ $i = var$8;
7494
+ }
7495
+ }
7496
+ $i = $i_0;
7497
+ }
7498
+ $chunkSize = $chunkSize * 2 | 0;
7499
+ var$15 = var$5;
7500
+ var$5 = $second;
7501
+ $second = var$15;
7502
+ }
7503
+ c: {
7504
+ if (var$5 !== $a) {
7505
+ $i_0 = 0;
7506
+ while (true) {
7507
+ $a = var$5.data;
7508
+ if ($i_0 >= $a.length)
7509
+ break c;
7510
+ $second.data[$i_0] = $a[$i_0];
7511
+ $i_0 = $i_0 + 1 | 0;
7512
+ }
7513
+ }
7514
+ }
7515
+ };
7516
+ var ju_Arrays_binarySearch = ($a, $key) => {
7517
+ let var$3, var$4, var$5, var$6, var$7;
7518
+ $a = $a.data;
7519
+ var$3 = 0;
7520
+ var$4 = $a.length;
7521
+ if (var$3 > var$4) {
7522
+ var$5 = new jl_IllegalArgumentException();
7523
+ jl_Throwable__init_(var$5);
7524
+ $rt_throw(var$5);
7525
+ }
7526
+ var$6 = var$4 - 1 | 0;
7527
+ a: {
7528
+ while (true) {
7529
+ if (var$3 > var$6) {
7530
+ var$4 = (-var$3 | 0) - 1 | 0;
7531
+ break a;
7532
+ }
7533
+ var$4 = (var$3 + var$6 | 0) / 2 | 0;
7534
+ var$7 = $a[var$4];
7535
+ if (var$7 == $key)
7536
+ break;
7537
+ if ($key >= var$7)
7538
+ var$3 = var$4 + 1 | 0;
7539
+ else
7540
+ var$6 = var$4 - 1 | 0;
7541
+ }
7542
+ }
7543
+ return var$4;
7544
+ };
7545
+ var ju_Arrays_stream = ($array) => {
7546
+ let var$2, var$3, var$4;
7547
+ var$2 = $array.data;
7548
+ var$3 = new jusi_ArrayStreamImpl();
7549
+ var$4 = var$2.length;
7550
+ var$3.$array6 = $array;
7551
+ var$3.$index1 = 0;
7552
+ var$3.$end1 = var$4;
7553
+ var$3.$size2 = var$4 - 0 | 0;
7554
+ return var$3;
7555
+ };
7556
+ var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7557
+ var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7558
+ let var$2, var$3;
7559
+ var$1 = var$1;
7560
+ var$2 = new asr_JsBackStep();
7561
+ var$3 = var$1.$action;
7562
+ var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7563
+ var$2.$pc2 = var$1.$pc1;
7564
+ var$2.$param10 = var$1.$param1;
7565
+ var$2.$param20 = Long_lo(var$1.$param2);
7566
+ return var$2;
7567
+ };
7568
+ var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7569
+ var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7570
+ asr_JsRiscV_$callClinit();
7571
+ return $rt_createArray(asr_JsBackStep, var$1);
7572
+ };
7573
+ function asr_JsBackStep() {
7574
+ let a = this;
7575
+ jl_Object.call(a);
7576
+ a.$action0 = 0;
7577
+ a.$pc2 = 0;
7578
+ a.$param10 = 0;
7579
+ a.$param20 = 0;
7580
+ }
7581
+ var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7582
+ return var$1.$pc2;
7583
+ };
7584
+ var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7585
+ return var$1.$param20;
7586
+ };
7587
+ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7588
+ return var$1.$action0;
7589
+ };
7590
+ var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7591
+ return var$1.$param10;
7592
+ };
7593
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
7594
+ var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7583
7595
  var ju_Map$Entry = $rt_classWithoutFields(0);
7584
7596
  function ju_MapEntry() {
7585
7597
  let a = this;
@@ -8235,104 +8247,29 @@ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8235
8247
  if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8236
8248
  asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8237
8249
  };
8238
- var jl_AutoCloseable = $rt_classWithoutFields(0);
8239
- var jus_BaseStream = $rt_classWithoutFields(0);
8240
- var jus_Stream = $rt_classWithoutFields(0);
8241
- var jusi_SimpleStreamImpl = $rt_classWithoutFields();
8242
- var jusi_SimpleStreamImpl_filter = ($this, $predicate) => {
8243
- let var$2;
8244
- var$2 = new jusi_FilteringStreamImpl();
8245
- jusi_WrappingStreamImpl__init_(var$2, $this);
8246
- var$2.$filter0 = $predicate;
8247
- return var$2;
8248
- };
8249
- var jusi_SimpleStreamImpl_map = ($this, $mapper) => {
8250
- let var$2;
8251
- var$2 = new jusi_MappingStreamImpl();
8252
- jusi_WrappingStreamImpl__init_(var$2, $this);
8253
- var$2.$mapper = $mapper;
8254
- return var$2;
8255
- };
8256
- var jusi_SimpleStreamImpl_toArray = ($this, $generator) => {
8257
- let var$2, $estimatedSize, $array, $consumer, var$6, $list, $i;
8258
- var$2 = $this;
8259
- $estimatedSize = var$2.$sourceStream.$estimateSize();
8260
- if ($estimatedSize >= 0) {
8261
- $array = $generator.$apply($estimatedSize);
8262
- $consumer = new jusi_SimpleStreamImpl$ArrayFillingConsumer();
8263
- $consumer.$array4 = $array;
8264
- while (jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8265
- }
8266
- var$6 = $array.data;
8267
- $estimatedSize = $consumer.$index3;
8268
- if ($estimatedSize < var$6.length)
8269
- $array = ju_Arrays_copyOf($array, $estimatedSize);
8270
- return $array;
8271
- }
8272
- $list = ju_ArrayList__init_();
8273
- while (true) {
8274
- ju_Objects_requireNonNull($list);
8275
- $consumer = new jusi_SimpleStreamImpl$toArray$lambda$_21_0();
8276
- $consumer.$_02 = $list;
8277
- if (!jusi_WrappingStreamImpl_next(var$2, $consumer))
8278
- break;
8279
- }
8280
- $list = $list;
8281
- $array = $generator.$apply($list.$size0);
8282
- $i = 0;
8283
- while (true) {
8284
- var$6 = $array.data;
8285
- if ($i >= var$6.length)
8286
- break;
8287
- var$6[$i] = ju_ArrayList_get($list, $i);
8288
- $i = $i + 1 | 0;
8289
- }
8290
- return $array;
8291
- };
8292
- var jusi_SimpleStreamImpl_findFirst = ($this) => {
8293
- let $consumer, var$2, var$3;
8294
- $consumer = new jusi_FindFirstConsumer();
8295
- var$2 = $this;
8296
- while ($consumer.$result === null && jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8297
- }
8298
- $consumer = $consumer.$result;
8299
- if ($consumer !== null)
8300
- var$3 = ju_Optional__init_(ju_Objects_requireNonNull($consumer));
8301
- else {
8302
- if (ju_Optional_emptyInstance === null)
8303
- ju_Optional_emptyInstance = ju_Optional__init_(null);
8304
- var$3 = ju_Optional_emptyInstance;
8305
- }
8306
- return var$3;
8307
- };
8308
- function jusi_ArrayStreamImpl() {
8309
- let a = this;
8310
- jusi_SimpleStreamImpl.call(a);
8311
- a.$array6 = null;
8312
- a.$index1 = 0;
8313
- a.$end1 = 0;
8314
- a.$size2 = 0;
8250
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
8251
+ jl_Object.call(this);
8252
+ this.$_06 = null;
8315
8253
  }
8316
- var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8254
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8317
8255
  let var$2, var$3;
8318
- a: {
8319
- while (true) {
8320
- var$2 = $this.$index1;
8321
- if (var$2 >= $this.$end1)
8322
- break a;
8323
- var$3 = $this.$array6.data;
8324
- $this.$index1 = var$2 + 1 | 0;
8325
- if ($consumer.$test(var$3[var$2]))
8326
- continue;
8327
- else
8328
- break;
8329
- }
8330
- }
8331
- return $this.$index1 >= $this.$end1 ? 0 : 1;
8332
- };
8333
- var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8334
- return $this.$size2;
8256
+ var$1 = var$1;
8257
+ var$2 = var$0.$_06;
8258
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
8259
+ var$3.$this$016 = var$2;
8260
+ var$3.$isWarning0 = var$1.$isWarning;
8261
+ var$3.$message2 = var$1.$message0;
8262
+ var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8263
+ var$3.$filename2 = var$1.$filename0;
8264
+ var$3.$lineNumber0 = var$1.$line;
8265
+ var$3.$columnNumber = var$1.$position2;
8266
+ return var$3;
8335
8267
  };
8268
+ var juf_Supplier = $rt_classWithoutFields(0);
8269
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8270
+ var juf_BiConsumer = $rt_classWithoutFields(0);
8271
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8272
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8336
8273
  function asrs_BackStepper$BackstepStack() {
8337
8274
  let a = this;
8338
8275
  jl_Object.call(a);
@@ -8435,29 +8372,104 @@ var asrs_BackStepper$BackstepStack_peek = ($this) => {
8435
8372
  jl_Object_monitorExitSync($this);
8436
8373
  }
8437
8374
  };
8438
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
8439
- jl_Object.call(this);
8440
- this.$_06 = null;
8375
+ var jl_AutoCloseable = $rt_classWithoutFields(0);
8376
+ var jus_BaseStream = $rt_classWithoutFields(0);
8377
+ var jus_Stream = $rt_classWithoutFields(0);
8378
+ var jusi_SimpleStreamImpl = $rt_classWithoutFields();
8379
+ var jusi_SimpleStreamImpl_filter = ($this, $predicate) => {
8380
+ let var$2;
8381
+ var$2 = new jusi_FilteringStreamImpl();
8382
+ jusi_WrappingStreamImpl__init_(var$2, $this);
8383
+ var$2.$filter0 = $predicate;
8384
+ return var$2;
8385
+ };
8386
+ var jusi_SimpleStreamImpl_map = ($this, $mapper) => {
8387
+ let var$2;
8388
+ var$2 = new jusi_MappingStreamImpl();
8389
+ jusi_WrappingStreamImpl__init_(var$2, $this);
8390
+ var$2.$mapper = $mapper;
8391
+ return var$2;
8392
+ };
8393
+ var jusi_SimpleStreamImpl_toArray = ($this, $generator) => {
8394
+ let var$2, $estimatedSize, $array, $consumer, var$6, $list, $i;
8395
+ var$2 = $this;
8396
+ $estimatedSize = var$2.$sourceStream.$estimateSize();
8397
+ if ($estimatedSize >= 0) {
8398
+ $array = $generator.$apply($estimatedSize);
8399
+ $consumer = new jusi_SimpleStreamImpl$ArrayFillingConsumer();
8400
+ $consumer.$array4 = $array;
8401
+ while (jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8402
+ }
8403
+ var$6 = $array.data;
8404
+ $estimatedSize = $consumer.$index3;
8405
+ if ($estimatedSize < var$6.length)
8406
+ $array = ju_Arrays_copyOf($array, $estimatedSize);
8407
+ return $array;
8408
+ }
8409
+ $list = ju_ArrayList__init_();
8410
+ while (true) {
8411
+ ju_Objects_requireNonNull($list);
8412
+ $consumer = new jusi_SimpleStreamImpl$toArray$lambda$_21_0();
8413
+ $consumer.$_02 = $list;
8414
+ if (!jusi_WrappingStreamImpl_next(var$2, $consumer))
8415
+ break;
8416
+ }
8417
+ $list = $list;
8418
+ $array = $generator.$apply($list.$size0);
8419
+ $i = 0;
8420
+ while (true) {
8421
+ var$6 = $array.data;
8422
+ if ($i >= var$6.length)
8423
+ break;
8424
+ var$6[$i] = ju_ArrayList_get($list, $i);
8425
+ $i = $i + 1 | 0;
8426
+ }
8427
+ return $array;
8428
+ };
8429
+ var jusi_SimpleStreamImpl_findFirst = ($this) => {
8430
+ let $consumer, var$2, var$3;
8431
+ $consumer = new jusi_FindFirstConsumer();
8432
+ var$2 = $this;
8433
+ while ($consumer.$result === null && jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8434
+ }
8435
+ $consumer = $consumer.$result;
8436
+ if ($consumer !== null)
8437
+ var$3 = ju_Optional__init_(ju_Objects_requireNonNull($consumer));
8438
+ else {
8439
+ if (ju_Optional_emptyInstance === null)
8440
+ ju_Optional_emptyInstance = ju_Optional__init_(null);
8441
+ var$3 = ju_Optional_emptyInstance;
8442
+ }
8443
+ return var$3;
8444
+ };
8445
+ function jusi_ArrayStreamImpl() {
8446
+ let a = this;
8447
+ jusi_SimpleStreamImpl.call(a);
8448
+ a.$array6 = null;
8449
+ a.$index1 = 0;
8450
+ a.$end1 = 0;
8451
+ a.$size2 = 0;
8441
8452
  }
8442
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8453
+ var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8443
8454
  let var$2, var$3;
8444
- var$1 = var$1;
8445
- var$2 = var$0.$_06;
8446
- var$3 = new asr_JsCompilationResult$JsCompilationError();
8447
- var$3.$this$016 = var$2;
8448
- var$3.$isWarning0 = var$1.$isWarning;
8449
- var$3.$message2 = var$1.$message0;
8450
- var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8451
- var$3.$filename2 = var$1.$filename0;
8452
- var$3.$lineNumber0 = var$1.$line;
8453
- var$3.$columnNumber = var$1.$position2;
8454
- return var$3;
8455
+ a: {
8456
+ while (true) {
8457
+ var$2 = $this.$index1;
8458
+ if (var$2 >= $this.$end1)
8459
+ break a;
8460
+ var$3 = $this.$array6.data;
8461
+ $this.$index1 = var$2 + 1 | 0;
8462
+ if ($consumer.$test(var$3[var$2]))
8463
+ continue;
8464
+ else
8465
+ break;
8466
+ }
8467
+ }
8468
+ return $this.$index1 >= $this.$end1 ? 0 : 1;
8469
+ };
8470
+ var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8471
+ return $this.$size2;
8455
8472
  };
8456
- var juf_Supplier = $rt_classWithoutFields(0);
8457
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8458
- var juf_BiConsumer = $rt_classWithoutFields(0);
8459
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8460
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8461
8473
  var jl_Math = $rt_classWithoutFields();
8462
8474
  var jl_Math_pow = ($x, $y) => {
8463
8475
  return jl_Math_powImpl($x, $y);
@@ -13467,22 +13479,6 @@ var jusi_StreamOverSpliterator_next = ($this, $consumer) => {
13467
13479
  var jusi_StreamOverSpliterator_estimateSize = ($this) => {
13468
13480
  return Long_lo(Long_fromInt($this.$spliterator0.$collection.$size()));
13469
13481
  };
13470
- var jus_IntStream = $rt_classWithoutFields(0);
13471
- var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13472
- function jusi_MappingToIntStreamImpl() {
13473
- let a = this;
13474
- jusi_SimpleIntStreamImpl.call(a);
13475
- a.$source1 = null;
13476
- a.$mapper0 = null;
13477
- }
13478
- var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13479
- let var$2, var$3;
13480
- var$2 = $this.$source1;
13481
- var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13482
- var$3.$_09 = $this;
13483
- var$3.$_13 = $consumer;
13484
- return jusi_ArrayStreamImpl_next(var$2, var$3);
13485
- };
13486
13482
  function jusi_WrappingStreamImpl() {
13487
13483
  jusi_SimpleStreamImpl.call(this);
13488
13484
  this.$sourceStream = null;
@@ -13504,6 +13500,22 @@ var jusi_MappingStreamImpl_wrap = ($this, $consumer) => {
13504
13500
  var$2.$_10 = $consumer;
13505
13501
  return var$2;
13506
13502
  };
13503
+ var jus_IntStream = $rt_classWithoutFields(0);
13504
+ var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13505
+ function jusi_MappingToIntStreamImpl() {
13506
+ let a = this;
13507
+ jusi_SimpleIntStreamImpl.call(a);
13508
+ a.$source1 = null;
13509
+ a.$mapper0 = null;
13510
+ }
13511
+ var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13512
+ let var$2, var$3;
13513
+ var$2 = $this.$source1;
13514
+ var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13515
+ var$3.$_09 = $this;
13516
+ var$3.$_13 = $consumer;
13517
+ return jusi_ArrayStreamImpl_next(var$2, var$3);
13518
+ };
13507
13519
  var asru_Binary = $rt_classWithoutFields();
13508
13520
  var asru_Binary_chars = null;
13509
13521
  var asru_Binary_intToBinaryString = ($value, $length) => {
@@ -13761,89 +13773,6 @@ var ju_AbstractList$1_next = ($this) => {
13761
13773
  $this.$index4 = var$3 + 1 | 0;
13762
13774
  return var$2.$get0(var$3);
13763
13775
  };
13764
- var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
13765
- var asrs_Simulator$Reason_BREAKPOINT = null;
13766
- var asrs_Simulator$Reason_EXCEPTION = null;
13767
- var asrs_Simulator$Reason_MAX_STEPS = null;
13768
- var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
13769
- var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
13770
- var asrs_Simulator$Reason_PAUSE = null;
13771
- var asrs_Simulator$Reason_STOP = null;
13772
- var asrs_Simulator$Reason_$VALUES = null;
13773
- var asrs_Simulator$Reason_values = () => {
13774
- return asrs_Simulator$Reason_$VALUES.$clone0();
13775
- };
13776
- var asrs_Simulator$Reason__clinit_ = () => {
13777
- let var$1, var$2, var$3;
13778
- var$1 = new asrs_Simulator$Reason();
13779
- jl_Enum__init_(var$1, $rt_s(1084), 0);
13780
- asrs_Simulator$Reason_BREAKPOINT = var$1;
13781
- var$1 = new asrs_Simulator$Reason();
13782
- jl_Enum__init_(var$1, $rt_s(1085), 1);
13783
- asrs_Simulator$Reason_EXCEPTION = var$1;
13784
- var$1 = new asrs_Simulator$Reason();
13785
- jl_Enum__init_(var$1, $rt_s(1086), 2);
13786
- asrs_Simulator$Reason_MAX_STEPS = var$1;
13787
- var$1 = new asrs_Simulator$Reason();
13788
- jl_Enum__init_(var$1, $rt_s(1087), 3);
13789
- asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
13790
- var$1 = new asrs_Simulator$Reason();
13791
- jl_Enum__init_(var$1, $rt_s(1088), 4);
13792
- asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
13793
- var$1 = new asrs_Simulator$Reason();
13794
- jl_Enum__init_(var$1, $rt_s(1089), 5);
13795
- asrs_Simulator$Reason_PAUSE = var$1;
13796
- var$1 = new asrs_Simulator$Reason();
13797
- jl_Enum__init_(var$1, $rt_s(1090), 6);
13798
- asrs_Simulator$Reason_STOP = var$1;
13799
- var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
13800
- var$3 = var$2.data;
13801
- var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
13802
- var$3[1] = asrs_Simulator$Reason_EXCEPTION;
13803
- var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
13804
- var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
13805
- var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
13806
- var$3[5] = asrs_Simulator$Reason_PAUSE;
13807
- var$3[6] = var$1;
13808
- asrs_Simulator$Reason_$VALUES = var$2;
13809
- };
13810
- var jlr_Array = $rt_classWithoutFields();
13811
- var jlr_Array_getLength = (var$1) => {
13812
- if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
13813
- $rt_throw(jl_IllegalArgumentException__init_());
13814
- }
13815
- return var$1.data.length;
13816
- };
13817
- var jlr_Array_newInstance = (var$1, $length) => {
13818
- if (var$1 === null) {
13819
- var$1 = new jl_NullPointerException();
13820
- jl_Throwable__init_(var$1);
13821
- $rt_throw(var$1);
13822
- }
13823
- if (var$1 === $rt_cls($rt_voidcls)) {
13824
- var$1 = new jl_IllegalArgumentException();
13825
- jl_Throwable__init_(var$1);
13826
- $rt_throw(var$1);
13827
- }
13828
- if ($length >= 0)
13829
- return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
13830
- var$1 = new jl_NegativeArraySizeException();
13831
- jl_Throwable__init_(var$1);
13832
- $rt_throw(var$1);
13833
- };
13834
- var jlr_Array_newInstanceImpl = (var$1, var$2) => {
13835
- if (var$1.$meta.primitive) {
13836
- switch (var$1) {
13837
- }
13838
- ;
13839
- }
13840
- return $rt_createArray(var$1, var$2);
13841
- };
13842
- var asrrh_Stack = $rt_classWithoutFields();
13843
- var asrrh_Stack_callStack = null;
13844
- var asrrh_Stack__clinit_ = () => {
13845
- asrrh_Stack_callStack = ju_ArrayList__init_();
13846
- };
13847
13776
  var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
13848
13777
  var asrrh_FloatingPointRegisterFile_instance = null;
13849
13778
  var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
@@ -13888,38 +13817,38 @@ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
13888
13817
  var$1 = new asrrh_RegisterBlock();
13889
13818
  var$2 = $rt_createArray(asrrh_Register, 32);
13890
13819
  var$3 = var$2.data;
13891
- var$3[0] = asrrh_Register__init_($rt_s(1091), 0, Long_ZERO);
13892
- var$3[1] = asrrh_Register__init_($rt_s(1092), 1, Long_ZERO);
13893
- var$3[2] = asrrh_Register__init_($rt_s(1093), 2, Long_ZERO);
13894
- var$3[3] = asrrh_Register__init_($rt_s(1094), 3, Long_ZERO);
13895
- var$3[4] = asrrh_Register__init_($rt_s(1095), 4, Long_ZERO);
13896
- var$3[5] = asrrh_Register__init_($rt_s(1096), 5, Long_ZERO);
13897
- var$3[6] = asrrh_Register__init_($rt_s(1097), 6, Long_ZERO);
13898
- var$3[7] = asrrh_Register__init_($rt_s(1098), 7, Long_ZERO);
13899
- var$3[8] = asrrh_Register__init_($rt_s(1099), 8, Long_ZERO);
13900
- var$3[9] = asrrh_Register__init_($rt_s(1100), 9, Long_ZERO);
13820
+ var$3[0] = asrrh_Register__init_($rt_s(1084), 0, Long_ZERO);
13821
+ var$3[1] = asrrh_Register__init_($rt_s(1085), 1, Long_ZERO);
13822
+ var$3[2] = asrrh_Register__init_($rt_s(1086), 2, Long_ZERO);
13823
+ var$3[3] = asrrh_Register__init_($rt_s(1087), 3, Long_ZERO);
13824
+ var$3[4] = asrrh_Register__init_($rt_s(1088), 4, Long_ZERO);
13825
+ var$3[5] = asrrh_Register__init_($rt_s(1089), 5, Long_ZERO);
13826
+ var$3[6] = asrrh_Register__init_($rt_s(1090), 6, Long_ZERO);
13827
+ var$3[7] = asrrh_Register__init_($rt_s(1091), 7, Long_ZERO);
13828
+ var$3[8] = asrrh_Register__init_($rt_s(1092), 8, Long_ZERO);
13829
+ var$3[9] = asrrh_Register__init_($rt_s(1093), 9, Long_ZERO);
13901
13830
  var$3[10] = asrrh_Register__init_($rt_s(1043), 10, Long_ZERO);
13902
13831
  var$3[11] = asrrh_Register__init_($rt_s(1037), 11, Long_ZERO);
13903
- var$3[12] = asrrh_Register__init_($rt_s(1101), 12, Long_ZERO);
13904
- var$3[13] = asrrh_Register__init_($rt_s(1102), 13, Long_ZERO);
13905
- var$3[14] = asrrh_Register__init_($rt_s(1103), 14, Long_ZERO);
13906
- var$3[15] = asrrh_Register__init_($rt_s(1104), 15, Long_ZERO);
13907
- var$3[16] = asrrh_Register__init_($rt_s(1105), 16, Long_ZERO);
13908
- var$3[17] = asrrh_Register__init_($rt_s(1106), 17, Long_ZERO);
13909
- var$3[18] = asrrh_Register__init_($rt_s(1107), 18, Long_ZERO);
13910
- var$3[19] = asrrh_Register__init_($rt_s(1108), 19, Long_ZERO);
13911
- var$3[20] = asrrh_Register__init_($rt_s(1109), 20, Long_ZERO);
13912
- var$3[21] = asrrh_Register__init_($rt_s(1110), 21, Long_ZERO);
13913
- var$3[22] = asrrh_Register__init_($rt_s(1111), 22, Long_ZERO);
13914
- var$3[23] = asrrh_Register__init_($rt_s(1112), 23, Long_ZERO);
13915
- var$3[24] = asrrh_Register__init_($rt_s(1113), 24, Long_ZERO);
13916
- var$3[25] = asrrh_Register__init_($rt_s(1114), 25, Long_ZERO);
13917
- var$3[26] = asrrh_Register__init_($rt_s(1115), 26, Long_ZERO);
13918
- var$3[27] = asrrh_Register__init_($rt_s(1116), 27, Long_ZERO);
13919
- var$3[28] = asrrh_Register__init_($rt_s(1117), 28, Long_ZERO);
13920
- var$3[29] = asrrh_Register__init_($rt_s(1118), 29, Long_ZERO);
13921
- var$3[30] = asrrh_Register__init_($rt_s(1119), 30, Long_ZERO);
13922
- var$3[31] = asrrh_Register__init_($rt_s(1120), 31, Long_ZERO);
13832
+ var$3[12] = asrrh_Register__init_($rt_s(1094), 12, Long_ZERO);
13833
+ var$3[13] = asrrh_Register__init_($rt_s(1095), 13, Long_ZERO);
13834
+ var$3[14] = asrrh_Register__init_($rt_s(1096), 14, Long_ZERO);
13835
+ var$3[15] = asrrh_Register__init_($rt_s(1097), 15, Long_ZERO);
13836
+ var$3[16] = asrrh_Register__init_($rt_s(1098), 16, Long_ZERO);
13837
+ var$3[17] = asrrh_Register__init_($rt_s(1099), 17, Long_ZERO);
13838
+ var$3[18] = asrrh_Register__init_($rt_s(1100), 18, Long_ZERO);
13839
+ var$3[19] = asrrh_Register__init_($rt_s(1101), 19, Long_ZERO);
13840
+ var$3[20] = asrrh_Register__init_($rt_s(1102), 20, Long_ZERO);
13841
+ var$3[21] = asrrh_Register__init_($rt_s(1103), 21, Long_ZERO);
13842
+ var$3[22] = asrrh_Register__init_($rt_s(1104), 22, Long_ZERO);
13843
+ var$3[23] = asrrh_Register__init_($rt_s(1105), 23, Long_ZERO);
13844
+ var$3[24] = asrrh_Register__init_($rt_s(1106), 24, Long_ZERO);
13845
+ var$3[25] = asrrh_Register__init_($rt_s(1107), 25, Long_ZERO);
13846
+ var$3[26] = asrrh_Register__init_($rt_s(1108), 26, Long_ZERO);
13847
+ var$3[27] = asrrh_Register__init_($rt_s(1109), 27, Long_ZERO);
13848
+ var$3[28] = asrrh_Register__init_($rt_s(1110), 28, Long_ZERO);
13849
+ var$3[29] = asrrh_Register__init_($rt_s(1111), 29, Long_ZERO);
13850
+ var$3[30] = asrrh_Register__init_($rt_s(1112), 30, Long_ZERO);
13851
+ var$3[31] = asrrh_Register__init_($rt_s(1113), 31, Long_ZERO);
13923
13852
  asrrh_RegisterBlock__init_(var$1, 102, var$2);
13924
13853
  asrrh_FloatingPointRegisterFile_instance = var$1;
13925
13854
  };
@@ -13987,25 +13916,25 @@ var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
13987
13916
  var$2[0] = asrrh_MaskedRegister__init_($rt_s(675), 0, Long_ZERO, Long_fromInt(-18));
13988
13917
  var$2[1] = null;
13989
13918
  var$2[2] = null;
13990
- var$2[3] = asrrh_MaskedRegister__init_($rt_s(1121), 3, Long_ZERO, Long_fromInt(-256));
13991
- var$2[4] = asrrh_Register__init_($rt_s(1122), 4, Long_ZERO);
13992
- var$2[5] = asrrh_Register__init_($rt_s(1123), 5, Long_ZERO);
13993
- var$2[6] = asrrh_Register__init_($rt_s(1124), 64, Long_ZERO);
13919
+ var$2[3] = asrrh_MaskedRegister__init_($rt_s(1114), 3, Long_ZERO, Long_fromInt(-256));
13920
+ var$2[4] = asrrh_Register__init_($rt_s(1115), 4, Long_ZERO);
13921
+ var$2[5] = asrrh_Register__init_($rt_s(1116), 5, Long_ZERO);
13922
+ var$2[6] = asrrh_Register__init_($rt_s(1117), 64, Long_ZERO);
13994
13923
  var$2[7] = asrrh_Register__init_($rt_s(676), 65, Long_ZERO);
13995
- var$2[8] = asrrh_Register__init_($rt_s(1125), 66, Long_ZERO);
13996
- var$2[9] = asrrh_Register__init_($rt_s(1126), 67, Long_ZERO);
13997
- var$2[10] = asrrh_Register__init_($rt_s(1127), 68, Long_ZERO);
13998
- var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1128), 3072, 0);
13999
- var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1129), 3073, 0);
14000
- var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1130), 3074, 0);
13924
+ var$2[8] = asrrh_Register__init_($rt_s(1118), 66, Long_ZERO);
13925
+ var$2[9] = asrrh_Register__init_($rt_s(1119), 67, Long_ZERO);
13926
+ var$2[10] = asrrh_Register__init_($rt_s(1120), 68, Long_ZERO);
13927
+ var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1121), 3072, 0);
13928
+ var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1122), 3073, 0);
13929
+ var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1123), 3074, 0);
14001
13930
  var$2[14] = null;
14002
13931
  var$2[15] = null;
14003
13932
  var$2[16] = null;
14004
13933
  var$2[1] = asrrh_LinkedRegister__init_($rt_s(442), 1, var$2[3], Long_fromInt(31));
14005
13934
  var$2[2] = asrrh_LinkedRegister__init_($rt_s(443), 2, var$2[3], Long_fromInt(224));
14006
- var$2[14] = asrrh_LinkedRegister__init_($rt_s(1131), 3200, var$2[11], Long_create(0, 4294967295));
14007
- var$2[15] = asrrh_LinkedRegister__init_($rt_s(1132), 3201, var$2[12], Long_create(0, 4294967295));
14008
- var$2[16] = asrrh_LinkedRegister__init_($rt_s(1133), 3202, var$2[13], Long_create(0, 4294967295));
13935
+ var$2[14] = asrrh_LinkedRegister__init_($rt_s(1124), 3200, var$2[11], Long_create(0, 4294967295));
13936
+ var$2[15] = asrrh_LinkedRegister__init_($rt_s(1125), 3201, var$2[12], Long_create(0, 4294967295));
13937
+ var$2[16] = asrrh_LinkedRegister__init_($rt_s(1126), 3202, var$2[13], Long_create(0, 4294967295));
14009
13938
  asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
14010
13939
  };
14011
13940
  var asrrh_InterruptController = $rt_classWithoutFields();
@@ -14111,7 +14040,7 @@ var asrrh_InterruptController_claimExternal = () => {
14111
14040
  a: {
14112
14041
  try {
14113
14042
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14114
- $rt_throw(jl_AssertionError__init_($rt_s(1134)));
14043
+ $rt_throw(jl_AssertionError__init_($rt_s(1127)));
14115
14044
  asrrh_InterruptController_externalPending = 0;
14116
14045
  var$2 = asrrh_InterruptController_externalValue;
14117
14046
  jl_Object_monitorExitSync(var$1);
@@ -14132,7 +14061,7 @@ var asrrh_InterruptController_claimTimer = () => {
14132
14061
  a: {
14133
14062
  try {
14134
14063
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14135
- $rt_throw(jl_AssertionError__init_($rt_s(1135)));
14064
+ $rt_throw(jl_AssertionError__init_($rt_s(1128)));
14136
14065
  asrrh_InterruptController_timerPending = 0;
14137
14066
  var$2 = asrrh_InterruptController_timerValue;
14138
14067
  jl_Object_monitorExitSync(var$1);
@@ -14154,9 +14083,9 @@ var asrrh_InterruptController_claimTrap = () => {
14154
14083
  try {
14155
14084
  var$2 = asrrh_InterruptController_$assertionsDisabled;
14156
14085
  if (!var$2 && !asrrh_InterruptController_trapPending)
14157
- $rt_throw(jl_AssertionError__init_($rt_s(1136)));
14086
+ $rt_throw(jl_AssertionError__init_($rt_s(1129)));
14158
14087
  if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14159
- $rt_throw(jl_AssertionError__init_($rt_s(1137)));
14088
+ $rt_throw(jl_AssertionError__init_($rt_s(1130)));
14160
14089
  asrrh_InterruptController_trapPending = 0;
14161
14090
  var$3 = asrrh_InterruptController_trapSE;
14162
14091
  jl_Object_monitorExitSync(var$1);
@@ -14177,6 +14106,89 @@ var asrrh_InterruptController__clinit_ = () => {
14177
14106
  asrrh_InterruptController_timerPending = 0;
14178
14107
  asrrh_InterruptController_trapPending = 0;
14179
14108
  };
14109
+ var asrrh_Stack = $rt_classWithoutFields();
14110
+ var asrrh_Stack_callStack = null;
14111
+ var asrrh_Stack__clinit_ = () => {
14112
+ asrrh_Stack_callStack = ju_ArrayList__init_();
14113
+ };
14114
+ var jlr_Array = $rt_classWithoutFields();
14115
+ var jlr_Array_getLength = (var$1) => {
14116
+ if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
14117
+ $rt_throw(jl_IllegalArgumentException__init_());
14118
+ }
14119
+ return var$1.data.length;
14120
+ };
14121
+ var jlr_Array_newInstance = (var$1, $length) => {
14122
+ if (var$1 === null) {
14123
+ var$1 = new jl_NullPointerException();
14124
+ jl_Throwable__init_(var$1);
14125
+ $rt_throw(var$1);
14126
+ }
14127
+ if (var$1 === $rt_cls($rt_voidcls)) {
14128
+ var$1 = new jl_IllegalArgumentException();
14129
+ jl_Throwable__init_(var$1);
14130
+ $rt_throw(var$1);
14131
+ }
14132
+ if ($length >= 0)
14133
+ return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
14134
+ var$1 = new jl_NegativeArraySizeException();
14135
+ jl_Throwable__init_(var$1);
14136
+ $rt_throw(var$1);
14137
+ };
14138
+ var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14139
+ if (var$1.$meta.primitive) {
14140
+ switch (var$1) {
14141
+ }
14142
+ ;
14143
+ }
14144
+ return $rt_createArray(var$1, var$2);
14145
+ };
14146
+ var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14147
+ var asrs_Simulator$Reason_BREAKPOINT = null;
14148
+ var asrs_Simulator$Reason_EXCEPTION = null;
14149
+ var asrs_Simulator$Reason_MAX_STEPS = null;
14150
+ var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
14151
+ var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
14152
+ var asrs_Simulator$Reason_PAUSE = null;
14153
+ var asrs_Simulator$Reason_STOP = null;
14154
+ var asrs_Simulator$Reason_$VALUES = null;
14155
+ var asrs_Simulator$Reason_values = () => {
14156
+ return asrs_Simulator$Reason_$VALUES.$clone0();
14157
+ };
14158
+ var asrs_Simulator$Reason__clinit_ = () => {
14159
+ let var$1, var$2, var$3;
14160
+ var$1 = new asrs_Simulator$Reason();
14161
+ jl_Enum__init_(var$1, $rt_s(1131), 0);
14162
+ asrs_Simulator$Reason_BREAKPOINT = var$1;
14163
+ var$1 = new asrs_Simulator$Reason();
14164
+ jl_Enum__init_(var$1, $rt_s(1132), 1);
14165
+ asrs_Simulator$Reason_EXCEPTION = var$1;
14166
+ var$1 = new asrs_Simulator$Reason();
14167
+ jl_Enum__init_(var$1, $rt_s(1133), 2);
14168
+ asrs_Simulator$Reason_MAX_STEPS = var$1;
14169
+ var$1 = new asrs_Simulator$Reason();
14170
+ jl_Enum__init_(var$1, $rt_s(1134), 3);
14171
+ asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14172
+ var$1 = new asrs_Simulator$Reason();
14173
+ jl_Enum__init_(var$1, $rt_s(1135), 4);
14174
+ asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14175
+ var$1 = new asrs_Simulator$Reason();
14176
+ jl_Enum__init_(var$1, $rt_s(1136), 5);
14177
+ asrs_Simulator$Reason_PAUSE = var$1;
14178
+ var$1 = new asrs_Simulator$Reason();
14179
+ jl_Enum__init_(var$1, $rt_s(1137), 6);
14180
+ asrs_Simulator$Reason_STOP = var$1;
14181
+ var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14182
+ var$3 = var$2.data;
14183
+ var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
14184
+ var$3[1] = asrs_Simulator$Reason_EXCEPTION;
14185
+ var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
14186
+ var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
14187
+ var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
14188
+ var$3[5] = asrs_Simulator$Reason_PAUSE;
14189
+ var$3[6] = var$1;
14190
+ asrs_Simulator$Reason_$VALUES = var$2;
14191
+ };
14180
14192
  function jur_Pattern() {
14181
14193
  let a = this;
14182
14194
  jl_Object.call(a);
@@ -23907,10 +23919,10 @@ var asrs_Simulator$SimThread_handleTrap = ($this, $se, $pc) => {
23907
23919
  if (!$utvec && $se.$cause < 0)
23908
23920
  $rt_throw(jl_AssertionError__init_($rt_s(1501)));
23909
23921
  a: {
23910
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($se.$cause));
23922
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($se.$cause));
23911
23923
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(676), Long_fromInt($pc));
23912
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($se.$value5));
23913
- $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123)) & -4;
23924
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1119), Long_fromInt($se.$value5));
23925
+ $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1116)) & -4;
23914
23926
  $exceptionHandler = null;
23915
23927
  if (!(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(675)) & 1))
23916
23928
  var$6 = $exceptionHandler;
@@ -23946,12 +23958,12 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
23946
23958
  if (!$mode && !($cause & -2147483648))
23947
23959
  $rt_throw(jl_AssertionError__init_($rt_s(1502)));
23948
23960
  $code = $cause & 2147483647;
23949
- if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(675)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122)) & 1 << $code))
23961
+ if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(675)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1115)) & 1 << $code))
23950
23962
  $rt_throw(jl_AssertionError__init_($rt_s(1503)));
23951
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($cause));
23963
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($cause));
23952
23964
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(676), Long_fromInt($pc));
23953
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($value));
23954
- $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123));
23965
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1119), Long_fromInt($value));
23966
+ $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1116));
23955
23967
  $base = $utvec & -4;
23956
23968
  if (($utvec & 3) == 2)
23957
23969
  $base = $base + (4 * $code | 0) | 0;
@@ -24031,8 +24043,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24031
24043
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24032
24044
  return;
24033
24045
  }
24034
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24035
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24046
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24047
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24036
24048
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24037
24049
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24038
24050
  $se = asrrh_InterruptController_lock;
@@ -24223,8 +24235,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24223
24235
  jl_Object_monitorExit($se);
24224
24236
  $rt_throw($instruction);
24225
24237
  }
24226
- if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127))))
24227
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1127), $cycle);
24238
+ if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120))))
24239
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1120), $cycle);
24228
24240
  var$14 = $this.$maxSteps;
24229
24241
  if (var$14 > 0) {
24230
24242
  $steps = $steps + 1 | 0;
@@ -24345,12 +24357,12 @@ var asrs_Simulator$SimThread_run = ($this) => {
24345
24357
  $waiting = 1;
24346
24358
  }
24347
24359
  v: {
24348
- $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1128));
24349
- $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1130));
24360
+ $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24361
+ $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1123));
24350
24362
  $time = jl_System_currentTimeMillis();
24351
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1128), Long_add($cycle, Long_fromInt(1)));
24352
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1130), Long_add($instret, Long_fromInt(1)));
24353
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1129), $time);
24363
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1121), Long_add($cycle, Long_fromInt(1)));
24364
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1123), Long_add($instret, Long_fromInt(1)));
24365
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1122), $time);
24354
24366
  if (!$ebreak) {
24355
24367
  var$1 = $this.$breakPoints;
24356
24368
  if (var$1 === null)
@@ -24373,8 +24385,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24373
24385
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24374
24386
  return;
24375
24387
  }
24376
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24377
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24388
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24389
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24378
24390
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24379
24391
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24380
24392
  $se = asrrh_InterruptController_lock;
@@ -24410,8 +24422,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24410
24422
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24411
24423
  return;
24412
24424
  }
24413
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24414
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24425
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24426
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24415
24427
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24416
24428
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24417
24429
  $se = asrrh_InterruptController_lock;
@@ -24449,8 +24461,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24449
24461
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24450
24462
  return;
24451
24463
  }
24452
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24453
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24464
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24465
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24454
24466
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24455
24467
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24456
24468
  $se = asrrh_InterruptController_lock;
@@ -31157,6 +31169,108 @@ var asrj_Environment__init_ = () => {
31157
31169
  asrj_Environment__init_0(var_0);
31158
31170
  return var_0;
31159
31171
  };
31172
+ var asrjo_Comparisons = $rt_classWithoutFields();
31173
+ var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31174
+ if ($a.$isZero()) {
31175
+ if ($b.$isZero())
31176
+ return 0;
31177
+ return !$b.$isSignMinus() ? -1 : 1;
31178
+ }
31179
+ if ($b.$isZero())
31180
+ return !$a.$isSignMinus() ? 1 : -1;
31181
+ if (!$a.$isInfinite()) {
31182
+ if (!$b.$isInfinite())
31183
+ return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
31184
+ return !$b.$isSignMinus() ? -1 : 1;
31185
+ }
31186
+ if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
31187
+ return 0;
31188
+ return !$a.$isSignMinus() ? -1 : 1;
31189
+ };
31190
+ var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
31191
+ if ($a.$isSignMinus() != $b.$isSignMinus()) {
31192
+ if ($a.$isSignMinus())
31193
+ $b = $a;
31194
+ return $b;
31195
+ }
31196
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31197
+ if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
31198
+ return $b;
31199
+ return $a;
31200
+ }
31201
+ if ($a.$isInfinite() != $a.$isSignMinus())
31202
+ return $b;
31203
+ return $a;
31204
+ };
31205
+ var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
31206
+ let var$4;
31207
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31208
+ var$4 = $env.$flags;
31209
+ $env = asrj_Flags_invalid;
31210
+ ju_GenericEnumSet_add(var$4, $env);
31211
+ }
31212
+ if ($a.$isNaN()) {
31213
+ if ($b.$isNaN())
31214
+ $b = $b.$NaN();
31215
+ } else
31216
+ $b = !$b.$isNaN() ? null : $a;
31217
+ return $b;
31218
+ };
31219
+ var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
31220
+ let $tmp_0;
31221
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31222
+ if ($tmp_0 !== null)
31223
+ return $tmp_0;
31224
+ return asrjo_Comparisons_nonNaNmin($a, $b);
31225
+ };
31226
+ var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
31227
+ let $tmp_0;
31228
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31229
+ if ($tmp_0 !== null)
31230
+ return $tmp_0;
31231
+ if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
31232
+ $a = $b;
31233
+ return $a;
31234
+ };
31235
+ var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
31236
+ let var$4;
31237
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31238
+ var$4 = $env.$flags;
31239
+ $env = asrj_Flags_invalid;
31240
+ ju_GenericEnumSet_add(var$4, $env);
31241
+ }
31242
+ if (!$a.$isNaN() && !$b.$isNaN())
31243
+ return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
31244
+ return 0;
31245
+ };
31246
+ var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
31247
+ let var$4, var$5;
31248
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
31249
+ var$4 = $env.$flags;
31250
+ var$5 = asrj_Flags_invalid;
31251
+ ju_GenericEnumSet_add(var$4, var$5);
31252
+ }
31253
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31254
+ var$5 = $env.$flags;
31255
+ $env = asrj_Flags_invalid;
31256
+ ju_GenericEnumSet_add(var$5, $env);
31257
+ }
31258
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
31259
+ };
31260
+ var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
31261
+ let var$4, var$5;
31262
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
31263
+ var$4 = $env.$flags;
31264
+ var$5 = asrj_Flags_invalid;
31265
+ ju_GenericEnumSet_add(var$4, var$5);
31266
+ }
31267
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31268
+ var$5 = $env.$flags;
31269
+ $env = asrj_Flags_invalid;
31270
+ ju_GenericEnumSet_add(var$5, $env);
31271
+ }
31272
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
31273
+ };
31160
31274
  var asrjt_Floating = $rt_classWithoutFields();
31161
31275
  var asrjt_Floating_isFinite = ($this) => {
31162
31276
  return !$this.$isZero() && !$this.$isNormal() && !$this.$isSubnormal() ? 0 : 1;
@@ -31377,107 +31491,221 @@ var asrjt_Float32__clinit_ = () => {
31377
31491
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
31378
31492
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
31379
31493
  };
31380
- var asrjo_Comparisons = $rt_classWithoutFields();
31381
- var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31382
- if ($a.$isZero()) {
31383
- if ($b.$isZero())
31384
- return 0;
31385
- return !$b.$isSignMinus() ? -1 : 1;
31386
- }
31387
- if ($b.$isZero())
31388
- return !$a.$isSignMinus() ? 1 : -1;
31389
- if (!$a.$isInfinite()) {
31390
- if (!$b.$isInfinite())
31391
- return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
31392
- return !$b.$isSignMinus() ? -1 : 1;
31393
- }
31394
- if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
31494
+ function asrjt_Float64() {
31495
+ asrjt_Floating.call(this);
31496
+ this.$bits1 = Long_ZERO;
31497
+ }
31498
+ var asrjt_Float64_Zero = null;
31499
+ var asrjt_Float64_NegativeZero = null;
31500
+ var asrjt_Float64_NaN = null;
31501
+ var asrjt_Float64_Infinity = null;
31502
+ var asrjt_Float64_NegativeInfinity = null;
31503
+ var asrjt_Float64_$assertionsDisabled = 0;
31504
+ var asrjt_Float64__init_1 = ($this, $bits) => {
31505
+ $this.$bits1 = $bits;
31506
+ };
31507
+ var asrjt_Float64__init_ = (var_0) => {
31508
+ let var_1 = new asrjt_Float64();
31509
+ asrjt_Float64__init_1(var_1, var_0);
31510
+ return var_1;
31511
+ };
31512
+ var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31513
+ asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31514
+ };
31515
+ var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31516
+ let var_3 = new asrjt_Float64();
31517
+ asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31518
+ return var_3;
31519
+ };
31520
+ var asrjt_Float64_exponent = ($this) => {
31521
+ return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31522
+ };
31523
+ var asrjt_Float64_negate = ($this) => {
31524
+ return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31525
+ };
31526
+ var asrjt_Float64_isSignMinus = ($this) => {
31527
+ return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31528
+ };
31529
+ var asrjt_Float64_isInfinite = ($this) => {
31530
+ return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31531
+ };
31532
+ var asrjt_Float64_isNormal = ($this) => {
31533
+ return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31534
+ };
31535
+ var asrjt_Float64_isSubnormal = ($this) => {
31536
+ return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31537
+ };
31538
+ var asrjt_Float64_isNaN = ($this) => {
31539
+ return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31540
+ };
31541
+ var asrjt_Float64_isSignalling = ($this) => {
31542
+ if (!asrjt_Float64_isNaN($this))
31395
31543
  return 0;
31396
- return !$a.$isSignMinus() ? -1 : 1;
31544
+ return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31397
31545
  };
31398
- var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
31399
- if ($a.$isSignMinus() != $b.$isSignMinus()) {
31400
- if ($a.$isSignMinus())
31401
- $b = $a;
31402
- return $b;
31546
+ var asrjt_Float64_isZero = ($this) => {
31547
+ let var$1;
31548
+ var$1 = $this.$bits1;
31549
+ return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31550
+ };
31551
+ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31552
+ let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31553
+ if (asrji_ExactFloat_isZero($ef))
31554
+ return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31555
+ $ef = asrji_ExactFloat_normalize($ef);
31556
+ $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31557
+ if ($normalizedExponent > -1022) {
31558
+ if ($normalizedExponent > 1024) {
31559
+ $mainBits = $env.$flags;
31560
+ $roundedBits = asrj_Flags_overflow;
31561
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31562
+ $mainBits = $env.$flags;
31563
+ $roundedBits = asrj_Flags_inexact;
31564
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31565
+ asrjt_Float64$1_$callClinit();
31566
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31567
+ case 1:
31568
+ break;
31569
+ case 2:
31570
+ case 3:
31571
+ $normalizedExponent = $ef.$sign;
31572
+ if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31573
+ return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31574
+ return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31575
+ case 4:
31576
+ case 5:
31577
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31578
+ default:
31579
+ if (!asrjt_Float64_$assertionsDisabled)
31580
+ $rt_throw(jl_AssertionError__init_($rt_s(1617)));
31581
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31582
+ }
31583
+ return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31584
+ }
31585
+ if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31586
+ if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31587
+ $rt_throw(jl_AssertionError__init_($rt_s(1618)));
31588
+ $a = new asrjt_Float64();
31589
+ $normalizedExponent = $ef.$sign;
31590
+ $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31591
+ $ef = $ef.$significand;
31592
+ asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
31593
+ return $a;
31594
+ }
31595
+ $mainBits = $env.$flags;
31596
+ $roundedBits = asrj_Flags_inexact;
31597
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31598
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31599
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31600
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31601
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31602
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
31603
+ $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31604
+ } else {
31605
+ if ($ef.$exponent0 > -1075) {
31606
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31607
+ $rt_throw(jl_AssertionError__init_($rt_s(1619)));
31608
+ return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31609
+ }
31610
+ $mainBits = $env.$flags;
31611
+ $roundedBits = asrj_Flags_inexact;
31612
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31613
+ $mainBits = $env.$flags;
31614
+ $roundedBits = asrj_Flags_underflow;
31615
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31616
+ $bitsToRound = -1074 - $ef.$exponent0 | 0;
31617
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31618
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31619
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31620
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31621
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31622
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31623
+ else {
31624
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31625
+ $rt_throw(jl_AssertionError__init_1());
31626
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31627
+ }
31403
31628
  }
31404
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
31405
- if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
31406
- return $b;
31407
- return $a;
31629
+ asrjt_Float64$1_$callClinit();
31630
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31631
+ case 1:
31632
+ break;
31633
+ case 2:
31634
+ case 3:
31635
+ if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31636
+ return $towardsZero;
31637
+ return $awayZero;
31638
+ default:
31639
+ $ef = jm_BigInteger_ONE;
31640
+ $normalizedExponent = $bitsToRound - 1 | 0;
31641
+ if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
31642
+ if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
31643
+ return $towardsZero;
31644
+ return $awayZero;
31645
+ }
31646
+ if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
31647
+ return $towardsZero;
31648
+ return $awayZero;
31408
31649
  }
31409
- if ($a.$isInfinite() != $a.$isSignMinus())
31410
- return $b;
31411
- return $a;
31650
+ return $towardsZero;
31412
31651
  };
31413
- var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
31414
- let var$4;
31415
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31416
- var$4 = $env.$flags;
31417
- $env = asrj_Flags_invalid;
31418
- ju_GenericEnumSet_add(var$4, $env);
31652
+ var asrjt_Float64_toExactFloat = ($this) => {
31653
+ let $sign, $exponent, $significand;
31654
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
31655
+ $rt_throw(jl_AssertionError__init_($rt_s(1620)));
31656
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
31657
+ $rt_throw(jl_AssertionError__init_($rt_s(1621)));
31658
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
31659
+ $rt_throw(jl_AssertionError__init_($rt_s(1622)));
31660
+ $sign = asrjt_Float64_isSignMinus($this);
31661
+ if (asrjt_Float64_isZero($this)) {
31662
+ $exponent = 0;
31663
+ $significand = jm_BigInteger_ZERO;
31664
+ } else if (asrjt_Float64_isNormal($this)) {
31665
+ $exponent = asrjt_Float64_exponent($this) - 52 | 0;
31666
+ $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
31667
+ } else {
31668
+ if (!asrjt_Float64_isSubnormal($this)) {
31669
+ if (asrjt_Float64_$assertionsDisabled)
31670
+ return null;
31671
+ $rt_throw(jl_AssertionError__init_($rt_s(1623)));
31672
+ }
31673
+ $exponent = asrjt_Float64_exponent($this) - 51 | 0;
31674
+ $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
31419
31675
  }
31420
- if ($a.$isNaN()) {
31421
- if ($b.$isNaN())
31422
- $b = $b.$NaN();
31423
- } else
31424
- $b = !$b.$isNaN() ? null : $a;
31425
- return $b;
31676
+ return asrji_ExactFloat__init_($sign, $exponent, $significand);
31426
31677
  };
31427
- var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
31428
- let $tmp_0;
31429
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31430
- if ($tmp_0 !== null)
31431
- return $tmp_0;
31432
- return asrjo_Comparisons_nonNaNmin($a, $b);
31678
+ var asrjt_Float64_maxPrecision = ($this) => {
31679
+ return 60;
31433
31680
  };
31434
- var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
31435
- let $tmp_0;
31436
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31437
- if ($tmp_0 !== null)
31438
- return $tmp_0;
31439
- if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
31440
- $a = $b;
31441
- return $a;
31681
+ var asrjt_Float64_negate0 = ($this) => {
31682
+ return asrjt_Float64_negate($this);
31442
31683
  };
31443
- var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
31444
- let var$4;
31445
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31446
- var$4 = $env.$flags;
31447
- $env = asrj_Flags_invalid;
31448
- ju_GenericEnumSet_add(var$4, $env);
31449
- }
31450
- if (!$a.$isNaN() && !$b.$isNaN())
31451
- return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
31452
- return 0;
31684
+ var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
31685
+ return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
31453
31686
  };
31454
- var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
31455
- let var$4, var$5;
31456
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
31457
- var$4 = $env.$flags;
31458
- var$5 = asrj_Flags_invalid;
31459
- ju_GenericEnumSet_add(var$4, var$5);
31460
- }
31461
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31462
- var$5 = $env.$flags;
31463
- $env = asrj_Flags_invalid;
31464
- ju_GenericEnumSet_add(var$5, $env);
31465
- }
31466
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
31687
+ var asrjt_Float64_NegativeInfinity0 = ($this) => {
31688
+ return asrjt_Float64_NegativeInfinity;
31467
31689
  };
31468
- var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
31469
- let var$4, var$5;
31470
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
31471
- var$4 = $env.$flags;
31472
- var$5 = asrj_Flags_invalid;
31473
- ju_GenericEnumSet_add(var$4, var$5);
31474
- }
31475
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31476
- var$5 = $env.$flags;
31477
- $env = asrj_Flags_invalid;
31478
- ju_GenericEnumSet_add(var$5, $env);
31479
- }
31480
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
31690
+ var asrjt_Float64_Infinity0 = ($this) => {
31691
+ return asrjt_Float64_Infinity;
31692
+ };
31693
+ var asrjt_Float64_NegativeZero0 = ($this) => {
31694
+ return asrjt_Float64_NegativeZero;
31695
+ };
31696
+ var asrjt_Float64_Zero0 = ($this) => {
31697
+ return asrjt_Float64_Zero;
31698
+ };
31699
+ var asrjt_Float64_NaN0 = ($this) => {
31700
+ return asrjt_Float64_NaN;
31701
+ };
31702
+ var asrjt_Float64__clinit_ = () => {
31703
+ asrjt_Float64_$assertionsDisabled = 0;
31704
+ asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
31705
+ asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
31706
+ asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
31707
+ asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31708
+ asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31481
31709
  };
31482
31710
  function jm_BigInteger() {
31483
31711
  let a = this;
@@ -31956,222 +32184,6 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31956
32184
  var$4.$significand = $i;
31957
32185
  return $helper.$fromExactFloat(var$4, $env);
31958
32186
  };
31959
- function asrjt_Float64() {
31960
- asrjt_Floating.call(this);
31961
- this.$bits1 = Long_ZERO;
31962
- }
31963
- var asrjt_Float64_Zero = null;
31964
- var asrjt_Float64_NegativeZero = null;
31965
- var asrjt_Float64_NaN = null;
31966
- var asrjt_Float64_Infinity = null;
31967
- var asrjt_Float64_NegativeInfinity = null;
31968
- var asrjt_Float64_$assertionsDisabled = 0;
31969
- var asrjt_Float64__init_1 = ($this, $bits) => {
31970
- $this.$bits1 = $bits;
31971
- };
31972
- var asrjt_Float64__init_ = (var_0) => {
31973
- let var_1 = new asrjt_Float64();
31974
- asrjt_Float64__init_1(var_1, var_0);
31975
- return var_1;
31976
- };
31977
- var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31978
- asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31979
- };
31980
- var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31981
- let var_3 = new asrjt_Float64();
31982
- asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31983
- return var_3;
31984
- };
31985
- var asrjt_Float64_exponent = ($this) => {
31986
- return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31987
- };
31988
- var asrjt_Float64_negate = ($this) => {
31989
- return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31990
- };
31991
- var asrjt_Float64_isSignMinus = ($this) => {
31992
- return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31993
- };
31994
- var asrjt_Float64_isInfinite = ($this) => {
31995
- return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31996
- };
31997
- var asrjt_Float64_isNormal = ($this) => {
31998
- return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31999
- };
32000
- var asrjt_Float64_isSubnormal = ($this) => {
32001
- return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
32002
- };
32003
- var asrjt_Float64_isNaN = ($this) => {
32004
- return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
32005
- };
32006
- var asrjt_Float64_isSignalling = ($this) => {
32007
- if (!asrjt_Float64_isNaN($this))
32008
- return 0;
32009
- return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
32010
- };
32011
- var asrjt_Float64_isZero = ($this) => {
32012
- let var$1;
32013
- var$1 = $this.$bits1;
32014
- return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
32015
- };
32016
- var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
32017
- let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
32018
- if (asrji_ExactFloat_isZero($ef))
32019
- return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
32020
- $ef = asrji_ExactFloat_normalize($ef);
32021
- $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
32022
- if ($normalizedExponent > -1022) {
32023
- if ($normalizedExponent > 1024) {
32024
- $mainBits = $env.$flags;
32025
- $roundedBits = asrj_Flags_overflow;
32026
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32027
- $mainBits = $env.$flags;
32028
- $roundedBits = asrj_Flags_inexact;
32029
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32030
- asrjt_Float64$1_$callClinit();
32031
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32032
- case 1:
32033
- break;
32034
- case 2:
32035
- case 3:
32036
- $normalizedExponent = $ef.$sign;
32037
- if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32038
- return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
32039
- return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32040
- case 4:
32041
- case 5:
32042
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32043
- default:
32044
- if (!asrjt_Float64_$assertionsDisabled)
32045
- $rt_throw(jl_AssertionError__init_($rt_s(1617)));
32046
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32047
- }
32048
- return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
32049
- }
32050
- if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
32051
- if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
32052
- $rt_throw(jl_AssertionError__init_($rt_s(1618)));
32053
- $a = new asrjt_Float64();
32054
- $normalizedExponent = $ef.$sign;
32055
- $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
32056
- $ef = $ef.$significand;
32057
- asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
32058
- return $a;
32059
- }
32060
- $mainBits = $env.$flags;
32061
- $roundedBits = asrj_Flags_inexact;
32062
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32063
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
32064
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32065
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32066
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32067
- $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
32068
- $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32069
- } else {
32070
- if ($ef.$exponent0 > -1075) {
32071
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
32072
- $rt_throw(jl_AssertionError__init_($rt_s(1619)));
32073
- return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
32074
- }
32075
- $mainBits = $env.$flags;
32076
- $roundedBits = asrj_Flags_inexact;
32077
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32078
- $mainBits = $env.$flags;
32079
- $roundedBits = asrj_Flags_underflow;
32080
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32081
- $bitsToRound = -1074 - $ef.$exponent0 | 0;
32082
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32083
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32084
- $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32085
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32086
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
32087
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32088
- else {
32089
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
32090
- $rt_throw(jl_AssertionError__init_1());
32091
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
32092
- }
32093
- }
32094
- asrjt_Float64$1_$callClinit();
32095
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32096
- case 1:
32097
- break;
32098
- case 2:
32099
- case 3:
32100
- if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32101
- return $towardsZero;
32102
- return $awayZero;
32103
- default:
32104
- $ef = jm_BigInteger_ONE;
32105
- $normalizedExponent = $bitsToRound - 1 | 0;
32106
- if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
32107
- if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
32108
- return $towardsZero;
32109
- return $awayZero;
32110
- }
32111
- if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
32112
- return $towardsZero;
32113
- return $awayZero;
32114
- }
32115
- return $towardsZero;
32116
- };
32117
- var asrjt_Float64_toExactFloat = ($this) => {
32118
- let $sign, $exponent, $significand;
32119
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
32120
- $rt_throw(jl_AssertionError__init_($rt_s(1620)));
32121
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
32122
- $rt_throw(jl_AssertionError__init_($rt_s(1621)));
32123
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
32124
- $rt_throw(jl_AssertionError__init_($rt_s(1622)));
32125
- $sign = asrjt_Float64_isSignMinus($this);
32126
- if (asrjt_Float64_isZero($this)) {
32127
- $exponent = 0;
32128
- $significand = jm_BigInteger_ZERO;
32129
- } else if (asrjt_Float64_isNormal($this)) {
32130
- $exponent = asrjt_Float64_exponent($this) - 52 | 0;
32131
- $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
32132
- } else {
32133
- if (!asrjt_Float64_isSubnormal($this)) {
32134
- if (asrjt_Float64_$assertionsDisabled)
32135
- return null;
32136
- $rt_throw(jl_AssertionError__init_($rt_s(1623)));
32137
- }
32138
- $exponent = asrjt_Float64_exponent($this) - 51 | 0;
32139
- $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
32140
- }
32141
- return asrji_ExactFloat__init_($sign, $exponent, $significand);
32142
- };
32143
- var asrjt_Float64_maxPrecision = ($this) => {
32144
- return 60;
32145
- };
32146
- var asrjt_Float64_negate0 = ($this) => {
32147
- return asrjt_Float64_negate($this);
32148
- };
32149
- var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
32150
- return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
32151
- };
32152
- var asrjt_Float64_NegativeInfinity0 = ($this) => {
32153
- return asrjt_Float64_NegativeInfinity;
32154
- };
32155
- var asrjt_Float64_Infinity0 = ($this) => {
32156
- return asrjt_Float64_Infinity;
32157
- };
32158
- var asrjt_Float64_NegativeZero0 = ($this) => {
32159
- return asrjt_Float64_NegativeZero;
32160
- };
32161
- var asrjt_Float64_Zero0 = ($this) => {
32162
- return asrjt_Float64_Zero;
32163
- };
32164
- var asrjt_Float64_NaN0 = ($this) => {
32165
- return asrjt_Float64_NaN;
32166
- };
32167
- var asrjt_Float64__clinit_ = () => {
32168
- asrjt_Float64_$assertionsDisabled = 0;
32169
- asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
32170
- asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
32171
- asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
32172
- asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32173
- asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32174
- };
32175
32187
  var asrjo_Arithmetic = $rt_classWithoutFields();
32176
32188
  var asrjo_Arithmetic_$assertionsDisabled = 0;
32177
32189
  var asrjo_Arithmetic_add = ($a, $b, $env) => {
@@ -33766,34 +33778,34 @@ function ju_Hashtable$Entry() {
33766
33778
  var ju_Hashtable$Entry_equalsKey = ($this, $aKey, $hash) => {
33767
33779
  return $this.$hashcode == jl_String_hashCode($aKey) && $this.$key.$equals($aKey) ? 1 : 0;
33768
33780
  };
33769
- var asrjt_Float64$1 = $rt_classWithoutFields();
33770
- var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33771
- var asrjt_Float64$1_$callClinit = () => {
33772
- asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33773
- asrjt_Float64$1__clinit_();
33781
+ var asrjt_Float32$1 = $rt_classWithoutFields();
33782
+ var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33783
+ var asrjt_Float32$1_$callClinit = () => {
33784
+ asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33785
+ asrjt_Float32$1__clinit_();
33774
33786
  };
33775
- var asrjt_Float64$1__clinit_ = () => {
33787
+ var asrjt_Float32$1__clinit_ = () => {
33776
33788
  let var$1, var$2;
33777
33789
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33778
33790
  var$2 = var$1.data;
33779
- asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33791
+ asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33780
33792
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33781
33793
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33782
33794
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
33783
33795
  var$2[asrj_RoundingMode_away.$ordinal0] = 4;
33784
33796
  var$2[asrj_RoundingMode_even.$ordinal0] = 5;
33785
33797
  };
33786
- var asrjt_Float32$1 = $rt_classWithoutFields();
33787
- var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33788
- var asrjt_Float32$1_$callClinit = () => {
33789
- asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33790
- asrjt_Float32$1__clinit_();
33798
+ var asrjt_Float64$1 = $rt_classWithoutFields();
33799
+ var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33800
+ var asrjt_Float64$1_$callClinit = () => {
33801
+ asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33802
+ asrjt_Float64$1__clinit_();
33791
33803
  };
33792
- var asrjt_Float32$1__clinit_ = () => {
33804
+ var asrjt_Float64$1__clinit_ = () => {
33793
33805
  let var$1, var$2;
33794
33806
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33795
33807
  var$2 = var$1.data;
33796
- asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33808
+ asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33797
33809
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33798
33810
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33799
33811
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
@@ -34942,16 +34954,6 @@ $rt_metadata([
34942
34954
  0,
34943
34955
  asrrh_RegisterFile_$callClinit,
34944
34956
  0,
34945
- asr_JsProgramStatement,
34946
- "JsProgramStatement",
34947
- 10,
34948
- jl_Object,
34949
- [],
34950
- 0,
34951
- 3,
34952
- 0,
34953
- 0,
34954
- 0,
34955
34957
  asr_JsRiscV$getTokenizedLines$lambda$_5_0,
34956
34958
  0,
34957
34959
  jl_Object,
@@ -34980,8 +34982,19 @@ $rt_metadata([
34980
34982
  0,
34981
34983
  0,
34982
34984
  0,
34983
- ju_Arrays,
34985
+ asr_JsProgramStatement,
34986
+ "JsProgramStatement",
34987
+ 10,
34988
+ jl_Object,
34989
+ [],
34990
+ 0,
34991
+ 3,
34992
+ 0,
34993
+ 0,
34984
34994
  0,
34995
+ asr_JsCompilationResult,
34996
+ "JsCompilationResult",
34997
+ 10,
34985
34998
  jl_Object,
34986
34999
  [],
34987
35000
  0,
@@ -34989,19 +35002,29 @@ $rt_metadata([
34989
35002
  0,
34990
35003
  0,
34991
35004
  0,
34992
- juf_ToIntFunction,
35005
+ asr_AssemblyException,
34993
35006
  0,
34994
- jl_Object,
35007
+ jl_Exception,
34995
35008
  [],
35009
+ 0,
34996
35010
  3,
35011
+ 0,
35012
+ 0,
35013
+ 0,
35014
+ asr_JsStackFrame,
35015
+ "JsStackFrame",
35016
+ 10,
35017
+ jl_Object,
35018
+ [],
35019
+ 0,
34997
35020
  3,
34998
35021
  0,
34999
35022
  0,
35000
35023
  0,
35001
- asr_JsRiscV$getRegistersValues$lambda$_20_0,
35024
+ ju_Arrays,
35002
35025
  0,
35003
35026
  jl_Object,
35004
- [juf_ToIntFunction],
35027
+ [],
35005
35028
  0,
35006
35029
  3,
35007
35030
  0,
@@ -35035,30 +35058,19 @@ $rt_metadata([
35035
35058
  0,
35036
35059
  0,
35037
35060
  0,
35038
- asr_JsCompilationResult,
35039
- "JsCompilationResult",
35040
- 10,
35061
+ juf_ToIntFunction,
35062
+ 0,
35041
35063
  jl_Object,
35042
35064
  [],
35043
- 0,
35044
35065
  3,
35045
- 0,
35046
- 0,
35047
- 0,
35048
- asr_AssemblyException,
35049
- 0,
35050
- jl_Exception,
35051
- [],
35052
- 0,
35053
35066
  3,
35054
35067
  0,
35055
35068
  0,
35056
35069
  0,
35057
- asr_JsStackFrame,
35058
- "JsStackFrame",
35059
- 10,
35070
+ asr_JsRiscV$getRegistersValues$lambda$_20_0,
35071
+ 0,
35060
35072
  jl_Object,
35061
- [],
35073
+ [juf_ToIntFunction],
35062
35074
  0,
35063
35075
  3,
35064
35076
  0,
@@ -35176,72 +35188,72 @@ $rt_metadata([
35176
35188
  0,
35177
35189
  0,
35178
35190
  0,
35179
- jl_AutoCloseable,
35191
+ asr_JsCompilationResult$_init_$lambda$_0_0,
35180
35192
  0,
35181
35193
  jl_Object,
35182
- [],
35183
- 3,
35184
- 3,
35194
+ [juf_Function],
35185
35195
  0,
35196
+ 3,
35186
35197
  0,
35187
35198
  0,
35188
- jus_BaseStream,
35199
+ ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35200
+ juf_Supplier,
35189
35201
  0,
35190
35202
  jl_Object,
35191
- [jl_AutoCloseable],
35203
+ [],
35192
35204
  3,
35193
35205
  3,
35194
35206
  0,
35195
35207
  0,
35196
35208
  0,
35197
- jus_Stream,
35209
+ asr_JsCompilationResult$_init_$lambda$_0_1,
35198
35210
  0,
35199
35211
  jl_Object,
35200
- [jus_BaseStream],
35201
- 3,
35212
+ [juf_Supplier],
35213
+ 0,
35202
35214
  3,
35203
35215
  0,
35204
35216
  0,
35205
35217
  0
35206
35218
  ]);
35207
35219
  $rt_metadata([
35208
- jusi_SimpleStreamImpl,
35220
+ juf_BiConsumer,
35209
35221
  0,
35210
35222
  jl_Object,
35211
- [jus_Stream],
35212
- 1,
35223
+ [],
35224
+ 3,
35213
35225
  3,
35214
35226
  0,
35215
35227
  0,
35216
35228
  0,
35217
- jusi_ArrayStreamImpl,
35229
+ asr_JsCompilationResult$_init_$lambda$_0_2,
35218
35230
  0,
35219
- jusi_SimpleStreamImpl,
35220
- [],
35231
+ jl_Object,
35232
+ [juf_BiConsumer],
35221
35233
  0,
35222
35234
  3,
35223
35235
  0,
35224
35236
  0,
35225
- ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35226
- asrs_BackStepper$BackstepStack,
35237
+ 0,
35238
+ asr_JsCompilationResult$_init_$lambda$_0_3,
35227
35239
  0,
35228
35240
  jl_Object,
35229
- [],
35241
+ [juf_BiConsumer],
35230
35242
  0,
35231
35243
  3,
35232
35244
  0,
35233
35245
  0,
35234
35246
  0,
35235
- asr_JsCompilationResult$_init_$lambda$_0_0,
35247
+ asrs_BackStepper$BackstepStack,
35236
35248
  0,
35237
35249
  jl_Object,
35238
- [juf_Function],
35250
+ [],
35239
35251
  0,
35240
35252
  3,
35241
35253
  0,
35242
35254
  0,
35243
- ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35244
- juf_Supplier,
35255
+ 0,
35256
+ jl_AutoCloseable,
35245
35257
  0,
35246
35258
  jl_Object,
35247
35259
  [],
@@ -35250,42 +35262,42 @@ $rt_metadata([
35250
35262
  0,
35251
35263
  0,
35252
35264
  0,
35253
- asr_JsCompilationResult$_init_$lambda$_0_1,
35265
+ jus_BaseStream,
35254
35266
  0,
35255
35267
  jl_Object,
35256
- [juf_Supplier],
35257
- 0,
35268
+ [jl_AutoCloseable],
35269
+ 3,
35258
35270
  3,
35259
35271
  0,
35260
35272
  0,
35261
35273
  0,
35262
- juf_BiConsumer,
35274
+ jus_Stream,
35263
35275
  0,
35264
35276
  jl_Object,
35265
- [],
35277
+ [jus_BaseStream],
35266
35278
  3,
35267
35279
  3,
35268
35280
  0,
35269
35281
  0,
35270
35282
  0,
35271
- asr_JsCompilationResult$_init_$lambda$_0_2,
35283
+ jusi_SimpleStreamImpl,
35272
35284
  0,
35273
35285
  jl_Object,
35274
- [juf_BiConsumer],
35275
- 0,
35286
+ [jus_Stream],
35287
+ 1,
35276
35288
  3,
35277
35289
  0,
35278
35290
  0,
35279
35291
  0,
35280
- asr_JsCompilationResult$_init_$lambda$_0_3,
35292
+ jusi_ArrayStreamImpl,
35281
35293
  0,
35282
- jl_Object,
35283
- [juf_BiConsumer],
35294
+ jusi_SimpleStreamImpl,
35295
+ [],
35284
35296
  0,
35285
35297
  3,
35286
35298
  0,
35287
35299
  0,
35288
- 0,
35300
+ ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35289
35301
  jl_Math,
35290
35302
  0,
35291
35303
  jl_Object,
@@ -37489,6 +37501,24 @@ $rt_metadata([
37489
37501
  0,
37490
37502
  0,
37491
37503
  ["$next1", $rt_wrapFunction1(jusi_StreamOverSpliterator_next), "$estimateSize", $rt_wrapFunction0(jusi_StreamOverSpliterator_estimateSize)],
37504
+ jusi_WrappingStreamImpl,
37505
+ 0,
37506
+ jusi_SimpleStreamImpl,
37507
+ [],
37508
+ 1,
37509
+ 3,
37510
+ 0,
37511
+ 0,
37512
+ 0,
37513
+ jusi_MappingStreamImpl,
37514
+ 0,
37515
+ jusi_WrappingStreamImpl,
37516
+ [],
37517
+ 0,
37518
+ 3,
37519
+ 0,
37520
+ 0,
37521
+ ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37492
37522
  jus_IntStream,
37493
37523
  0,
37494
37524
  jl_Object,
@@ -37516,24 +37546,6 @@ $rt_metadata([
37516
37546
  0,
37517
37547
  0,
37518
37548
  0,
37519
- jusi_WrappingStreamImpl,
37520
- 0,
37521
- jusi_SimpleStreamImpl,
37522
- [],
37523
- 1,
37524
- 3,
37525
- 0,
37526
- 0,
37527
- 0,
37528
- jusi_MappingStreamImpl,
37529
- 0,
37530
- jusi_WrappingStreamImpl,
37531
- [],
37532
- 0,
37533
- 3,
37534
- 0,
37535
- 0,
37536
- ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37537
37549
  asru_Binary,
37538
37550
  0,
37539
37551
  jl_Object,
@@ -37552,26 +37564,25 @@ $rt_metadata([
37552
37564
  0,
37553
37565
  0,
37554
37566
  ["$hasNext", $rt_wrapFunction0(ju_AbstractList$1_hasNext), "$next", $rt_wrapFunction0(ju_AbstractList$1_next)],
37555
- asrs_Simulator$Reason,
37556
- "Simulator$Reason",
37557
- 3,
37558
- jl_Enum,
37567
+ asrrh_FloatingPointRegisterFile,
37568
+ 0,
37569
+ jl_Object,
37559
37570
  [],
37560
- 12,
37571
+ 0,
37561
37572
  3,
37562
37573
  0,
37563
37574
  0,
37564
37575
  0,
37565
- jlr_Array,
37576
+ asrrh_ControlAndStatusRegisterFile,
37566
37577
  0,
37567
37578
  jl_Object,
37568
37579
  [],
37569
- 4,
37580
+ 0,
37570
37581
  3,
37571
37582
  0,
37572
37583
  0,
37573
37584
  0,
37574
- asrrh_Stack,
37585
+ asrrh_InterruptController,
37575
37586
  0,
37576
37587
  jl_Object,
37577
37588
  [],
@@ -37580,7 +37591,7 @@ $rt_metadata([
37580
37591
  0,
37581
37592
  0,
37582
37593
  0,
37583
- asrrh_FloatingPointRegisterFile,
37594
+ asrrh_Stack,
37584
37595
  0,
37585
37596
  jl_Object,
37586
37597
  [],
@@ -37589,20 +37600,21 @@ $rt_metadata([
37589
37600
  0,
37590
37601
  0,
37591
37602
  0,
37592
- asrrh_ControlAndStatusRegisterFile,
37603
+ jlr_Array,
37593
37604
  0,
37594
37605
  jl_Object,
37595
37606
  [],
37596
- 0,
37607
+ 4,
37597
37608
  3,
37598
37609
  0,
37599
37610
  0,
37600
37611
  0,
37601
- asrrh_InterruptController,
37602
- 0,
37603
- jl_Object,
37612
+ asrs_Simulator$Reason,
37613
+ "Simulator$Reason",
37614
+ 3,
37615
+ jl_Enum,
37604
37616
  [],
37605
- 0,
37617
+ 12,
37606
37618
  3,
37607
37619
  0,
37608
37620
  0,
@@ -40601,6 +40613,15 @@ $rt_metadata([
40601
40613
  0,
40602
40614
  0,
40603
40615
  0,
40616
+ asrjo_Comparisons,
40617
+ 0,
40618
+ jl_Object,
40619
+ [],
40620
+ 0,
40621
+ 3,
40622
+ 0,
40623
+ 0,
40624
+ 0,
40604
40625
  asrjt_Floating,
40605
40626
  0,
40606
40627
  jl_Object,
@@ -40652,33 +40673,6 @@ $rt_metadata([
40652
40673
  "$NaN",
40653
40674
  $rt_wrapFunction0(asrjt_Float32_NaN0)
40654
40675
  ],
40655
- asrjo_Comparisons,
40656
- 0,
40657
- jl_Object,
40658
- [],
40659
- 0,
40660
- 3,
40661
- 0,
40662
- 0,
40663
- 0,
40664
- jm_BigInteger,
40665
- 0,
40666
- jl_Number,
40667
- [jl_Comparable, ji_Serializable],
40668
- 0,
40669
- 3,
40670
- 0,
40671
- 0,
40672
- 0,
40673
- asrjo_Conversions,
40674
- 0,
40675
- jl_Object,
40676
- [],
40677
- 0,
40678
- 3,
40679
- 0,
40680
- 0,
40681
- 0,
40682
40676
  asrjt_Float64,
40683
40677
  0,
40684
40678
  asrjt_Floating,
@@ -40721,6 +40715,24 @@ $rt_metadata([
40721
40715
  "$NaN",
40722
40716
  $rt_wrapFunction0(asrjt_Float64_NaN0)
40723
40717
  ],
40718
+ jm_BigInteger,
40719
+ 0,
40720
+ jl_Number,
40721
+ [jl_Comparable, ji_Serializable],
40722
+ 0,
40723
+ 3,
40724
+ 0,
40725
+ 0,
40726
+ 0,
40727
+ asrjo_Conversions,
40728
+ 0,
40729
+ jl_Object,
40730
+ [],
40731
+ 0,
40732
+ 3,
40733
+ 0,
40734
+ 0,
40735
+ 0,
40724
40736
  asrjo_Arithmetic,
40725
40737
  0,
40726
40738
  jl_Object,
@@ -40959,23 +40971,23 @@ $rt_metadata([
40959
40971
  0,
40960
40972
  0,
40961
40973
  0,
40962
- asrjt_Float64$1,
40974
+ asrjt_Float32$1,
40963
40975
  0,
40964
40976
  jl_Object,
40965
40977
  [],
40966
40978
  32,
40967
40979
  0,
40968
40980
  0,
40969
- asrjt_Float64$1_$callClinit,
40981
+ asrjt_Float32$1_$callClinit,
40970
40982
  0,
40971
- asrjt_Float32$1,
40983
+ asrjt_Float64$1,
40972
40984
  0,
40973
40985
  jl_Object,
40974
40986
  [],
40975
40987
  32,
40976
40988
  0,
40977
40989
  0,
40978
- asrjt_Float32$1_$callClinit,
40990
+ asrjt_Float64$1_$callClinit,
40979
40991
  0,
40980
40992
  jm_Multiplication,
40981
40993
  0,
@@ -41149,7 +41161,7 @@ $rt_stringPool([
41149
41161
  "store address out of range ",
41150
41162
  "store address not aligned on halfword boundary ",
41151
41163
  "Store address to text segment out of range",
41152
- "cCannot read directly from text segment!",
41164
+ "Cannot read directly from text segment!",
41153
41165
  "Load address not aligned to word boundary ",
41154
41166
  "Load address not aligned on halfword boundary ",
41155
41167
  "fetch address for text segment out of range ",
@@ -42160,13 +42172,6 @@ $rt_stringPool([
42160
42172
  "Can't parse empty string",
42161
42173
  "The string does not represent a number",
42162
42174
  "The string represents a too big number",
42163
- "BREAKPOINT",
42164
- "EXCEPTION",
42165
- "MAX_STEPS",
42166
- "NORMAL_TERMINATION",
42167
- "CLIFF_TERMINATION",
42168
- "PAUSE",
42169
- "STOP",
42170
42175
  "ft0",
42171
42176
  "ft1",
42172
42177
  "ft2",
@@ -42214,6 +42219,13 @@ $rt_stringPool([
42214
42219
  "Cannot claim, no timer interrupt pending",
42215
42220
  "Cannot claim, no trap pending",
42216
42221
  "trapPC doesn't match current pc",
42222
+ "BREAKPOINT",
42223
+ "EXCEPTION",
42224
+ "MAX_STEPS",
42225
+ "NORMAL_TERMINATION",
42226
+ "CLIFF_TERMINATION",
42227
+ "PAUSE",
42228
+ "STOP",
42217
42229
  "Patter is null",
42218
42230
  "Recursive include of file ",
42219
42231
  "Error reading include file ",
@@ -42786,6 +42798,13 @@ var $rt_jso_marker = Symbol("jsoClass");
42786
42798
  Object.defineProperty(c, "example", {
42787
42799
  get: $rt_callWithReceiver(asr_JsInstruction_getExample$exported$3)
42788
42800
  });
42801
+ c = asr_JsRiscVTokenizedLine.prototype;
42802
+ Object.defineProperty(c, "line", {
42803
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42804
+ });
42805
+ Object.defineProperty(c, "tokens", {
42806
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42807
+ });
42789
42808
  c = asr_JsProgramStatement.prototype;
42790
42809
  Object.defineProperty(c, "assemblyStatement", {
42791
42810
  get: $rt_callWithReceiver(asr_JsProgramStatement_getAssemblyStatement$exported$1)
@@ -42805,26 +42824,6 @@ var $rt_jso_marker = Symbol("jsoClass");
42805
42824
  Object.defineProperty(c, "source", {
42806
42825
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
42807
42826
  });
42808
- c = asr_JsRiscVTokenizedLine.prototype;
42809
- Object.defineProperty(c, "line", {
42810
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42811
- });
42812
- Object.defineProperty(c, "tokens", {
42813
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42814
- });
42815
- c = asr_JsBackStep.prototype;
42816
- Object.defineProperty(c, "pc", {
42817
- get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42818
- });
42819
- Object.defineProperty(c, "action", {
42820
- get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42821
- });
42822
- Object.defineProperty(c, "param1", {
42823
- get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42824
- });
42825
- Object.defineProperty(c, "param2", {
42826
- get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42827
- });
42828
42827
  c = asr_JsCompilationResult.prototype;
42829
42828
  Object.defineProperty(c, "hasErrors", {
42830
42829
  get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
@@ -42851,6 +42850,19 @@ var $rt_jso_marker = Symbol("jsoClass");
42851
42850
  Object.defineProperty(c, "toAddress", {
42852
42851
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
42853
42852
  });
42853
+ c = asr_JsBackStep.prototype;
42854
+ Object.defineProperty(c, "pc", {
42855
+ get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42856
+ });
42857
+ Object.defineProperty(c, "action", {
42858
+ get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42859
+ });
42860
+ Object.defineProperty(c, "param1", {
42861
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42862
+ });
42863
+ Object.defineProperty(c, "param2", {
42864
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42865
+ });
42854
42866
  c = asr_JsCompilationResult$JsCompilationError.prototype;
42855
42867
  Object.defineProperty(c, "macroExpansionHistory", {
42856
42868
  get: $rt_callWithReceiver(asr_JsCompilationResult$JsCompilationError_getMacroExpansionHistory$exported$3)
@@ -42897,26 +42909,26 @@ function $rt_export_class_JsInstruction_32() {
42897
42909
  throw new Error("Can't instantiate this class directly");
42898
42910
  }
42899
42911
  $rt_export_class_JsInstruction_32.prototype = asr_JsInstruction.prototype;
42900
- function $rt_export_class_JsProgramStatement_71() {
42912
+ function $rt_export_class_JsRiscVTokenizedLine_73() {
42901
42913
  throw new Error("Can't instantiate this class directly");
42902
42914
  }
42903
- $rt_export_class_JsProgramStatement_71.prototype = asr_JsProgramStatement.prototype;
42904
- function $rt_export_class_JsRiscVTokenizedLine_74() {
42915
+ $rt_export_class_JsRiscVTokenizedLine_73.prototype = asr_JsRiscVTokenizedLine.prototype;
42916
+ function $rt_export_class_JsProgramStatement_74() {
42905
42917
  throw new Error("Can't instantiate this class directly");
42906
42918
  }
42907
- $rt_export_class_JsRiscVTokenizedLine_74.prototype = asr_JsRiscVTokenizedLine.prototype;
42908
- function $rt_export_class_JsBackStep_80() {
42919
+ $rt_export_class_JsProgramStatement_74.prototype = asr_JsProgramStatement.prototype;
42920
+ function $rt_export_class_JsCompilationResult_75() {
42909
42921
  throw new Error("Can't instantiate this class directly");
42910
42922
  }
42911
- $rt_export_class_JsBackStep_80.prototype = asr_JsBackStep.prototype;
42912
- function $rt_export_class_JsCompilationResult_81() {
42923
+ $rt_export_class_JsCompilationResult_75.prototype = asr_JsCompilationResult.prototype;
42924
+ function $rt_export_class_JsStackFrame_77() {
42913
42925
  throw new Error("Can't instantiate this class directly");
42914
42926
  }
42915
- $rt_export_class_JsCompilationResult_81.prototype = asr_JsCompilationResult.prototype;
42916
- function $rt_export_class_JsStackFrame_83() {
42927
+ $rt_export_class_JsStackFrame_77.prototype = asr_JsStackFrame.prototype;
42928
+ function $rt_export_class_JsBackStep_81() {
42917
42929
  throw new Error("Can't instantiate this class directly");
42918
42930
  }
42919
- $rt_export_class_JsStackFrame_83.prototype = asr_JsStackFrame.prototype;
42931
+ $rt_export_class_JsBackStep_81.prototype = asr_JsBackStep.prototype;
42920
42932
  function $rt_export_class_JsCompilationError_349() {
42921
42933
  throw new Error("Can't instantiate this class directly");
42922
42934
  }