@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.mjs CHANGED
@@ -2900,9 +2900,21 @@ var asr_JsRiscV_initialize$exported$12 = (var$1, var$2) => {
2900
2900
  ju_ArrayList_clear(asrrh_Stack_callStack);
2901
2901
  };
2902
2902
  var asr_JsRiscV_getUndoStack$exported$13 = (var$1) => {
2903
- let var$2;
2903
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
2904
2904
  asr_JsRiscV_$callClinit();
2905
- var$1 = ju_Arrays_stream(var$1.$main.$main0.$backStepper.$backSteps.$stack);
2905
+ var$2 = var$1.$main.$main0.$backStepper.$backSteps;
2906
+ var$3 = var$2.$size1;
2907
+ var$4 = $rt_createArray(asrs_BackStepper$BackStep, var$3);
2908
+ var$5 = var$4.data;
2909
+ var$6 = 0;
2910
+ while (var$6 < var$3) {
2911
+ var$7 = var$2.$stack.data;
2912
+ var$8 = var$2.$top - var$6 | 0;
2913
+ var$9 = var$2.$capacity;
2914
+ var$5[var$6] = var$7[(var$8 + var$9 | 0) % var$9 | 0];
2915
+ var$6 = var$6 + 1 | 0;
2916
+ }
2917
+ var$1 = ju_Arrays_stream(var$4);
2906
2918
  var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_0();
2907
2919
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
2908
2920
  var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_1();
@@ -3254,11 +3266,11 @@ var asr_JsRiscV__clinit_ = () => {
3254
3266
  ju_Comparator$NaturalOrder__clinit_();
3255
3267
  asrr_BasicInstructionFormat__clinit_();
3256
3268
  jl_Long__clinit_();
3257
- asrs_Simulator$Reason__clinit_();
3258
- asrrh_Stack__clinit_();
3259
3269
  asrrh_FloatingPointRegisterFile__clinit_();
3260
3270
  asrrh_ControlAndStatusRegisterFile__clinit_();
3261
3271
  asrrh_InterruptController__clinit_();
3272
+ asrrh_Stack__clinit_();
3273
+ asrs_Simulator$Reason__clinit_();
3262
3274
  asra_Tokenizer__clinit_();
3263
3275
  asrs_Simulator__clinit_();
3264
3276
  asra_Directives__clinit_();
@@ -3276,8 +3288,8 @@ var asr_JsRiscV__clinit_ = () => {
3276
3288
  jnc_CoderResult__clinit_();
3277
3289
  jn_ByteOrder__clinit_();
3278
3290
  asrjt_Float32__clinit_();
3279
- jm_BigInteger__clinit_();
3280
3291
  asrjt_Float64__clinit_();
3292
+ jm_BigInteger__clinit_();
3281
3293
  asrjo_Arithmetic__clinit_();
3282
3294
  asrj_RoundingMode__clinit_();
3283
3295
  asrj_Flags__clinit_();
@@ -7119,6 +7131,40 @@ var asrrh_RegisterFile__clinit_ = () => {
7119
7131
  asrrh_RegisterFile_instance = var$1;
7120
7132
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7121
7133
  };
7134
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7135
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7136
+ let var$2, var$3, var$4, var$5;
7137
+ var$1 = var$1;
7138
+ asr_JsRiscV_$callClinit();
7139
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7140
+ var$3 = var$2.data;
7141
+ var$4 = 0;
7142
+ while (var$4 < asra_TokenList_size(var$1)) {
7143
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7144
+ var$4 = var$4 + 1 | 0;
7145
+ }
7146
+ var$5 = new asr_JsRiscVTokenizedLine();
7147
+ var$5.$line0 = var$1.$processedLine;
7148
+ var$5.$tokens0 = var$2;
7149
+ return var$5;
7150
+ };
7151
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7152
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7153
+ asr_JsRiscV_$callClinit();
7154
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7155
+ };
7156
+ function asr_JsRiscVTokenizedLine() {
7157
+ let a = this;
7158
+ jl_Object.call(a);
7159
+ a.$line0 = null;
7160
+ a.$tokens0 = null;
7161
+ }
7162
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7163
+ return $rt_ustr(var$1.$line0);
7164
+ };
7165
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7166
+ return otji_JS_wrap(var$1.$tokens0);
7167
+ };
7122
7168
  function asr_JsProgramStatement() {
7123
7169
  let a = this;
7124
7170
  jl_Object.call(a);
@@ -7196,270 +7242,6 @@ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7196
7242
  var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7197
7243
  return $rt_ustr(var$1.$machineStatement0);
7198
7244
  };
7199
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7200
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7201
- let var$2, var$3, var$4, var$5;
7202
- var$1 = var$1;
7203
- asr_JsRiscV_$callClinit();
7204
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7205
- var$3 = var$2.data;
7206
- var$4 = 0;
7207
- while (var$4 < asra_TokenList_size(var$1)) {
7208
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7209
- var$4 = var$4 + 1 | 0;
7210
- }
7211
- var$5 = new asr_JsRiscVTokenizedLine();
7212
- var$5.$line0 = var$1.$processedLine;
7213
- var$5.$tokens0 = var$2;
7214
- return var$5;
7215
- };
7216
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7217
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7218
- asr_JsRiscV_$callClinit();
7219
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7220
- };
7221
- function asr_JsRiscVTokenizedLine() {
7222
- let a = this;
7223
- jl_Object.call(a);
7224
- a.$line0 = null;
7225
- a.$tokens0 = null;
7226
- }
7227
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7228
- return $rt_ustr(var$1.$line0);
7229
- };
7230
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7231
- return otji_JS_wrap(var$1.$tokens0);
7232
- };
7233
- var ju_Arrays = $rt_classWithoutFields();
7234
- var ju_Arrays_copyOf1 = ($array, $length) => {
7235
- let $result, var$4, $sz, $i;
7236
- $array = $array.data;
7237
- $result = $rt_createCharArray($length);
7238
- var$4 = $result.data;
7239
- $sz = jl_Math_min($length, $array.length);
7240
- $i = 0;
7241
- while ($i < $sz) {
7242
- var$4[$i] = $array[$i];
7243
- $i = $i + 1 | 0;
7244
- }
7245
- return $result;
7246
- };
7247
- var ju_Arrays_copyOf0 = ($array, $length) => {
7248
- let $result, var$4, $sz, $i;
7249
- $array = $array.data;
7250
- $result = $rt_createByteArray($length);
7251
- var$4 = $result.data;
7252
- $sz = jl_Math_min($length, $array.length);
7253
- $i = 0;
7254
- while ($i < $sz) {
7255
- var$4[$i] = $array[$i];
7256
- $i = $i + 1 | 0;
7257
- }
7258
- return $result;
7259
- };
7260
- var ju_Arrays_copyOf2 = ($array, $length) => {
7261
- let $result, var$4, $sz, $i;
7262
- $array = $array.data;
7263
- $result = $rt_createIntArray($length);
7264
- var$4 = $result.data;
7265
- $sz = jl_Math_min($length, $array.length);
7266
- $i = 0;
7267
- while ($i < $sz) {
7268
- var$4[$i] = $array[$i];
7269
- $i = $i + 1 | 0;
7270
- }
7271
- return $result;
7272
- };
7273
- var ju_Arrays_copyOf = ($original, $newLength) => {
7274
- let var$3, $result, $sz, $i;
7275
- var$3 = $original.data;
7276
- $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7277
- $sz = jl_Math_min($newLength, var$3.length);
7278
- $i = 0;
7279
- while ($i < $sz) {
7280
- $result.data[$i] = var$3[$i];
7281
- $i = $i + 1 | 0;
7282
- }
7283
- return $result;
7284
- };
7285
- var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7286
- let var$5, var$6, var$7;
7287
- if ($fromIndex > $toIndex) {
7288
- var$5 = new jl_IllegalArgumentException();
7289
- jl_Throwable__init_(var$5);
7290
- $rt_throw(var$5);
7291
- }
7292
- while ($fromIndex < $toIndex) {
7293
- var$6 = $a.data;
7294
- var$7 = $fromIndex + 1 | 0;
7295
- var$6[$fromIndex] = $val;
7296
- $fromIndex = var$7;
7297
- }
7298
- };
7299
- var ju_Arrays_fill = ($a, $val) => {
7300
- ju_Arrays_fill0($a, 0, $a.data.length, $val);
7301
- };
7302
- var ju_Arrays_sort = ($a) => {
7303
- 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;
7304
- var$2 = $a.data.length;
7305
- if (!var$2)
7306
- return;
7307
- $second = $rt_createIntArray(var$2);
7308
- $chunkSize = 1;
7309
- var$5 = $a;
7310
- while ($chunkSize < var$2) {
7311
- $i = 0;
7312
- while (true) {
7313
- var$7 = var$5.data;
7314
- var$8 = var$7.length;
7315
- if ($i >= var$8)
7316
- break;
7317
- var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7318
- $i_0 = $i + (2 * $chunkSize | 0) | 0;
7319
- var$8 = jl_Math_min(var$8, $i_0);
7320
- var$11 = $i;
7321
- var$12 = var$9;
7322
- a: {
7323
- b: {
7324
- while ($i != var$9) {
7325
- if (var$12 == var$8)
7326
- break b;
7327
- var$13 = var$7[$i];
7328
- var$14 = var$7[var$12];
7329
- if (var$13 > var$14) {
7330
- var$15 = $second.data;
7331
- var$16 = var$11 + 1 | 0;
7332
- var$15[var$11] = var$14;
7333
- var$12 = var$12 + 1 | 0;
7334
- } else {
7335
- var$15 = $second.data;
7336
- var$16 = var$11 + 1 | 0;
7337
- var$15[var$11] = var$13;
7338
- $i = $i + 1 | 0;
7339
- }
7340
- var$11 = var$16;
7341
- }
7342
- while (true) {
7343
- if (var$12 >= var$8)
7344
- break a;
7345
- var$15 = $second.data;
7346
- var$17 = var$11 + 1 | 0;
7347
- $i = var$12 + 1 | 0;
7348
- var$15[var$11] = var$7[var$12];
7349
- var$11 = var$17;
7350
- var$12 = $i;
7351
- }
7352
- }
7353
- while (true) {
7354
- if ($i >= var$9)
7355
- break a;
7356
- var$15 = $second.data;
7357
- var$17 = var$11 + 1 | 0;
7358
- var$8 = $i + 1 | 0;
7359
- var$15[var$11] = var$7[$i];
7360
- var$11 = var$17;
7361
- $i = var$8;
7362
- }
7363
- }
7364
- $i = $i_0;
7365
- }
7366
- $chunkSize = $chunkSize * 2 | 0;
7367
- var$15 = var$5;
7368
- var$5 = $second;
7369
- $second = var$15;
7370
- }
7371
- c: {
7372
- if (var$5 !== $a) {
7373
- $i_0 = 0;
7374
- while (true) {
7375
- $a = var$5.data;
7376
- if ($i_0 >= $a.length)
7377
- break c;
7378
- $second.data[$i_0] = $a[$i_0];
7379
- $i_0 = $i_0 + 1 | 0;
7380
- }
7381
- }
7382
- }
7383
- };
7384
- var ju_Arrays_binarySearch = ($a, $key) => {
7385
- let var$3, var$4, var$5, var$6, var$7;
7386
- $a = $a.data;
7387
- var$3 = 0;
7388
- var$4 = $a.length;
7389
- if (var$3 > var$4) {
7390
- var$5 = new jl_IllegalArgumentException();
7391
- jl_Throwable__init_(var$5);
7392
- $rt_throw(var$5);
7393
- }
7394
- var$6 = var$4 - 1 | 0;
7395
- a: {
7396
- while (true) {
7397
- if (var$3 > var$6) {
7398
- var$4 = (-var$3 | 0) - 1 | 0;
7399
- break a;
7400
- }
7401
- var$4 = (var$3 + var$6 | 0) / 2 | 0;
7402
- var$7 = $a[var$4];
7403
- if (var$7 == $key)
7404
- break;
7405
- if ($key >= var$7)
7406
- var$3 = var$4 + 1 | 0;
7407
- else
7408
- var$6 = var$4 - 1 | 0;
7409
- }
7410
- }
7411
- return var$4;
7412
- };
7413
- var ju_Arrays_stream = ($array) => {
7414
- let var$2, var$3, var$4;
7415
- var$2 = $array.data;
7416
- var$3 = new jusi_ArrayStreamImpl();
7417
- var$4 = var$2.length;
7418
- var$3.$array6 = $array;
7419
- var$3.$index1 = 0;
7420
- var$3.$end1 = var$4;
7421
- var$3.$size2 = var$4 - 0 | 0;
7422
- return var$3;
7423
- };
7424
- var juf_ToIntFunction = $rt_classWithoutFields(0);
7425
- var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7426
- var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7427
- var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7428
- let var$2, var$3;
7429
- var$1 = var$1;
7430
- var$2 = new asr_JsBackStep();
7431
- var$3 = var$1.$action;
7432
- var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7433
- var$2.$pc2 = var$1.$pc1;
7434
- var$2.$param10 = var$1.$param1;
7435
- var$2.$param20 = Long_lo(var$1.$param2);
7436
- return var$2;
7437
- };
7438
- var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7439
- var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7440
- asr_JsRiscV_$callClinit();
7441
- return $rt_createArray(asr_JsBackStep, var$1);
7442
- };
7443
- function asr_JsBackStep() {
7444
- let a = this;
7445
- jl_Object.call(a);
7446
- a.$action0 = 0;
7447
- a.$pc2 = 0;
7448
- a.$param10 = 0;
7449
- a.$param20 = 0;
7450
- }
7451
- var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7452
- return var$1.$pc2;
7453
- };
7454
- var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7455
- return var$1.$param20;
7456
- };
7457
- var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7458
- return var$1.$action0;
7459
- };
7460
- var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7461
- return var$1.$param10;
7462
- };
7463
7245
  function asr_JsCompilationResult() {
7464
7246
  let a = this;
7465
7247
  jl_Object.call(a);
@@ -7546,6 +7328,236 @@ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7546
7328
  var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7547
7329
  return var$1.$fp;
7548
7330
  };
7331
+ var ju_Arrays = $rt_classWithoutFields();
7332
+ var ju_Arrays_copyOf1 = ($array, $length) => {
7333
+ let $result, var$4, $sz, $i;
7334
+ $array = $array.data;
7335
+ $result = $rt_createCharArray($length);
7336
+ var$4 = $result.data;
7337
+ $sz = jl_Math_min($length, $array.length);
7338
+ $i = 0;
7339
+ while ($i < $sz) {
7340
+ var$4[$i] = $array[$i];
7341
+ $i = $i + 1 | 0;
7342
+ }
7343
+ return $result;
7344
+ };
7345
+ var ju_Arrays_copyOf0 = ($array, $length) => {
7346
+ let $result, var$4, $sz, $i;
7347
+ $array = $array.data;
7348
+ $result = $rt_createByteArray($length);
7349
+ var$4 = $result.data;
7350
+ $sz = jl_Math_min($length, $array.length);
7351
+ $i = 0;
7352
+ while ($i < $sz) {
7353
+ var$4[$i] = $array[$i];
7354
+ $i = $i + 1 | 0;
7355
+ }
7356
+ return $result;
7357
+ };
7358
+ var ju_Arrays_copyOf2 = ($array, $length) => {
7359
+ let $result, var$4, $sz, $i;
7360
+ $array = $array.data;
7361
+ $result = $rt_createIntArray($length);
7362
+ var$4 = $result.data;
7363
+ $sz = jl_Math_min($length, $array.length);
7364
+ $i = 0;
7365
+ while ($i < $sz) {
7366
+ var$4[$i] = $array[$i];
7367
+ $i = $i + 1 | 0;
7368
+ }
7369
+ return $result;
7370
+ };
7371
+ var ju_Arrays_copyOf = ($original, $newLength) => {
7372
+ let var$3, $result, $sz, $i;
7373
+ var$3 = $original.data;
7374
+ $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7375
+ $sz = jl_Math_min($newLength, var$3.length);
7376
+ $i = 0;
7377
+ while ($i < $sz) {
7378
+ $result.data[$i] = var$3[$i];
7379
+ $i = $i + 1 | 0;
7380
+ }
7381
+ return $result;
7382
+ };
7383
+ var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7384
+ let var$5, var$6, var$7;
7385
+ if ($fromIndex > $toIndex) {
7386
+ var$5 = new jl_IllegalArgumentException();
7387
+ jl_Throwable__init_(var$5);
7388
+ $rt_throw(var$5);
7389
+ }
7390
+ while ($fromIndex < $toIndex) {
7391
+ var$6 = $a.data;
7392
+ var$7 = $fromIndex + 1 | 0;
7393
+ var$6[$fromIndex] = $val;
7394
+ $fromIndex = var$7;
7395
+ }
7396
+ };
7397
+ var ju_Arrays_fill = ($a, $val) => {
7398
+ ju_Arrays_fill0($a, 0, $a.data.length, $val);
7399
+ };
7400
+ var ju_Arrays_sort = ($a) => {
7401
+ 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;
7402
+ var$2 = $a.data.length;
7403
+ if (!var$2)
7404
+ return;
7405
+ $second = $rt_createIntArray(var$2);
7406
+ $chunkSize = 1;
7407
+ var$5 = $a;
7408
+ while ($chunkSize < var$2) {
7409
+ $i = 0;
7410
+ while (true) {
7411
+ var$7 = var$5.data;
7412
+ var$8 = var$7.length;
7413
+ if ($i >= var$8)
7414
+ break;
7415
+ var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7416
+ $i_0 = $i + (2 * $chunkSize | 0) | 0;
7417
+ var$8 = jl_Math_min(var$8, $i_0);
7418
+ var$11 = $i;
7419
+ var$12 = var$9;
7420
+ a: {
7421
+ b: {
7422
+ while ($i != var$9) {
7423
+ if (var$12 == var$8)
7424
+ break b;
7425
+ var$13 = var$7[$i];
7426
+ var$14 = var$7[var$12];
7427
+ if (var$13 > var$14) {
7428
+ var$15 = $second.data;
7429
+ var$16 = var$11 + 1 | 0;
7430
+ var$15[var$11] = var$14;
7431
+ var$12 = var$12 + 1 | 0;
7432
+ } else {
7433
+ var$15 = $second.data;
7434
+ var$16 = var$11 + 1 | 0;
7435
+ var$15[var$11] = var$13;
7436
+ $i = $i + 1 | 0;
7437
+ }
7438
+ var$11 = var$16;
7439
+ }
7440
+ while (true) {
7441
+ if (var$12 >= var$8)
7442
+ break a;
7443
+ var$15 = $second.data;
7444
+ var$17 = var$11 + 1 | 0;
7445
+ $i = var$12 + 1 | 0;
7446
+ var$15[var$11] = var$7[var$12];
7447
+ var$11 = var$17;
7448
+ var$12 = $i;
7449
+ }
7450
+ }
7451
+ while (true) {
7452
+ if ($i >= var$9)
7453
+ break a;
7454
+ var$15 = $second.data;
7455
+ var$17 = var$11 + 1 | 0;
7456
+ var$8 = $i + 1 | 0;
7457
+ var$15[var$11] = var$7[$i];
7458
+ var$11 = var$17;
7459
+ $i = var$8;
7460
+ }
7461
+ }
7462
+ $i = $i_0;
7463
+ }
7464
+ $chunkSize = $chunkSize * 2 | 0;
7465
+ var$15 = var$5;
7466
+ var$5 = $second;
7467
+ $second = var$15;
7468
+ }
7469
+ c: {
7470
+ if (var$5 !== $a) {
7471
+ $i_0 = 0;
7472
+ while (true) {
7473
+ $a = var$5.data;
7474
+ if ($i_0 >= $a.length)
7475
+ break c;
7476
+ $second.data[$i_0] = $a[$i_0];
7477
+ $i_0 = $i_0 + 1 | 0;
7478
+ }
7479
+ }
7480
+ }
7481
+ };
7482
+ var ju_Arrays_binarySearch = ($a, $key) => {
7483
+ let var$3, var$4, var$5, var$6, var$7;
7484
+ $a = $a.data;
7485
+ var$3 = 0;
7486
+ var$4 = $a.length;
7487
+ if (var$3 > var$4) {
7488
+ var$5 = new jl_IllegalArgumentException();
7489
+ jl_Throwable__init_(var$5);
7490
+ $rt_throw(var$5);
7491
+ }
7492
+ var$6 = var$4 - 1 | 0;
7493
+ a: {
7494
+ while (true) {
7495
+ if (var$3 > var$6) {
7496
+ var$4 = (-var$3 | 0) - 1 | 0;
7497
+ break a;
7498
+ }
7499
+ var$4 = (var$3 + var$6 | 0) / 2 | 0;
7500
+ var$7 = $a[var$4];
7501
+ if (var$7 == $key)
7502
+ break;
7503
+ if ($key >= var$7)
7504
+ var$3 = var$4 + 1 | 0;
7505
+ else
7506
+ var$6 = var$4 - 1 | 0;
7507
+ }
7508
+ }
7509
+ return var$4;
7510
+ };
7511
+ var ju_Arrays_stream = ($array) => {
7512
+ let var$2, var$3, var$4;
7513
+ var$2 = $array.data;
7514
+ var$3 = new jusi_ArrayStreamImpl();
7515
+ var$4 = var$2.length;
7516
+ var$3.$array6 = $array;
7517
+ var$3.$index1 = 0;
7518
+ var$3.$end1 = var$4;
7519
+ var$3.$size2 = var$4 - 0 | 0;
7520
+ return var$3;
7521
+ };
7522
+ var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7523
+ var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7524
+ let var$2, var$3;
7525
+ var$1 = var$1;
7526
+ var$2 = new asr_JsBackStep();
7527
+ var$3 = var$1.$action;
7528
+ var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7529
+ var$2.$pc2 = var$1.$pc1;
7530
+ var$2.$param10 = var$1.$param1;
7531
+ var$2.$param20 = Long_lo(var$1.$param2);
7532
+ return var$2;
7533
+ };
7534
+ var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7535
+ var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7536
+ asr_JsRiscV_$callClinit();
7537
+ return $rt_createArray(asr_JsBackStep, var$1);
7538
+ };
7539
+ function asr_JsBackStep() {
7540
+ let a = this;
7541
+ jl_Object.call(a);
7542
+ a.$action0 = 0;
7543
+ a.$pc2 = 0;
7544
+ a.$param10 = 0;
7545
+ a.$param20 = 0;
7546
+ }
7547
+ var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7548
+ return var$1.$pc2;
7549
+ };
7550
+ var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7551
+ return var$1.$param20;
7552
+ };
7553
+ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7554
+ return var$1.$action0;
7555
+ };
7556
+ var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7557
+ return var$1.$param10;
7558
+ };
7559
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
7560
+ var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7549
7561
  var ju_Map$Entry = $rt_classWithoutFields(0);
7550
7562
  function ju_MapEntry() {
7551
7563
  let a = this;
@@ -8201,104 +8213,29 @@ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8201
8213
  if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8202
8214
  asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8203
8215
  };
8204
- var jl_AutoCloseable = $rt_classWithoutFields(0);
8205
- var jus_BaseStream = $rt_classWithoutFields(0);
8206
- var jus_Stream = $rt_classWithoutFields(0);
8207
- var jusi_SimpleStreamImpl = $rt_classWithoutFields();
8208
- var jusi_SimpleStreamImpl_filter = ($this, $predicate) => {
8209
- let var$2;
8210
- var$2 = new jusi_FilteringStreamImpl();
8211
- jusi_WrappingStreamImpl__init_(var$2, $this);
8212
- var$2.$filter0 = $predicate;
8213
- return var$2;
8214
- };
8215
- var jusi_SimpleStreamImpl_map = ($this, $mapper) => {
8216
- let var$2;
8217
- var$2 = new jusi_MappingStreamImpl();
8218
- jusi_WrappingStreamImpl__init_(var$2, $this);
8219
- var$2.$mapper = $mapper;
8220
- return var$2;
8221
- };
8222
- var jusi_SimpleStreamImpl_toArray = ($this, $generator) => {
8223
- let var$2, $estimatedSize, $array, $consumer, var$6, $list, $i;
8224
- var$2 = $this;
8225
- $estimatedSize = var$2.$sourceStream.$estimateSize();
8226
- if ($estimatedSize >= 0) {
8227
- $array = $generator.$apply($estimatedSize);
8228
- $consumer = new jusi_SimpleStreamImpl$ArrayFillingConsumer();
8229
- $consumer.$array4 = $array;
8230
- while (jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8231
- }
8232
- var$6 = $array.data;
8233
- $estimatedSize = $consumer.$index3;
8234
- if ($estimatedSize < var$6.length)
8235
- $array = ju_Arrays_copyOf($array, $estimatedSize);
8236
- return $array;
8237
- }
8238
- $list = ju_ArrayList__init_();
8239
- while (true) {
8240
- ju_Objects_requireNonNull($list);
8241
- $consumer = new jusi_SimpleStreamImpl$toArray$lambda$_21_0();
8242
- $consumer.$_02 = $list;
8243
- if (!jusi_WrappingStreamImpl_next(var$2, $consumer))
8244
- break;
8245
- }
8246
- $list = $list;
8247
- $array = $generator.$apply($list.$size0);
8248
- $i = 0;
8249
- while (true) {
8250
- var$6 = $array.data;
8251
- if ($i >= var$6.length)
8252
- break;
8253
- var$6[$i] = ju_ArrayList_get($list, $i);
8254
- $i = $i + 1 | 0;
8255
- }
8256
- return $array;
8257
- };
8258
- var jusi_SimpleStreamImpl_findFirst = ($this) => {
8259
- let $consumer, var$2, var$3;
8260
- $consumer = new jusi_FindFirstConsumer();
8261
- var$2 = $this;
8262
- while ($consumer.$result === null && jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8263
- }
8264
- $consumer = $consumer.$result;
8265
- if ($consumer !== null)
8266
- var$3 = ju_Optional__init_(ju_Objects_requireNonNull($consumer));
8267
- else {
8268
- if (ju_Optional_emptyInstance === null)
8269
- ju_Optional_emptyInstance = ju_Optional__init_(null);
8270
- var$3 = ju_Optional_emptyInstance;
8271
- }
8272
- return var$3;
8273
- };
8274
- function jusi_ArrayStreamImpl() {
8275
- let a = this;
8276
- jusi_SimpleStreamImpl.call(a);
8277
- a.$array6 = null;
8278
- a.$index1 = 0;
8279
- a.$end1 = 0;
8280
- a.$size2 = 0;
8216
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
8217
+ jl_Object.call(this);
8218
+ this.$_06 = null;
8281
8219
  }
8282
- var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8220
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8283
8221
  let var$2, var$3;
8284
- a: {
8285
- while (true) {
8286
- var$2 = $this.$index1;
8287
- if (var$2 >= $this.$end1)
8288
- break a;
8289
- var$3 = $this.$array6.data;
8290
- $this.$index1 = var$2 + 1 | 0;
8291
- if ($consumer.$test(var$3[var$2]))
8292
- continue;
8293
- else
8294
- break;
8295
- }
8296
- }
8297
- return $this.$index1 >= $this.$end1 ? 0 : 1;
8298
- };
8299
- var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8300
- return $this.$size2;
8222
+ var$1 = var$1;
8223
+ var$2 = var$0.$_06;
8224
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
8225
+ var$3.$this$016 = var$2;
8226
+ var$3.$isWarning0 = var$1.$isWarning;
8227
+ var$3.$message2 = var$1.$message0;
8228
+ var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8229
+ var$3.$filename2 = var$1.$filename0;
8230
+ var$3.$lineNumber0 = var$1.$line;
8231
+ var$3.$columnNumber = var$1.$position2;
8232
+ return var$3;
8301
8233
  };
8234
+ var juf_Supplier = $rt_classWithoutFields(0);
8235
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8236
+ var juf_BiConsumer = $rt_classWithoutFields(0);
8237
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8238
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8302
8239
  function asrs_BackStepper$BackstepStack() {
8303
8240
  let a = this;
8304
8241
  jl_Object.call(a);
@@ -8401,29 +8338,104 @@ var asrs_BackStepper$BackstepStack_peek = ($this) => {
8401
8338
  jl_Object_monitorExitSync($this);
8402
8339
  }
8403
8340
  };
8404
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
8405
- jl_Object.call(this);
8406
- this.$_06 = null;
8341
+ var jl_AutoCloseable = $rt_classWithoutFields(0);
8342
+ var jus_BaseStream = $rt_classWithoutFields(0);
8343
+ var jus_Stream = $rt_classWithoutFields(0);
8344
+ var jusi_SimpleStreamImpl = $rt_classWithoutFields();
8345
+ var jusi_SimpleStreamImpl_filter = ($this, $predicate) => {
8346
+ let var$2;
8347
+ var$2 = new jusi_FilteringStreamImpl();
8348
+ jusi_WrappingStreamImpl__init_(var$2, $this);
8349
+ var$2.$filter0 = $predicate;
8350
+ return var$2;
8351
+ };
8352
+ var jusi_SimpleStreamImpl_map = ($this, $mapper) => {
8353
+ let var$2;
8354
+ var$2 = new jusi_MappingStreamImpl();
8355
+ jusi_WrappingStreamImpl__init_(var$2, $this);
8356
+ var$2.$mapper = $mapper;
8357
+ return var$2;
8358
+ };
8359
+ var jusi_SimpleStreamImpl_toArray = ($this, $generator) => {
8360
+ let var$2, $estimatedSize, $array, $consumer, var$6, $list, $i;
8361
+ var$2 = $this;
8362
+ $estimatedSize = var$2.$sourceStream.$estimateSize();
8363
+ if ($estimatedSize >= 0) {
8364
+ $array = $generator.$apply($estimatedSize);
8365
+ $consumer = new jusi_SimpleStreamImpl$ArrayFillingConsumer();
8366
+ $consumer.$array4 = $array;
8367
+ while (jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8368
+ }
8369
+ var$6 = $array.data;
8370
+ $estimatedSize = $consumer.$index3;
8371
+ if ($estimatedSize < var$6.length)
8372
+ $array = ju_Arrays_copyOf($array, $estimatedSize);
8373
+ return $array;
8374
+ }
8375
+ $list = ju_ArrayList__init_();
8376
+ while (true) {
8377
+ ju_Objects_requireNonNull($list);
8378
+ $consumer = new jusi_SimpleStreamImpl$toArray$lambda$_21_0();
8379
+ $consumer.$_02 = $list;
8380
+ if (!jusi_WrappingStreamImpl_next(var$2, $consumer))
8381
+ break;
8382
+ }
8383
+ $list = $list;
8384
+ $array = $generator.$apply($list.$size0);
8385
+ $i = 0;
8386
+ while (true) {
8387
+ var$6 = $array.data;
8388
+ if ($i >= var$6.length)
8389
+ break;
8390
+ var$6[$i] = ju_ArrayList_get($list, $i);
8391
+ $i = $i + 1 | 0;
8392
+ }
8393
+ return $array;
8394
+ };
8395
+ var jusi_SimpleStreamImpl_findFirst = ($this) => {
8396
+ let $consumer, var$2, var$3;
8397
+ $consumer = new jusi_FindFirstConsumer();
8398
+ var$2 = $this;
8399
+ while ($consumer.$result === null && jusi_WrappingStreamImpl_next(var$2, $consumer)) {
8400
+ }
8401
+ $consumer = $consumer.$result;
8402
+ if ($consumer !== null)
8403
+ var$3 = ju_Optional__init_(ju_Objects_requireNonNull($consumer));
8404
+ else {
8405
+ if (ju_Optional_emptyInstance === null)
8406
+ ju_Optional_emptyInstance = ju_Optional__init_(null);
8407
+ var$3 = ju_Optional_emptyInstance;
8408
+ }
8409
+ return var$3;
8410
+ };
8411
+ function jusi_ArrayStreamImpl() {
8412
+ let a = this;
8413
+ jusi_SimpleStreamImpl.call(a);
8414
+ a.$array6 = null;
8415
+ a.$index1 = 0;
8416
+ a.$end1 = 0;
8417
+ a.$size2 = 0;
8407
8418
  }
8408
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8419
+ var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8409
8420
  let var$2, var$3;
8410
- var$1 = var$1;
8411
- var$2 = var$0.$_06;
8412
- var$3 = new asr_JsCompilationResult$JsCompilationError();
8413
- var$3.$this$016 = var$2;
8414
- var$3.$isWarning0 = var$1.$isWarning;
8415
- var$3.$message2 = var$1.$message0;
8416
- var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8417
- var$3.$filename2 = var$1.$filename0;
8418
- var$3.$lineNumber0 = var$1.$line;
8419
- var$3.$columnNumber = var$1.$position2;
8420
- return var$3;
8421
+ a: {
8422
+ while (true) {
8423
+ var$2 = $this.$index1;
8424
+ if (var$2 >= $this.$end1)
8425
+ break a;
8426
+ var$3 = $this.$array6.data;
8427
+ $this.$index1 = var$2 + 1 | 0;
8428
+ if ($consumer.$test(var$3[var$2]))
8429
+ continue;
8430
+ else
8431
+ break;
8432
+ }
8433
+ }
8434
+ return $this.$index1 >= $this.$end1 ? 0 : 1;
8435
+ };
8436
+ var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8437
+ return $this.$size2;
8421
8438
  };
8422
- var juf_Supplier = $rt_classWithoutFields(0);
8423
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8424
- var juf_BiConsumer = $rt_classWithoutFields(0);
8425
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8426
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8427
8439
  var jl_Math = $rt_classWithoutFields();
8428
8440
  var jl_Math_pow = ($x, $y) => {
8429
8441
  return jl_Math_powImpl($x, $y);
@@ -13433,22 +13445,6 @@ var jusi_StreamOverSpliterator_next = ($this, $consumer) => {
13433
13445
  var jusi_StreamOverSpliterator_estimateSize = ($this) => {
13434
13446
  return Long_lo(Long_fromInt($this.$spliterator0.$collection.$size()));
13435
13447
  };
13436
- var jus_IntStream = $rt_classWithoutFields(0);
13437
- var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13438
- function jusi_MappingToIntStreamImpl() {
13439
- let a = this;
13440
- jusi_SimpleIntStreamImpl.call(a);
13441
- a.$source1 = null;
13442
- a.$mapper0 = null;
13443
- }
13444
- var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13445
- let var$2, var$3;
13446
- var$2 = $this.$source1;
13447
- var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13448
- var$3.$_09 = $this;
13449
- var$3.$_13 = $consumer;
13450
- return jusi_ArrayStreamImpl_next(var$2, var$3);
13451
- };
13452
13448
  function jusi_WrappingStreamImpl() {
13453
13449
  jusi_SimpleStreamImpl.call(this);
13454
13450
  this.$sourceStream = null;
@@ -13470,6 +13466,22 @@ var jusi_MappingStreamImpl_wrap = ($this, $consumer) => {
13470
13466
  var$2.$_10 = $consumer;
13471
13467
  return var$2;
13472
13468
  };
13469
+ var jus_IntStream = $rt_classWithoutFields(0);
13470
+ var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13471
+ function jusi_MappingToIntStreamImpl() {
13472
+ let a = this;
13473
+ jusi_SimpleIntStreamImpl.call(a);
13474
+ a.$source1 = null;
13475
+ a.$mapper0 = null;
13476
+ }
13477
+ var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13478
+ let var$2, var$3;
13479
+ var$2 = $this.$source1;
13480
+ var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13481
+ var$3.$_09 = $this;
13482
+ var$3.$_13 = $consumer;
13483
+ return jusi_ArrayStreamImpl_next(var$2, var$3);
13484
+ };
13473
13485
  var asru_Binary = $rt_classWithoutFields();
13474
13486
  var asru_Binary_chars = null;
13475
13487
  var asru_Binary_intToBinaryString = ($value, $length) => {
@@ -13727,89 +13739,6 @@ var ju_AbstractList$1_next = ($this) => {
13727
13739
  $this.$index4 = var$3 + 1 | 0;
13728
13740
  return var$2.$get0(var$3);
13729
13741
  };
13730
- var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
13731
- var asrs_Simulator$Reason_BREAKPOINT = null;
13732
- var asrs_Simulator$Reason_EXCEPTION = null;
13733
- var asrs_Simulator$Reason_MAX_STEPS = null;
13734
- var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
13735
- var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
13736
- var asrs_Simulator$Reason_PAUSE = null;
13737
- var asrs_Simulator$Reason_STOP = null;
13738
- var asrs_Simulator$Reason_$VALUES = null;
13739
- var asrs_Simulator$Reason_values = () => {
13740
- return asrs_Simulator$Reason_$VALUES.$clone0();
13741
- };
13742
- var asrs_Simulator$Reason__clinit_ = () => {
13743
- let var$1, var$2, var$3;
13744
- var$1 = new asrs_Simulator$Reason();
13745
- jl_Enum__init_(var$1, $rt_s(1084), 0);
13746
- asrs_Simulator$Reason_BREAKPOINT = var$1;
13747
- var$1 = new asrs_Simulator$Reason();
13748
- jl_Enum__init_(var$1, $rt_s(1085), 1);
13749
- asrs_Simulator$Reason_EXCEPTION = var$1;
13750
- var$1 = new asrs_Simulator$Reason();
13751
- jl_Enum__init_(var$1, $rt_s(1086), 2);
13752
- asrs_Simulator$Reason_MAX_STEPS = var$1;
13753
- var$1 = new asrs_Simulator$Reason();
13754
- jl_Enum__init_(var$1, $rt_s(1087), 3);
13755
- asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
13756
- var$1 = new asrs_Simulator$Reason();
13757
- jl_Enum__init_(var$1, $rt_s(1088), 4);
13758
- asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
13759
- var$1 = new asrs_Simulator$Reason();
13760
- jl_Enum__init_(var$1, $rt_s(1089), 5);
13761
- asrs_Simulator$Reason_PAUSE = var$1;
13762
- var$1 = new asrs_Simulator$Reason();
13763
- jl_Enum__init_(var$1, $rt_s(1090), 6);
13764
- asrs_Simulator$Reason_STOP = var$1;
13765
- var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
13766
- var$3 = var$2.data;
13767
- var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
13768
- var$3[1] = asrs_Simulator$Reason_EXCEPTION;
13769
- var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
13770
- var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
13771
- var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
13772
- var$3[5] = asrs_Simulator$Reason_PAUSE;
13773
- var$3[6] = var$1;
13774
- asrs_Simulator$Reason_$VALUES = var$2;
13775
- };
13776
- var jlr_Array = $rt_classWithoutFields();
13777
- var jlr_Array_getLength = (var$1) => {
13778
- if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
13779
- $rt_throw(jl_IllegalArgumentException__init_());
13780
- }
13781
- return var$1.data.length;
13782
- };
13783
- var jlr_Array_newInstance = (var$1, $length) => {
13784
- if (var$1 === null) {
13785
- var$1 = new jl_NullPointerException();
13786
- jl_Throwable__init_(var$1);
13787
- $rt_throw(var$1);
13788
- }
13789
- if (var$1 === $rt_cls($rt_voidcls)) {
13790
- var$1 = new jl_IllegalArgumentException();
13791
- jl_Throwable__init_(var$1);
13792
- $rt_throw(var$1);
13793
- }
13794
- if ($length >= 0)
13795
- return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
13796
- var$1 = new jl_NegativeArraySizeException();
13797
- jl_Throwable__init_(var$1);
13798
- $rt_throw(var$1);
13799
- };
13800
- var jlr_Array_newInstanceImpl = (var$1, var$2) => {
13801
- if (var$1.$meta.primitive) {
13802
- switch (var$1) {
13803
- }
13804
- ;
13805
- }
13806
- return $rt_createArray(var$1, var$2);
13807
- };
13808
- var asrrh_Stack = $rt_classWithoutFields();
13809
- var asrrh_Stack_callStack = null;
13810
- var asrrh_Stack__clinit_ = () => {
13811
- asrrh_Stack_callStack = ju_ArrayList__init_();
13812
- };
13813
13742
  var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
13814
13743
  var asrrh_FloatingPointRegisterFile_instance = null;
13815
13744
  var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
@@ -13854,38 +13783,38 @@ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
13854
13783
  var$1 = new asrrh_RegisterBlock();
13855
13784
  var$2 = $rt_createArray(asrrh_Register, 32);
13856
13785
  var$3 = var$2.data;
13857
- var$3[0] = asrrh_Register__init_($rt_s(1091), 0, Long_ZERO);
13858
- var$3[1] = asrrh_Register__init_($rt_s(1092), 1, Long_ZERO);
13859
- var$3[2] = asrrh_Register__init_($rt_s(1093), 2, Long_ZERO);
13860
- var$3[3] = asrrh_Register__init_($rt_s(1094), 3, Long_ZERO);
13861
- var$3[4] = asrrh_Register__init_($rt_s(1095), 4, Long_ZERO);
13862
- var$3[5] = asrrh_Register__init_($rt_s(1096), 5, Long_ZERO);
13863
- var$3[6] = asrrh_Register__init_($rt_s(1097), 6, Long_ZERO);
13864
- var$3[7] = asrrh_Register__init_($rt_s(1098), 7, Long_ZERO);
13865
- var$3[8] = asrrh_Register__init_($rt_s(1099), 8, Long_ZERO);
13866
- var$3[9] = asrrh_Register__init_($rt_s(1100), 9, Long_ZERO);
13786
+ var$3[0] = asrrh_Register__init_($rt_s(1084), 0, Long_ZERO);
13787
+ var$3[1] = asrrh_Register__init_($rt_s(1085), 1, Long_ZERO);
13788
+ var$3[2] = asrrh_Register__init_($rt_s(1086), 2, Long_ZERO);
13789
+ var$3[3] = asrrh_Register__init_($rt_s(1087), 3, Long_ZERO);
13790
+ var$3[4] = asrrh_Register__init_($rt_s(1088), 4, Long_ZERO);
13791
+ var$3[5] = asrrh_Register__init_($rt_s(1089), 5, Long_ZERO);
13792
+ var$3[6] = asrrh_Register__init_($rt_s(1090), 6, Long_ZERO);
13793
+ var$3[7] = asrrh_Register__init_($rt_s(1091), 7, Long_ZERO);
13794
+ var$3[8] = asrrh_Register__init_($rt_s(1092), 8, Long_ZERO);
13795
+ var$3[9] = asrrh_Register__init_($rt_s(1093), 9, Long_ZERO);
13867
13796
  var$3[10] = asrrh_Register__init_($rt_s(1043), 10, Long_ZERO);
13868
13797
  var$3[11] = asrrh_Register__init_($rt_s(1037), 11, Long_ZERO);
13869
- var$3[12] = asrrh_Register__init_($rt_s(1101), 12, Long_ZERO);
13870
- var$3[13] = asrrh_Register__init_($rt_s(1102), 13, Long_ZERO);
13871
- var$3[14] = asrrh_Register__init_($rt_s(1103), 14, Long_ZERO);
13872
- var$3[15] = asrrh_Register__init_($rt_s(1104), 15, Long_ZERO);
13873
- var$3[16] = asrrh_Register__init_($rt_s(1105), 16, Long_ZERO);
13874
- var$3[17] = asrrh_Register__init_($rt_s(1106), 17, Long_ZERO);
13875
- var$3[18] = asrrh_Register__init_($rt_s(1107), 18, Long_ZERO);
13876
- var$3[19] = asrrh_Register__init_($rt_s(1108), 19, Long_ZERO);
13877
- var$3[20] = asrrh_Register__init_($rt_s(1109), 20, Long_ZERO);
13878
- var$3[21] = asrrh_Register__init_($rt_s(1110), 21, Long_ZERO);
13879
- var$3[22] = asrrh_Register__init_($rt_s(1111), 22, Long_ZERO);
13880
- var$3[23] = asrrh_Register__init_($rt_s(1112), 23, Long_ZERO);
13881
- var$3[24] = asrrh_Register__init_($rt_s(1113), 24, Long_ZERO);
13882
- var$3[25] = asrrh_Register__init_($rt_s(1114), 25, Long_ZERO);
13883
- var$3[26] = asrrh_Register__init_($rt_s(1115), 26, Long_ZERO);
13884
- var$3[27] = asrrh_Register__init_($rt_s(1116), 27, Long_ZERO);
13885
- var$3[28] = asrrh_Register__init_($rt_s(1117), 28, Long_ZERO);
13886
- var$3[29] = asrrh_Register__init_($rt_s(1118), 29, Long_ZERO);
13887
- var$3[30] = asrrh_Register__init_($rt_s(1119), 30, Long_ZERO);
13888
- var$3[31] = asrrh_Register__init_($rt_s(1120), 31, Long_ZERO);
13798
+ var$3[12] = asrrh_Register__init_($rt_s(1094), 12, Long_ZERO);
13799
+ var$3[13] = asrrh_Register__init_($rt_s(1095), 13, Long_ZERO);
13800
+ var$3[14] = asrrh_Register__init_($rt_s(1096), 14, Long_ZERO);
13801
+ var$3[15] = asrrh_Register__init_($rt_s(1097), 15, Long_ZERO);
13802
+ var$3[16] = asrrh_Register__init_($rt_s(1098), 16, Long_ZERO);
13803
+ var$3[17] = asrrh_Register__init_($rt_s(1099), 17, Long_ZERO);
13804
+ var$3[18] = asrrh_Register__init_($rt_s(1100), 18, Long_ZERO);
13805
+ var$3[19] = asrrh_Register__init_($rt_s(1101), 19, Long_ZERO);
13806
+ var$3[20] = asrrh_Register__init_($rt_s(1102), 20, Long_ZERO);
13807
+ var$3[21] = asrrh_Register__init_($rt_s(1103), 21, Long_ZERO);
13808
+ var$3[22] = asrrh_Register__init_($rt_s(1104), 22, Long_ZERO);
13809
+ var$3[23] = asrrh_Register__init_($rt_s(1105), 23, Long_ZERO);
13810
+ var$3[24] = asrrh_Register__init_($rt_s(1106), 24, Long_ZERO);
13811
+ var$3[25] = asrrh_Register__init_($rt_s(1107), 25, Long_ZERO);
13812
+ var$3[26] = asrrh_Register__init_($rt_s(1108), 26, Long_ZERO);
13813
+ var$3[27] = asrrh_Register__init_($rt_s(1109), 27, Long_ZERO);
13814
+ var$3[28] = asrrh_Register__init_($rt_s(1110), 28, Long_ZERO);
13815
+ var$3[29] = asrrh_Register__init_($rt_s(1111), 29, Long_ZERO);
13816
+ var$3[30] = asrrh_Register__init_($rt_s(1112), 30, Long_ZERO);
13817
+ var$3[31] = asrrh_Register__init_($rt_s(1113), 31, Long_ZERO);
13889
13818
  asrrh_RegisterBlock__init_(var$1, 102, var$2);
13890
13819
  asrrh_FloatingPointRegisterFile_instance = var$1;
13891
13820
  };
@@ -13953,25 +13882,25 @@ var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
13953
13882
  var$2[0] = asrrh_MaskedRegister__init_($rt_s(675), 0, Long_ZERO, Long_fromInt(-18));
13954
13883
  var$2[1] = null;
13955
13884
  var$2[2] = null;
13956
- var$2[3] = asrrh_MaskedRegister__init_($rt_s(1121), 3, Long_ZERO, Long_fromInt(-256));
13957
- var$2[4] = asrrh_Register__init_($rt_s(1122), 4, Long_ZERO);
13958
- var$2[5] = asrrh_Register__init_($rt_s(1123), 5, Long_ZERO);
13959
- var$2[6] = asrrh_Register__init_($rt_s(1124), 64, Long_ZERO);
13885
+ var$2[3] = asrrh_MaskedRegister__init_($rt_s(1114), 3, Long_ZERO, Long_fromInt(-256));
13886
+ var$2[4] = asrrh_Register__init_($rt_s(1115), 4, Long_ZERO);
13887
+ var$2[5] = asrrh_Register__init_($rt_s(1116), 5, Long_ZERO);
13888
+ var$2[6] = asrrh_Register__init_($rt_s(1117), 64, Long_ZERO);
13960
13889
  var$2[7] = asrrh_Register__init_($rt_s(676), 65, Long_ZERO);
13961
- var$2[8] = asrrh_Register__init_($rt_s(1125), 66, Long_ZERO);
13962
- var$2[9] = asrrh_Register__init_($rt_s(1126), 67, Long_ZERO);
13963
- var$2[10] = asrrh_Register__init_($rt_s(1127), 68, Long_ZERO);
13964
- var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1128), 3072, 0);
13965
- var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1129), 3073, 0);
13966
- var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1130), 3074, 0);
13890
+ var$2[8] = asrrh_Register__init_($rt_s(1118), 66, Long_ZERO);
13891
+ var$2[9] = asrrh_Register__init_($rt_s(1119), 67, Long_ZERO);
13892
+ var$2[10] = asrrh_Register__init_($rt_s(1120), 68, Long_ZERO);
13893
+ var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1121), 3072, 0);
13894
+ var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1122), 3073, 0);
13895
+ var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1123), 3074, 0);
13967
13896
  var$2[14] = null;
13968
13897
  var$2[15] = null;
13969
13898
  var$2[16] = null;
13970
13899
  var$2[1] = asrrh_LinkedRegister__init_($rt_s(442), 1, var$2[3], Long_fromInt(31));
13971
13900
  var$2[2] = asrrh_LinkedRegister__init_($rt_s(443), 2, var$2[3], Long_fromInt(224));
13972
- var$2[14] = asrrh_LinkedRegister__init_($rt_s(1131), 3200, var$2[11], Long_create(0, 4294967295));
13973
- var$2[15] = asrrh_LinkedRegister__init_($rt_s(1132), 3201, var$2[12], Long_create(0, 4294967295));
13974
- var$2[16] = asrrh_LinkedRegister__init_($rt_s(1133), 3202, var$2[13], Long_create(0, 4294967295));
13901
+ var$2[14] = asrrh_LinkedRegister__init_($rt_s(1124), 3200, var$2[11], Long_create(0, 4294967295));
13902
+ var$2[15] = asrrh_LinkedRegister__init_($rt_s(1125), 3201, var$2[12], Long_create(0, 4294967295));
13903
+ var$2[16] = asrrh_LinkedRegister__init_($rt_s(1126), 3202, var$2[13], Long_create(0, 4294967295));
13975
13904
  asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
13976
13905
  };
13977
13906
  var asrrh_InterruptController = $rt_classWithoutFields();
@@ -14077,7 +14006,7 @@ var asrrh_InterruptController_claimExternal = () => {
14077
14006
  a: {
14078
14007
  try {
14079
14008
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14080
- $rt_throw(jl_AssertionError__init_($rt_s(1134)));
14009
+ $rt_throw(jl_AssertionError__init_($rt_s(1127)));
14081
14010
  asrrh_InterruptController_externalPending = 0;
14082
14011
  var$2 = asrrh_InterruptController_externalValue;
14083
14012
  jl_Object_monitorExitSync(var$1);
@@ -14098,7 +14027,7 @@ var asrrh_InterruptController_claimTimer = () => {
14098
14027
  a: {
14099
14028
  try {
14100
14029
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14101
- $rt_throw(jl_AssertionError__init_($rt_s(1135)));
14030
+ $rt_throw(jl_AssertionError__init_($rt_s(1128)));
14102
14031
  asrrh_InterruptController_timerPending = 0;
14103
14032
  var$2 = asrrh_InterruptController_timerValue;
14104
14033
  jl_Object_monitorExitSync(var$1);
@@ -14120,9 +14049,9 @@ var asrrh_InterruptController_claimTrap = () => {
14120
14049
  try {
14121
14050
  var$2 = asrrh_InterruptController_$assertionsDisabled;
14122
14051
  if (!var$2 && !asrrh_InterruptController_trapPending)
14123
- $rt_throw(jl_AssertionError__init_($rt_s(1136)));
14052
+ $rt_throw(jl_AssertionError__init_($rt_s(1129)));
14124
14053
  if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14125
- $rt_throw(jl_AssertionError__init_($rt_s(1137)));
14054
+ $rt_throw(jl_AssertionError__init_($rt_s(1130)));
14126
14055
  asrrh_InterruptController_trapPending = 0;
14127
14056
  var$3 = asrrh_InterruptController_trapSE;
14128
14057
  jl_Object_monitorExitSync(var$1);
@@ -14143,6 +14072,89 @@ var asrrh_InterruptController__clinit_ = () => {
14143
14072
  asrrh_InterruptController_timerPending = 0;
14144
14073
  asrrh_InterruptController_trapPending = 0;
14145
14074
  };
14075
+ var asrrh_Stack = $rt_classWithoutFields();
14076
+ var asrrh_Stack_callStack = null;
14077
+ var asrrh_Stack__clinit_ = () => {
14078
+ asrrh_Stack_callStack = ju_ArrayList__init_();
14079
+ };
14080
+ var jlr_Array = $rt_classWithoutFields();
14081
+ var jlr_Array_getLength = (var$1) => {
14082
+ if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
14083
+ $rt_throw(jl_IllegalArgumentException__init_());
14084
+ }
14085
+ return var$1.data.length;
14086
+ };
14087
+ var jlr_Array_newInstance = (var$1, $length) => {
14088
+ if (var$1 === null) {
14089
+ var$1 = new jl_NullPointerException();
14090
+ jl_Throwable__init_(var$1);
14091
+ $rt_throw(var$1);
14092
+ }
14093
+ if (var$1 === $rt_cls($rt_voidcls)) {
14094
+ var$1 = new jl_IllegalArgumentException();
14095
+ jl_Throwable__init_(var$1);
14096
+ $rt_throw(var$1);
14097
+ }
14098
+ if ($length >= 0)
14099
+ return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
14100
+ var$1 = new jl_NegativeArraySizeException();
14101
+ jl_Throwable__init_(var$1);
14102
+ $rt_throw(var$1);
14103
+ };
14104
+ var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14105
+ if (var$1.$meta.primitive) {
14106
+ switch (var$1) {
14107
+ }
14108
+ ;
14109
+ }
14110
+ return $rt_createArray(var$1, var$2);
14111
+ };
14112
+ var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14113
+ var asrs_Simulator$Reason_BREAKPOINT = null;
14114
+ var asrs_Simulator$Reason_EXCEPTION = null;
14115
+ var asrs_Simulator$Reason_MAX_STEPS = null;
14116
+ var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
14117
+ var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
14118
+ var asrs_Simulator$Reason_PAUSE = null;
14119
+ var asrs_Simulator$Reason_STOP = null;
14120
+ var asrs_Simulator$Reason_$VALUES = null;
14121
+ var asrs_Simulator$Reason_values = () => {
14122
+ return asrs_Simulator$Reason_$VALUES.$clone0();
14123
+ };
14124
+ var asrs_Simulator$Reason__clinit_ = () => {
14125
+ let var$1, var$2, var$3;
14126
+ var$1 = new asrs_Simulator$Reason();
14127
+ jl_Enum__init_(var$1, $rt_s(1131), 0);
14128
+ asrs_Simulator$Reason_BREAKPOINT = var$1;
14129
+ var$1 = new asrs_Simulator$Reason();
14130
+ jl_Enum__init_(var$1, $rt_s(1132), 1);
14131
+ asrs_Simulator$Reason_EXCEPTION = var$1;
14132
+ var$1 = new asrs_Simulator$Reason();
14133
+ jl_Enum__init_(var$1, $rt_s(1133), 2);
14134
+ asrs_Simulator$Reason_MAX_STEPS = var$1;
14135
+ var$1 = new asrs_Simulator$Reason();
14136
+ jl_Enum__init_(var$1, $rt_s(1134), 3);
14137
+ asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14138
+ var$1 = new asrs_Simulator$Reason();
14139
+ jl_Enum__init_(var$1, $rt_s(1135), 4);
14140
+ asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14141
+ var$1 = new asrs_Simulator$Reason();
14142
+ jl_Enum__init_(var$1, $rt_s(1136), 5);
14143
+ asrs_Simulator$Reason_PAUSE = var$1;
14144
+ var$1 = new asrs_Simulator$Reason();
14145
+ jl_Enum__init_(var$1, $rt_s(1137), 6);
14146
+ asrs_Simulator$Reason_STOP = var$1;
14147
+ var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14148
+ var$3 = var$2.data;
14149
+ var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
14150
+ var$3[1] = asrs_Simulator$Reason_EXCEPTION;
14151
+ var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
14152
+ var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
14153
+ var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
14154
+ var$3[5] = asrs_Simulator$Reason_PAUSE;
14155
+ var$3[6] = var$1;
14156
+ asrs_Simulator$Reason_$VALUES = var$2;
14157
+ };
14146
14158
  function jur_Pattern() {
14147
14159
  let a = this;
14148
14160
  jl_Object.call(a);
@@ -23873,10 +23885,10 @@ var asrs_Simulator$SimThread_handleTrap = ($this, $se, $pc) => {
23873
23885
  if (!$utvec && $se.$cause < 0)
23874
23886
  $rt_throw(jl_AssertionError__init_($rt_s(1501)));
23875
23887
  a: {
23876
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($se.$cause));
23888
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($se.$cause));
23877
23889
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(676), Long_fromInt($pc));
23878
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($se.$value5));
23879
- $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123)) & -4;
23890
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1119), Long_fromInt($se.$value5));
23891
+ $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1116)) & -4;
23880
23892
  $exceptionHandler = null;
23881
23893
  if (!(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(675)) & 1))
23882
23894
  var$6 = $exceptionHandler;
@@ -23912,12 +23924,12 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
23912
23924
  if (!$mode && !($cause & -2147483648))
23913
23925
  $rt_throw(jl_AssertionError__init_($rt_s(1502)));
23914
23926
  $code = $cause & 2147483647;
23915
- if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(675)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122)) & 1 << $code))
23927
+ if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(675)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1115)) & 1 << $code))
23916
23928
  $rt_throw(jl_AssertionError__init_($rt_s(1503)));
23917
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($cause));
23929
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($cause));
23918
23930
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(676), Long_fromInt($pc));
23919
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($value));
23920
- $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123));
23931
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1119), Long_fromInt($value));
23932
+ $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1116));
23921
23933
  $base = $utvec & -4;
23922
23934
  if (($utvec & 3) == 2)
23923
23935
  $base = $base + (4 * $code | 0) | 0;
@@ -23997,8 +24009,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
23997
24009
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
23998
24010
  return;
23999
24011
  }
24000
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24001
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24012
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24013
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24002
24014
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24003
24015
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24004
24016
  $se = asrrh_InterruptController_lock;
@@ -24189,8 +24201,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24189
24201
  jl_Object_monitorExit($se);
24190
24202
  $rt_throw($instruction);
24191
24203
  }
24192
- if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127))))
24193
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1127), $cycle);
24204
+ if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120))))
24205
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1120), $cycle);
24194
24206
  var$14 = $this.$maxSteps;
24195
24207
  if (var$14 > 0) {
24196
24208
  $steps = $steps + 1 | 0;
@@ -24311,12 +24323,12 @@ var asrs_Simulator$SimThread_run = ($this) => {
24311
24323
  $waiting = 1;
24312
24324
  }
24313
24325
  v: {
24314
- $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1128));
24315
- $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1130));
24326
+ $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24327
+ $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1123));
24316
24328
  $time = jl_System_currentTimeMillis();
24317
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1128), Long_add($cycle, Long_fromInt(1)));
24318
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1130), Long_add($instret, Long_fromInt(1)));
24319
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1129), $time);
24329
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1121), Long_add($cycle, Long_fromInt(1)));
24330
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1123), Long_add($instret, Long_fromInt(1)));
24331
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1122), $time);
24320
24332
  if (!$ebreak) {
24321
24333
  var$1 = $this.$breakPoints;
24322
24334
  if (var$1 === null)
@@ -24339,8 +24351,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24339
24351
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24340
24352
  return;
24341
24353
  }
24342
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24343
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24354
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24355
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24344
24356
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24345
24357
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24346
24358
  $se = asrrh_InterruptController_lock;
@@ -24376,8 +24388,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24376
24388
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24377
24389
  return;
24378
24390
  }
24379
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24380
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24391
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24392
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24381
24393
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24382
24394
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24383
24395
  $se = asrrh_InterruptController_lock;
@@ -24415,8 +24427,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24415
24427
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24416
24428
  return;
24417
24429
  }
24418
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24419
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24430
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24431
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1115));
24420
24432
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(675)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24421
24433
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24422
24434
  $se = asrrh_InterruptController_lock;
@@ -31123,6 +31135,108 @@ var asrj_Environment__init_ = () => {
31123
31135
  asrj_Environment__init_0(var_0);
31124
31136
  return var_0;
31125
31137
  };
31138
+ var asrjo_Comparisons = $rt_classWithoutFields();
31139
+ var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31140
+ if ($a.$isZero()) {
31141
+ if ($b.$isZero())
31142
+ return 0;
31143
+ return !$b.$isSignMinus() ? -1 : 1;
31144
+ }
31145
+ if ($b.$isZero())
31146
+ return !$a.$isSignMinus() ? 1 : -1;
31147
+ if (!$a.$isInfinite()) {
31148
+ if (!$b.$isInfinite())
31149
+ return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
31150
+ return !$b.$isSignMinus() ? -1 : 1;
31151
+ }
31152
+ if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
31153
+ return 0;
31154
+ return !$a.$isSignMinus() ? -1 : 1;
31155
+ };
31156
+ var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
31157
+ if ($a.$isSignMinus() != $b.$isSignMinus()) {
31158
+ if ($a.$isSignMinus())
31159
+ $b = $a;
31160
+ return $b;
31161
+ }
31162
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31163
+ if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
31164
+ return $b;
31165
+ return $a;
31166
+ }
31167
+ if ($a.$isInfinite() != $a.$isSignMinus())
31168
+ return $b;
31169
+ return $a;
31170
+ };
31171
+ var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
31172
+ let var$4;
31173
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31174
+ var$4 = $env.$flags;
31175
+ $env = asrj_Flags_invalid;
31176
+ ju_GenericEnumSet_add(var$4, $env);
31177
+ }
31178
+ if ($a.$isNaN()) {
31179
+ if ($b.$isNaN())
31180
+ $b = $b.$NaN();
31181
+ } else
31182
+ $b = !$b.$isNaN() ? null : $a;
31183
+ return $b;
31184
+ };
31185
+ var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
31186
+ let $tmp_0;
31187
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31188
+ if ($tmp_0 !== null)
31189
+ return $tmp_0;
31190
+ return asrjo_Comparisons_nonNaNmin($a, $b);
31191
+ };
31192
+ var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
31193
+ let $tmp_0;
31194
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31195
+ if ($tmp_0 !== null)
31196
+ return $tmp_0;
31197
+ if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
31198
+ $a = $b;
31199
+ return $a;
31200
+ };
31201
+ var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
31202
+ let var$4;
31203
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31204
+ var$4 = $env.$flags;
31205
+ $env = asrj_Flags_invalid;
31206
+ ju_GenericEnumSet_add(var$4, $env);
31207
+ }
31208
+ if (!$a.$isNaN() && !$b.$isNaN())
31209
+ return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
31210
+ return 0;
31211
+ };
31212
+ var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
31213
+ let var$4, var$5;
31214
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
31215
+ var$4 = $env.$flags;
31216
+ var$5 = asrj_Flags_invalid;
31217
+ ju_GenericEnumSet_add(var$4, var$5);
31218
+ }
31219
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31220
+ var$5 = $env.$flags;
31221
+ $env = asrj_Flags_invalid;
31222
+ ju_GenericEnumSet_add(var$5, $env);
31223
+ }
31224
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
31225
+ };
31226
+ var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
31227
+ let var$4, var$5;
31228
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
31229
+ var$4 = $env.$flags;
31230
+ var$5 = asrj_Flags_invalid;
31231
+ ju_GenericEnumSet_add(var$4, var$5);
31232
+ }
31233
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31234
+ var$5 = $env.$flags;
31235
+ $env = asrj_Flags_invalid;
31236
+ ju_GenericEnumSet_add(var$5, $env);
31237
+ }
31238
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
31239
+ };
31126
31240
  var asrjt_Floating = $rt_classWithoutFields();
31127
31241
  var asrjt_Floating_isFinite = ($this) => {
31128
31242
  return !$this.$isZero() && !$this.$isNormal() && !$this.$isSubnormal() ? 0 : 1;
@@ -31343,107 +31457,221 @@ var asrjt_Float32__clinit_ = () => {
31343
31457
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
31344
31458
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
31345
31459
  };
31346
- var asrjo_Comparisons = $rt_classWithoutFields();
31347
- var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31348
- if ($a.$isZero()) {
31349
- if ($b.$isZero())
31350
- return 0;
31351
- return !$b.$isSignMinus() ? -1 : 1;
31352
- }
31353
- if ($b.$isZero())
31354
- return !$a.$isSignMinus() ? 1 : -1;
31355
- if (!$a.$isInfinite()) {
31356
- if (!$b.$isInfinite())
31357
- return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
31358
- return !$b.$isSignMinus() ? -1 : 1;
31359
- }
31360
- if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
31460
+ function asrjt_Float64() {
31461
+ asrjt_Floating.call(this);
31462
+ this.$bits1 = Long_ZERO;
31463
+ }
31464
+ var asrjt_Float64_Zero = null;
31465
+ var asrjt_Float64_NegativeZero = null;
31466
+ var asrjt_Float64_NaN = null;
31467
+ var asrjt_Float64_Infinity = null;
31468
+ var asrjt_Float64_NegativeInfinity = null;
31469
+ var asrjt_Float64_$assertionsDisabled = 0;
31470
+ var asrjt_Float64__init_1 = ($this, $bits) => {
31471
+ $this.$bits1 = $bits;
31472
+ };
31473
+ var asrjt_Float64__init_ = (var_0) => {
31474
+ let var_1 = new asrjt_Float64();
31475
+ asrjt_Float64__init_1(var_1, var_0);
31476
+ return var_1;
31477
+ };
31478
+ var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31479
+ 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))));
31480
+ };
31481
+ var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31482
+ let var_3 = new asrjt_Float64();
31483
+ asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31484
+ return var_3;
31485
+ };
31486
+ var asrjt_Float64_exponent = ($this) => {
31487
+ return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31488
+ };
31489
+ var asrjt_Float64_negate = ($this) => {
31490
+ return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31491
+ };
31492
+ var asrjt_Float64_isSignMinus = ($this) => {
31493
+ return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31494
+ };
31495
+ var asrjt_Float64_isInfinite = ($this) => {
31496
+ return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31497
+ };
31498
+ var asrjt_Float64_isNormal = ($this) => {
31499
+ return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31500
+ };
31501
+ var asrjt_Float64_isSubnormal = ($this) => {
31502
+ return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31503
+ };
31504
+ var asrjt_Float64_isNaN = ($this) => {
31505
+ return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31506
+ };
31507
+ var asrjt_Float64_isSignalling = ($this) => {
31508
+ if (!asrjt_Float64_isNaN($this))
31361
31509
  return 0;
31362
- return !$a.$isSignMinus() ? -1 : 1;
31510
+ return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31363
31511
  };
31364
- var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
31365
- if ($a.$isSignMinus() != $b.$isSignMinus()) {
31366
- if ($a.$isSignMinus())
31367
- $b = $a;
31368
- return $b;
31512
+ var asrjt_Float64_isZero = ($this) => {
31513
+ let var$1;
31514
+ var$1 = $this.$bits1;
31515
+ return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31516
+ };
31517
+ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31518
+ let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31519
+ if (asrji_ExactFloat_isZero($ef))
31520
+ return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31521
+ $ef = asrji_ExactFloat_normalize($ef);
31522
+ $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31523
+ if ($normalizedExponent > -1022) {
31524
+ if ($normalizedExponent > 1024) {
31525
+ $mainBits = $env.$flags;
31526
+ $roundedBits = asrj_Flags_overflow;
31527
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31528
+ $mainBits = $env.$flags;
31529
+ $roundedBits = asrj_Flags_inexact;
31530
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31531
+ asrjt_Float64$1_$callClinit();
31532
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31533
+ case 1:
31534
+ break;
31535
+ case 2:
31536
+ case 3:
31537
+ $normalizedExponent = $ef.$sign;
31538
+ if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31539
+ return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31540
+ return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31541
+ case 4:
31542
+ case 5:
31543
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31544
+ default:
31545
+ if (!asrjt_Float64_$assertionsDisabled)
31546
+ $rt_throw(jl_AssertionError__init_($rt_s(1617)));
31547
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31548
+ }
31549
+ return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31550
+ }
31551
+ if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31552
+ if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31553
+ $rt_throw(jl_AssertionError__init_($rt_s(1618)));
31554
+ $a = new asrjt_Float64();
31555
+ $normalizedExponent = $ef.$sign;
31556
+ $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31557
+ $ef = $ef.$significand;
31558
+ 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)));
31559
+ return $a;
31560
+ }
31561
+ $mainBits = $env.$flags;
31562
+ $roundedBits = asrj_Flags_inexact;
31563
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31564
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31565
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31566
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31567
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31568
+ $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)));
31569
+ $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)));
31570
+ } else {
31571
+ if ($ef.$exponent0 > -1075) {
31572
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31573
+ $rt_throw(jl_AssertionError__init_($rt_s(1619)));
31574
+ return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31575
+ }
31576
+ $mainBits = $env.$flags;
31577
+ $roundedBits = asrj_Flags_inexact;
31578
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31579
+ $mainBits = $env.$flags;
31580
+ $roundedBits = asrj_Flags_underflow;
31581
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31582
+ $bitsToRound = -1074 - $ef.$exponent0 | 0;
31583
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31584
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31585
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31586
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31587
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31588
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31589
+ else {
31590
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31591
+ $rt_throw(jl_AssertionError__init_1());
31592
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31593
+ }
31369
31594
  }
31370
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
31371
- if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
31372
- return $b;
31373
- return $a;
31595
+ asrjt_Float64$1_$callClinit();
31596
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31597
+ case 1:
31598
+ break;
31599
+ case 2:
31600
+ case 3:
31601
+ if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31602
+ return $towardsZero;
31603
+ return $awayZero;
31604
+ default:
31605
+ $ef = jm_BigInteger_ONE;
31606
+ $normalizedExponent = $bitsToRound - 1 | 0;
31607
+ if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
31608
+ if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
31609
+ return $towardsZero;
31610
+ return $awayZero;
31611
+ }
31612
+ if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
31613
+ return $towardsZero;
31614
+ return $awayZero;
31374
31615
  }
31375
- if ($a.$isInfinite() != $a.$isSignMinus())
31376
- return $b;
31377
- return $a;
31616
+ return $towardsZero;
31378
31617
  };
31379
- var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
31380
- let var$4;
31381
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31382
- var$4 = $env.$flags;
31383
- $env = asrj_Flags_invalid;
31384
- ju_GenericEnumSet_add(var$4, $env);
31618
+ var asrjt_Float64_toExactFloat = ($this) => {
31619
+ let $sign, $exponent, $significand;
31620
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
31621
+ $rt_throw(jl_AssertionError__init_($rt_s(1620)));
31622
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
31623
+ $rt_throw(jl_AssertionError__init_($rt_s(1621)));
31624
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
31625
+ $rt_throw(jl_AssertionError__init_($rt_s(1622)));
31626
+ $sign = asrjt_Float64_isSignMinus($this);
31627
+ if (asrjt_Float64_isZero($this)) {
31628
+ $exponent = 0;
31629
+ $significand = jm_BigInteger_ZERO;
31630
+ } else if (asrjt_Float64_isNormal($this)) {
31631
+ $exponent = asrjt_Float64_exponent($this) - 52 | 0;
31632
+ $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
31633
+ } else {
31634
+ if (!asrjt_Float64_isSubnormal($this)) {
31635
+ if (asrjt_Float64_$assertionsDisabled)
31636
+ return null;
31637
+ $rt_throw(jl_AssertionError__init_($rt_s(1623)));
31638
+ }
31639
+ $exponent = asrjt_Float64_exponent($this) - 51 | 0;
31640
+ $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
31385
31641
  }
31386
- if ($a.$isNaN()) {
31387
- if ($b.$isNaN())
31388
- $b = $b.$NaN();
31389
- } else
31390
- $b = !$b.$isNaN() ? null : $a;
31391
- return $b;
31642
+ return asrji_ExactFloat__init_($sign, $exponent, $significand);
31392
31643
  };
31393
- var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
31394
- let $tmp_0;
31395
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31396
- if ($tmp_0 !== null)
31397
- return $tmp_0;
31398
- return asrjo_Comparisons_nonNaNmin($a, $b);
31644
+ var asrjt_Float64_maxPrecision = ($this) => {
31645
+ return 60;
31399
31646
  };
31400
- var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
31401
- let $tmp_0;
31402
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31403
- if ($tmp_0 !== null)
31404
- return $tmp_0;
31405
- if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
31406
- $a = $b;
31407
- return $a;
31647
+ var asrjt_Float64_negate0 = ($this) => {
31648
+ return asrjt_Float64_negate($this);
31408
31649
  };
31409
- var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
31410
- let var$4;
31411
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31412
- var$4 = $env.$flags;
31413
- $env = asrj_Flags_invalid;
31414
- ju_GenericEnumSet_add(var$4, $env);
31415
- }
31416
- if (!$a.$isNaN() && !$b.$isNaN())
31417
- return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
31418
- return 0;
31650
+ var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
31651
+ return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
31419
31652
  };
31420
- var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
31421
- let var$4, var$5;
31422
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
31423
- var$4 = $env.$flags;
31424
- var$5 = asrj_Flags_invalid;
31425
- ju_GenericEnumSet_add(var$4, var$5);
31426
- }
31427
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31428
- var$5 = $env.$flags;
31429
- $env = asrj_Flags_invalid;
31430
- ju_GenericEnumSet_add(var$5, $env);
31431
- }
31432
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
31653
+ var asrjt_Float64_NegativeInfinity0 = ($this) => {
31654
+ return asrjt_Float64_NegativeInfinity;
31433
31655
  };
31434
- var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
31435
- let var$4, var$5;
31436
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
31437
- var$4 = $env.$flags;
31438
- var$5 = asrj_Flags_invalid;
31439
- ju_GenericEnumSet_add(var$4, var$5);
31440
- }
31441
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31442
- var$5 = $env.$flags;
31443
- $env = asrj_Flags_invalid;
31444
- ju_GenericEnumSet_add(var$5, $env);
31445
- }
31446
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
31656
+ var asrjt_Float64_Infinity0 = ($this) => {
31657
+ return asrjt_Float64_Infinity;
31658
+ };
31659
+ var asrjt_Float64_NegativeZero0 = ($this) => {
31660
+ return asrjt_Float64_NegativeZero;
31661
+ };
31662
+ var asrjt_Float64_Zero0 = ($this) => {
31663
+ return asrjt_Float64_Zero;
31664
+ };
31665
+ var asrjt_Float64_NaN0 = ($this) => {
31666
+ return asrjt_Float64_NaN;
31667
+ };
31668
+ var asrjt_Float64__clinit_ = () => {
31669
+ asrjt_Float64_$assertionsDisabled = 0;
31670
+ asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
31671
+ asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
31672
+ asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
31673
+ asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31674
+ asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31447
31675
  };
31448
31676
  function jm_BigInteger() {
31449
31677
  let a = this;
@@ -31922,222 +32150,6 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31922
32150
  var$4.$significand = $i;
31923
32151
  return $helper.$fromExactFloat(var$4, $env);
31924
32152
  };
31925
- function asrjt_Float64() {
31926
- asrjt_Floating.call(this);
31927
- this.$bits1 = Long_ZERO;
31928
- }
31929
- var asrjt_Float64_Zero = null;
31930
- var asrjt_Float64_NegativeZero = null;
31931
- var asrjt_Float64_NaN = null;
31932
- var asrjt_Float64_Infinity = null;
31933
- var asrjt_Float64_NegativeInfinity = null;
31934
- var asrjt_Float64_$assertionsDisabled = 0;
31935
- var asrjt_Float64__init_1 = ($this, $bits) => {
31936
- $this.$bits1 = $bits;
31937
- };
31938
- var asrjt_Float64__init_ = (var_0) => {
31939
- let var_1 = new asrjt_Float64();
31940
- asrjt_Float64__init_1(var_1, var_0);
31941
- return var_1;
31942
- };
31943
- var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31944
- 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))));
31945
- };
31946
- var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31947
- let var_3 = new asrjt_Float64();
31948
- asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31949
- return var_3;
31950
- };
31951
- var asrjt_Float64_exponent = ($this) => {
31952
- return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31953
- };
31954
- var asrjt_Float64_negate = ($this) => {
31955
- return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31956
- };
31957
- var asrjt_Float64_isSignMinus = ($this) => {
31958
- return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31959
- };
31960
- var asrjt_Float64_isInfinite = ($this) => {
31961
- return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31962
- };
31963
- var asrjt_Float64_isNormal = ($this) => {
31964
- return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31965
- };
31966
- var asrjt_Float64_isSubnormal = ($this) => {
31967
- return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31968
- };
31969
- var asrjt_Float64_isNaN = ($this) => {
31970
- return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31971
- };
31972
- var asrjt_Float64_isSignalling = ($this) => {
31973
- if (!asrjt_Float64_isNaN($this))
31974
- return 0;
31975
- return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31976
- };
31977
- var asrjt_Float64_isZero = ($this) => {
31978
- let var$1;
31979
- var$1 = $this.$bits1;
31980
- return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31981
- };
31982
- var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31983
- let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31984
- if (asrji_ExactFloat_isZero($ef))
31985
- return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31986
- $ef = asrji_ExactFloat_normalize($ef);
31987
- $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31988
- if ($normalizedExponent > -1022) {
31989
- if ($normalizedExponent > 1024) {
31990
- $mainBits = $env.$flags;
31991
- $roundedBits = asrj_Flags_overflow;
31992
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31993
- $mainBits = $env.$flags;
31994
- $roundedBits = asrj_Flags_inexact;
31995
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31996
- asrjt_Float64$1_$callClinit();
31997
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31998
- case 1:
31999
- break;
32000
- case 2:
32001
- case 3:
32002
- $normalizedExponent = $ef.$sign;
32003
- if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32004
- return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
32005
- return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32006
- case 4:
32007
- case 5:
32008
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32009
- default:
32010
- if (!asrjt_Float64_$assertionsDisabled)
32011
- $rt_throw(jl_AssertionError__init_($rt_s(1617)));
32012
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32013
- }
32014
- return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
32015
- }
32016
- if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
32017
- if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
32018
- $rt_throw(jl_AssertionError__init_($rt_s(1618)));
32019
- $a = new asrjt_Float64();
32020
- $normalizedExponent = $ef.$sign;
32021
- $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
32022
- $ef = $ef.$significand;
32023
- 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)));
32024
- return $a;
32025
- }
32026
- $mainBits = $env.$flags;
32027
- $roundedBits = asrj_Flags_inexact;
32028
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32029
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
32030
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32031
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32032
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32033
- $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)));
32034
- $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)));
32035
- } else {
32036
- if ($ef.$exponent0 > -1075) {
32037
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
32038
- $rt_throw(jl_AssertionError__init_($rt_s(1619)));
32039
- return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
32040
- }
32041
- $mainBits = $env.$flags;
32042
- $roundedBits = asrj_Flags_inexact;
32043
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32044
- $mainBits = $env.$flags;
32045
- $roundedBits = asrj_Flags_underflow;
32046
- ju_GenericEnumSet_add($mainBits, $roundedBits);
32047
- $bitsToRound = -1074 - $ef.$exponent0 | 0;
32048
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32049
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32050
- $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32051
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32052
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
32053
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32054
- else {
32055
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
32056
- $rt_throw(jl_AssertionError__init_1());
32057
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
32058
- }
32059
- }
32060
- asrjt_Float64$1_$callClinit();
32061
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32062
- case 1:
32063
- break;
32064
- case 2:
32065
- case 3:
32066
- if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32067
- return $towardsZero;
32068
- return $awayZero;
32069
- default:
32070
- $ef = jm_BigInteger_ONE;
32071
- $normalizedExponent = $bitsToRound - 1 | 0;
32072
- if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
32073
- if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
32074
- return $towardsZero;
32075
- return $awayZero;
32076
- }
32077
- if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
32078
- return $towardsZero;
32079
- return $awayZero;
32080
- }
32081
- return $towardsZero;
32082
- };
32083
- var asrjt_Float64_toExactFloat = ($this) => {
32084
- let $sign, $exponent, $significand;
32085
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
32086
- $rt_throw(jl_AssertionError__init_($rt_s(1620)));
32087
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
32088
- $rt_throw(jl_AssertionError__init_($rt_s(1621)));
32089
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
32090
- $rt_throw(jl_AssertionError__init_($rt_s(1622)));
32091
- $sign = asrjt_Float64_isSignMinus($this);
32092
- if (asrjt_Float64_isZero($this)) {
32093
- $exponent = 0;
32094
- $significand = jm_BigInteger_ZERO;
32095
- } else if (asrjt_Float64_isNormal($this)) {
32096
- $exponent = asrjt_Float64_exponent($this) - 52 | 0;
32097
- $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
32098
- } else {
32099
- if (!asrjt_Float64_isSubnormal($this)) {
32100
- if (asrjt_Float64_$assertionsDisabled)
32101
- return null;
32102
- $rt_throw(jl_AssertionError__init_($rt_s(1623)));
32103
- }
32104
- $exponent = asrjt_Float64_exponent($this) - 51 | 0;
32105
- $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
32106
- }
32107
- return asrji_ExactFloat__init_($sign, $exponent, $significand);
32108
- };
32109
- var asrjt_Float64_maxPrecision = ($this) => {
32110
- return 60;
32111
- };
32112
- var asrjt_Float64_negate0 = ($this) => {
32113
- return asrjt_Float64_negate($this);
32114
- };
32115
- var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
32116
- return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
32117
- };
32118
- var asrjt_Float64_NegativeInfinity0 = ($this) => {
32119
- return asrjt_Float64_NegativeInfinity;
32120
- };
32121
- var asrjt_Float64_Infinity0 = ($this) => {
32122
- return asrjt_Float64_Infinity;
32123
- };
32124
- var asrjt_Float64_NegativeZero0 = ($this) => {
32125
- return asrjt_Float64_NegativeZero;
32126
- };
32127
- var asrjt_Float64_Zero0 = ($this) => {
32128
- return asrjt_Float64_Zero;
32129
- };
32130
- var asrjt_Float64_NaN0 = ($this) => {
32131
- return asrjt_Float64_NaN;
32132
- };
32133
- var asrjt_Float64__clinit_ = () => {
32134
- asrjt_Float64_$assertionsDisabled = 0;
32135
- asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
32136
- asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
32137
- asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
32138
- asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32139
- asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32140
- };
32141
32153
  var asrjo_Arithmetic = $rt_classWithoutFields();
32142
32154
  var asrjo_Arithmetic_$assertionsDisabled = 0;
32143
32155
  var asrjo_Arithmetic_add = ($a, $b, $env) => {
@@ -33732,34 +33744,34 @@ function ju_Hashtable$Entry() {
33732
33744
  var ju_Hashtable$Entry_equalsKey = ($this, $aKey, $hash) => {
33733
33745
  return $this.$hashcode == jl_String_hashCode($aKey) && $this.$key.$equals($aKey) ? 1 : 0;
33734
33746
  };
33735
- var asrjt_Float64$1 = $rt_classWithoutFields();
33736
- var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33737
- var asrjt_Float64$1_$callClinit = () => {
33738
- asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33739
- asrjt_Float64$1__clinit_();
33747
+ var asrjt_Float32$1 = $rt_classWithoutFields();
33748
+ var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33749
+ var asrjt_Float32$1_$callClinit = () => {
33750
+ asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33751
+ asrjt_Float32$1__clinit_();
33740
33752
  };
33741
- var asrjt_Float64$1__clinit_ = () => {
33753
+ var asrjt_Float32$1__clinit_ = () => {
33742
33754
  let var$1, var$2;
33743
33755
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33744
33756
  var$2 = var$1.data;
33745
- asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33757
+ asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33746
33758
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33747
33759
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33748
33760
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
33749
33761
  var$2[asrj_RoundingMode_away.$ordinal0] = 4;
33750
33762
  var$2[asrj_RoundingMode_even.$ordinal0] = 5;
33751
33763
  };
33752
- var asrjt_Float32$1 = $rt_classWithoutFields();
33753
- var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33754
- var asrjt_Float32$1_$callClinit = () => {
33755
- asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33756
- asrjt_Float32$1__clinit_();
33764
+ var asrjt_Float64$1 = $rt_classWithoutFields();
33765
+ var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33766
+ var asrjt_Float64$1_$callClinit = () => {
33767
+ asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33768
+ asrjt_Float64$1__clinit_();
33757
33769
  };
33758
- var asrjt_Float32$1__clinit_ = () => {
33770
+ var asrjt_Float64$1__clinit_ = () => {
33759
33771
  let var$1, var$2;
33760
33772
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33761
33773
  var$2 = var$1.data;
33762
- asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33774
+ asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33763
33775
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33764
33776
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33765
33777
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
@@ -34908,16 +34920,6 @@ $rt_metadata([
34908
34920
  0,
34909
34921
  asrrh_RegisterFile_$callClinit,
34910
34922
  0,
34911
- asr_JsProgramStatement,
34912
- "JsProgramStatement",
34913
- 10,
34914
- jl_Object,
34915
- [],
34916
- 0,
34917
- 3,
34918
- 0,
34919
- 0,
34920
- 0,
34921
34923
  asr_JsRiscV$getTokenizedLines$lambda$_5_0,
34922
34924
  0,
34923
34925
  jl_Object,
@@ -34946,8 +34948,19 @@ $rt_metadata([
34946
34948
  0,
34947
34949
  0,
34948
34950
  0,
34949
- ju_Arrays,
34951
+ asr_JsProgramStatement,
34952
+ "JsProgramStatement",
34953
+ 10,
34954
+ jl_Object,
34955
+ [],
34956
+ 0,
34957
+ 3,
34958
+ 0,
34959
+ 0,
34950
34960
  0,
34961
+ asr_JsCompilationResult,
34962
+ "JsCompilationResult",
34963
+ 10,
34951
34964
  jl_Object,
34952
34965
  [],
34953
34966
  0,
@@ -34955,19 +34968,29 @@ $rt_metadata([
34955
34968
  0,
34956
34969
  0,
34957
34970
  0,
34958
- juf_ToIntFunction,
34971
+ asr_AssemblyException,
34959
34972
  0,
34960
- jl_Object,
34973
+ jl_Exception,
34961
34974
  [],
34975
+ 0,
34962
34976
  3,
34977
+ 0,
34978
+ 0,
34979
+ 0,
34980
+ asr_JsStackFrame,
34981
+ "JsStackFrame",
34982
+ 10,
34983
+ jl_Object,
34984
+ [],
34985
+ 0,
34963
34986
  3,
34964
34987
  0,
34965
34988
  0,
34966
34989
  0,
34967
- asr_JsRiscV$getRegistersValues$lambda$_20_0,
34990
+ ju_Arrays,
34968
34991
  0,
34969
34992
  jl_Object,
34970
- [juf_ToIntFunction],
34993
+ [],
34971
34994
  0,
34972
34995
  3,
34973
34996
  0,
@@ -35001,30 +35024,19 @@ $rt_metadata([
35001
35024
  0,
35002
35025
  0,
35003
35026
  0,
35004
- asr_JsCompilationResult,
35005
- "JsCompilationResult",
35006
- 10,
35027
+ juf_ToIntFunction,
35028
+ 0,
35007
35029
  jl_Object,
35008
35030
  [],
35009
- 0,
35010
35031
  3,
35011
- 0,
35012
- 0,
35013
- 0,
35014
- asr_AssemblyException,
35015
- 0,
35016
- jl_Exception,
35017
- [],
35018
- 0,
35019
35032
  3,
35020
35033
  0,
35021
35034
  0,
35022
35035
  0,
35023
- asr_JsStackFrame,
35024
- "JsStackFrame",
35025
- 10,
35036
+ asr_JsRiscV$getRegistersValues$lambda$_20_0,
35037
+ 0,
35026
35038
  jl_Object,
35027
- [],
35039
+ [juf_ToIntFunction],
35028
35040
  0,
35029
35041
  3,
35030
35042
  0,
@@ -35142,72 +35154,72 @@ $rt_metadata([
35142
35154
  0,
35143
35155
  0,
35144
35156
  0,
35145
- jl_AutoCloseable,
35157
+ asr_JsCompilationResult$_init_$lambda$_0_0,
35146
35158
  0,
35147
35159
  jl_Object,
35148
- [],
35149
- 3,
35150
- 3,
35160
+ [juf_Function],
35151
35161
  0,
35162
+ 3,
35152
35163
  0,
35153
35164
  0,
35154
- jus_BaseStream,
35165
+ ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35166
+ juf_Supplier,
35155
35167
  0,
35156
35168
  jl_Object,
35157
- [jl_AutoCloseable],
35169
+ [],
35158
35170
  3,
35159
35171
  3,
35160
35172
  0,
35161
35173
  0,
35162
35174
  0,
35163
- jus_Stream,
35175
+ asr_JsCompilationResult$_init_$lambda$_0_1,
35164
35176
  0,
35165
35177
  jl_Object,
35166
- [jus_BaseStream],
35167
- 3,
35178
+ [juf_Supplier],
35179
+ 0,
35168
35180
  3,
35169
35181
  0,
35170
35182
  0,
35171
35183
  0
35172
35184
  ]);
35173
35185
  $rt_metadata([
35174
- jusi_SimpleStreamImpl,
35186
+ juf_BiConsumer,
35175
35187
  0,
35176
35188
  jl_Object,
35177
- [jus_Stream],
35178
- 1,
35189
+ [],
35190
+ 3,
35179
35191
  3,
35180
35192
  0,
35181
35193
  0,
35182
35194
  0,
35183
- jusi_ArrayStreamImpl,
35195
+ asr_JsCompilationResult$_init_$lambda$_0_2,
35184
35196
  0,
35185
- jusi_SimpleStreamImpl,
35186
- [],
35197
+ jl_Object,
35198
+ [juf_BiConsumer],
35187
35199
  0,
35188
35200
  3,
35189
35201
  0,
35190
35202
  0,
35191
- ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35192
- asrs_BackStepper$BackstepStack,
35203
+ 0,
35204
+ asr_JsCompilationResult$_init_$lambda$_0_3,
35193
35205
  0,
35194
35206
  jl_Object,
35195
- [],
35207
+ [juf_BiConsumer],
35196
35208
  0,
35197
35209
  3,
35198
35210
  0,
35199
35211
  0,
35200
35212
  0,
35201
- asr_JsCompilationResult$_init_$lambda$_0_0,
35213
+ asrs_BackStepper$BackstepStack,
35202
35214
  0,
35203
35215
  jl_Object,
35204
- [juf_Function],
35216
+ [],
35205
35217
  0,
35206
35218
  3,
35207
35219
  0,
35208
35220
  0,
35209
- ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35210
- juf_Supplier,
35221
+ 0,
35222
+ jl_AutoCloseable,
35211
35223
  0,
35212
35224
  jl_Object,
35213
35225
  [],
@@ -35216,42 +35228,42 @@ $rt_metadata([
35216
35228
  0,
35217
35229
  0,
35218
35230
  0,
35219
- asr_JsCompilationResult$_init_$lambda$_0_1,
35231
+ jus_BaseStream,
35220
35232
  0,
35221
35233
  jl_Object,
35222
- [juf_Supplier],
35223
- 0,
35234
+ [jl_AutoCloseable],
35235
+ 3,
35224
35236
  3,
35225
35237
  0,
35226
35238
  0,
35227
35239
  0,
35228
- juf_BiConsumer,
35240
+ jus_Stream,
35229
35241
  0,
35230
35242
  jl_Object,
35231
- [],
35243
+ [jus_BaseStream],
35232
35244
  3,
35233
35245
  3,
35234
35246
  0,
35235
35247
  0,
35236
35248
  0,
35237
- asr_JsCompilationResult$_init_$lambda$_0_2,
35249
+ jusi_SimpleStreamImpl,
35238
35250
  0,
35239
35251
  jl_Object,
35240
- [juf_BiConsumer],
35241
- 0,
35252
+ [jus_Stream],
35253
+ 1,
35242
35254
  3,
35243
35255
  0,
35244
35256
  0,
35245
35257
  0,
35246
- asr_JsCompilationResult$_init_$lambda$_0_3,
35258
+ jusi_ArrayStreamImpl,
35247
35259
  0,
35248
- jl_Object,
35249
- [juf_BiConsumer],
35260
+ jusi_SimpleStreamImpl,
35261
+ [],
35250
35262
  0,
35251
35263
  3,
35252
35264
  0,
35253
35265
  0,
35254
- 0,
35266
+ ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35255
35267
  jl_Math,
35256
35268
  0,
35257
35269
  jl_Object,
@@ -37455,6 +37467,24 @@ $rt_metadata([
37455
37467
  0,
37456
37468
  0,
37457
37469
  ["$next1", $rt_wrapFunction1(jusi_StreamOverSpliterator_next), "$estimateSize", $rt_wrapFunction0(jusi_StreamOverSpliterator_estimateSize)],
37470
+ jusi_WrappingStreamImpl,
37471
+ 0,
37472
+ jusi_SimpleStreamImpl,
37473
+ [],
37474
+ 1,
37475
+ 3,
37476
+ 0,
37477
+ 0,
37478
+ 0,
37479
+ jusi_MappingStreamImpl,
37480
+ 0,
37481
+ jusi_WrappingStreamImpl,
37482
+ [],
37483
+ 0,
37484
+ 3,
37485
+ 0,
37486
+ 0,
37487
+ ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37458
37488
  jus_IntStream,
37459
37489
  0,
37460
37490
  jl_Object,
@@ -37482,24 +37512,6 @@ $rt_metadata([
37482
37512
  0,
37483
37513
  0,
37484
37514
  0,
37485
- jusi_WrappingStreamImpl,
37486
- 0,
37487
- jusi_SimpleStreamImpl,
37488
- [],
37489
- 1,
37490
- 3,
37491
- 0,
37492
- 0,
37493
- 0,
37494
- jusi_MappingStreamImpl,
37495
- 0,
37496
- jusi_WrappingStreamImpl,
37497
- [],
37498
- 0,
37499
- 3,
37500
- 0,
37501
- 0,
37502
- ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37503
37515
  asru_Binary,
37504
37516
  0,
37505
37517
  jl_Object,
@@ -37518,26 +37530,25 @@ $rt_metadata([
37518
37530
  0,
37519
37531
  0,
37520
37532
  ["$hasNext", $rt_wrapFunction0(ju_AbstractList$1_hasNext), "$next", $rt_wrapFunction0(ju_AbstractList$1_next)],
37521
- asrs_Simulator$Reason,
37522
- "Simulator$Reason",
37523
- 3,
37524
- jl_Enum,
37533
+ asrrh_FloatingPointRegisterFile,
37534
+ 0,
37535
+ jl_Object,
37525
37536
  [],
37526
- 12,
37537
+ 0,
37527
37538
  3,
37528
37539
  0,
37529
37540
  0,
37530
37541
  0,
37531
- jlr_Array,
37542
+ asrrh_ControlAndStatusRegisterFile,
37532
37543
  0,
37533
37544
  jl_Object,
37534
37545
  [],
37535
- 4,
37546
+ 0,
37536
37547
  3,
37537
37548
  0,
37538
37549
  0,
37539
37550
  0,
37540
- asrrh_Stack,
37551
+ asrrh_InterruptController,
37541
37552
  0,
37542
37553
  jl_Object,
37543
37554
  [],
@@ -37546,7 +37557,7 @@ $rt_metadata([
37546
37557
  0,
37547
37558
  0,
37548
37559
  0,
37549
- asrrh_FloatingPointRegisterFile,
37560
+ asrrh_Stack,
37550
37561
  0,
37551
37562
  jl_Object,
37552
37563
  [],
@@ -37555,20 +37566,21 @@ $rt_metadata([
37555
37566
  0,
37556
37567
  0,
37557
37568
  0,
37558
- asrrh_ControlAndStatusRegisterFile,
37569
+ jlr_Array,
37559
37570
  0,
37560
37571
  jl_Object,
37561
37572
  [],
37562
- 0,
37573
+ 4,
37563
37574
  3,
37564
37575
  0,
37565
37576
  0,
37566
37577
  0,
37567
- asrrh_InterruptController,
37568
- 0,
37569
- jl_Object,
37578
+ asrs_Simulator$Reason,
37579
+ "Simulator$Reason",
37580
+ 3,
37581
+ jl_Enum,
37570
37582
  [],
37571
- 0,
37583
+ 12,
37572
37584
  3,
37573
37585
  0,
37574
37586
  0,
@@ -40567,6 +40579,15 @@ $rt_metadata([
40567
40579
  0,
40568
40580
  0,
40569
40581
  0,
40582
+ asrjo_Comparisons,
40583
+ 0,
40584
+ jl_Object,
40585
+ [],
40586
+ 0,
40587
+ 3,
40588
+ 0,
40589
+ 0,
40590
+ 0,
40570
40591
  asrjt_Floating,
40571
40592
  0,
40572
40593
  jl_Object,
@@ -40618,33 +40639,6 @@ $rt_metadata([
40618
40639
  "$NaN",
40619
40640
  $rt_wrapFunction0(asrjt_Float32_NaN0)
40620
40641
  ],
40621
- asrjo_Comparisons,
40622
- 0,
40623
- jl_Object,
40624
- [],
40625
- 0,
40626
- 3,
40627
- 0,
40628
- 0,
40629
- 0,
40630
- jm_BigInteger,
40631
- 0,
40632
- jl_Number,
40633
- [jl_Comparable, ji_Serializable],
40634
- 0,
40635
- 3,
40636
- 0,
40637
- 0,
40638
- 0,
40639
- asrjo_Conversions,
40640
- 0,
40641
- jl_Object,
40642
- [],
40643
- 0,
40644
- 3,
40645
- 0,
40646
- 0,
40647
- 0,
40648
40642
  asrjt_Float64,
40649
40643
  0,
40650
40644
  asrjt_Floating,
@@ -40687,6 +40681,24 @@ $rt_metadata([
40687
40681
  "$NaN",
40688
40682
  $rt_wrapFunction0(asrjt_Float64_NaN0)
40689
40683
  ],
40684
+ jm_BigInteger,
40685
+ 0,
40686
+ jl_Number,
40687
+ [jl_Comparable, ji_Serializable],
40688
+ 0,
40689
+ 3,
40690
+ 0,
40691
+ 0,
40692
+ 0,
40693
+ asrjo_Conversions,
40694
+ 0,
40695
+ jl_Object,
40696
+ [],
40697
+ 0,
40698
+ 3,
40699
+ 0,
40700
+ 0,
40701
+ 0,
40690
40702
  asrjo_Arithmetic,
40691
40703
  0,
40692
40704
  jl_Object,
@@ -40925,23 +40937,23 @@ $rt_metadata([
40925
40937
  0,
40926
40938
  0,
40927
40939
  0,
40928
- asrjt_Float64$1,
40940
+ asrjt_Float32$1,
40929
40941
  0,
40930
40942
  jl_Object,
40931
40943
  [],
40932
40944
  32,
40933
40945
  0,
40934
40946
  0,
40935
- asrjt_Float64$1_$callClinit,
40947
+ asrjt_Float32$1_$callClinit,
40936
40948
  0,
40937
- asrjt_Float32$1,
40949
+ asrjt_Float64$1,
40938
40950
  0,
40939
40951
  jl_Object,
40940
40952
  [],
40941
40953
  32,
40942
40954
  0,
40943
40955
  0,
40944
- asrjt_Float32$1_$callClinit,
40956
+ asrjt_Float64$1_$callClinit,
40945
40957
  0,
40946
40958
  jm_Multiplication,
40947
40959
  0,
@@ -41115,7 +41127,7 @@ $rt_stringPool([
41115
41127
  "store address out of range ",
41116
41128
  "store address not aligned on halfword boundary ",
41117
41129
  "Store address to text segment out of range",
41118
- "cCannot read directly from text segment!",
41130
+ "Cannot read directly from text segment!",
41119
41131
  "Load address not aligned to word boundary ",
41120
41132
  "Load address not aligned on halfword boundary ",
41121
41133
  "fetch address for text segment out of range ",
@@ -42126,13 +42138,6 @@ $rt_stringPool([
42126
42138
  "Can't parse empty string",
42127
42139
  "The string does not represent a number",
42128
42140
  "The string represents a too big number",
42129
- "BREAKPOINT",
42130
- "EXCEPTION",
42131
- "MAX_STEPS",
42132
- "NORMAL_TERMINATION",
42133
- "CLIFF_TERMINATION",
42134
- "PAUSE",
42135
- "STOP",
42136
42141
  "ft0",
42137
42142
  "ft1",
42138
42143
  "ft2",
@@ -42180,6 +42185,13 @@ $rt_stringPool([
42180
42185
  "Cannot claim, no timer interrupt pending",
42181
42186
  "Cannot claim, no trap pending",
42182
42187
  "trapPC doesn't match current pc",
42188
+ "BREAKPOINT",
42189
+ "EXCEPTION",
42190
+ "MAX_STEPS",
42191
+ "NORMAL_TERMINATION",
42192
+ "CLIFF_TERMINATION",
42193
+ "PAUSE",
42194
+ "STOP",
42183
42195
  "Patter is null",
42184
42196
  "Recursive include of file ",
42185
42197
  "Error reading include file ",
@@ -42752,6 +42764,13 @@ var $rt_jso_marker = Symbol("jsoClass");
42752
42764
  Object.defineProperty(c, "example", {
42753
42765
  get: $rt_callWithReceiver(asr_JsInstruction_getExample$exported$3)
42754
42766
  });
42767
+ c = asr_JsRiscVTokenizedLine.prototype;
42768
+ Object.defineProperty(c, "line", {
42769
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42770
+ });
42771
+ Object.defineProperty(c, "tokens", {
42772
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42773
+ });
42755
42774
  c = asr_JsProgramStatement.prototype;
42756
42775
  Object.defineProperty(c, "assemblyStatement", {
42757
42776
  get: $rt_callWithReceiver(asr_JsProgramStatement_getAssemblyStatement$exported$1)
@@ -42771,26 +42790,6 @@ var $rt_jso_marker = Symbol("jsoClass");
42771
42790
  Object.defineProperty(c, "source", {
42772
42791
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
42773
42792
  });
42774
- c = asr_JsRiscVTokenizedLine.prototype;
42775
- Object.defineProperty(c, "line", {
42776
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42777
- });
42778
- Object.defineProperty(c, "tokens", {
42779
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42780
- });
42781
- c = asr_JsBackStep.prototype;
42782
- Object.defineProperty(c, "pc", {
42783
- get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42784
- });
42785
- Object.defineProperty(c, "action", {
42786
- get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42787
- });
42788
- Object.defineProperty(c, "param1", {
42789
- get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42790
- });
42791
- Object.defineProperty(c, "param2", {
42792
- get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42793
- });
42794
42793
  c = asr_JsCompilationResult.prototype;
42795
42794
  Object.defineProperty(c, "hasErrors", {
42796
42795
  get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
@@ -42817,6 +42816,19 @@ var $rt_jso_marker = Symbol("jsoClass");
42817
42816
  Object.defineProperty(c, "toAddress", {
42818
42817
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
42819
42818
  });
42819
+ c = asr_JsBackStep.prototype;
42820
+ Object.defineProperty(c, "pc", {
42821
+ get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42822
+ });
42823
+ Object.defineProperty(c, "action", {
42824
+ get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42825
+ });
42826
+ Object.defineProperty(c, "param1", {
42827
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42828
+ });
42829
+ Object.defineProperty(c, "param2", {
42830
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42831
+ });
42820
42832
  c = asr_JsCompilationResult$JsCompilationError.prototype;
42821
42833
  Object.defineProperty(c, "macroExpansionHistory", {
42822
42834
  get: $rt_callWithReceiver(asr_JsCompilationResult$JsCompilationError_getMacroExpansionHistory$exported$3)
@@ -42863,26 +42875,26 @@ function $rt_export_class_JsInstruction_32() {
42863
42875
  throw new Error("Can't instantiate this class directly");
42864
42876
  }
42865
42877
  $rt_export_class_JsInstruction_32.prototype = asr_JsInstruction.prototype;
42866
- function $rt_export_class_JsProgramStatement_71() {
42878
+ function $rt_export_class_JsRiscVTokenizedLine_73() {
42867
42879
  throw new Error("Can't instantiate this class directly");
42868
42880
  }
42869
- $rt_export_class_JsProgramStatement_71.prototype = asr_JsProgramStatement.prototype;
42870
- function $rt_export_class_JsRiscVTokenizedLine_74() {
42881
+ $rt_export_class_JsRiscVTokenizedLine_73.prototype = asr_JsRiscVTokenizedLine.prototype;
42882
+ function $rt_export_class_JsProgramStatement_74() {
42871
42883
  throw new Error("Can't instantiate this class directly");
42872
42884
  }
42873
- $rt_export_class_JsRiscVTokenizedLine_74.prototype = asr_JsRiscVTokenizedLine.prototype;
42874
- function $rt_export_class_JsBackStep_80() {
42885
+ $rt_export_class_JsProgramStatement_74.prototype = asr_JsProgramStatement.prototype;
42886
+ function $rt_export_class_JsCompilationResult_75() {
42875
42887
  throw new Error("Can't instantiate this class directly");
42876
42888
  }
42877
- $rt_export_class_JsBackStep_80.prototype = asr_JsBackStep.prototype;
42878
- function $rt_export_class_JsCompilationResult_81() {
42889
+ $rt_export_class_JsCompilationResult_75.prototype = asr_JsCompilationResult.prototype;
42890
+ function $rt_export_class_JsStackFrame_77() {
42879
42891
  throw new Error("Can't instantiate this class directly");
42880
42892
  }
42881
- $rt_export_class_JsCompilationResult_81.prototype = asr_JsCompilationResult.prototype;
42882
- function $rt_export_class_JsStackFrame_83() {
42893
+ $rt_export_class_JsStackFrame_77.prototype = asr_JsStackFrame.prototype;
42894
+ function $rt_export_class_JsBackStep_81() {
42883
42895
  throw new Error("Can't instantiate this class directly");
42884
42896
  }
42885
- $rt_export_class_JsStackFrame_83.prototype = asr_JsStackFrame.prototype;
42897
+ $rt_export_class_JsBackStep_81.prototype = asr_JsBackStep.prototype;
42886
42898
  function $rt_export_class_JsCompilationError_349() {
42887
42899
  throw new Error("Can't instantiate this class directly");
42888
42900
  }