@specy/risc-v 3.6.0 → 3.6.2

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 +1665 -1655
  2. package/dist/index.mjs +1665 -1655
  3. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -17255,6 +17255,121 @@ var otci_Base46_decode = ($seq) => {
17255
17255
  $result = -$result | 0;
17256
17256
  return $result;
17257
17257
  };
17258
+ function asr_JsProgramStatement() {
17259
+ let a = this;
17260
+ jl_Object.call(a);
17261
+ a.$sourceLine5 = 0;
17262
+ a.$sourcePath2 = null;
17263
+ a.$address2 = 0;
17264
+ a.$binaryStatement0 = 0;
17265
+ a.$source2 = null;
17266
+ a.$assemblyStatement = null;
17267
+ a.$machineStatement0 = null;
17268
+ }
17269
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
17270
+ let var$2, var$3, var$4, var$5, var$6;
17271
+ $this.$sourceLine5 = $programStatement.$sourceLine1;
17272
+ $this.$sourcePath2 = $programStatement.$sourcePath;
17273
+ $this.$address2 = $programStatement.$textAddress0;
17274
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
17275
+ $this.$source2 = $programStatement.$source;
17276
+ var$2 = $programStatement.$basicStatementList;
17277
+ var$3 = asr_Globals_getSettings();
17278
+ asr_Settings$Bool_$callClinit();
17279
+ var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
17280
+ var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
17281
+ var$3 = new jl_StringBuffer();
17282
+ jl_AbstractStringBuilder__init_(var$3);
17283
+ var$6 = ju_AbstractList_iterator(var$2.$list);
17284
+ while (ju_AbstractList$1_hasNext(var$6)) {
17285
+ a: {
17286
+ var$2 = ju_AbstractList$1_next(var$6);
17287
+ switch (var$2.$type3) {
17288
+ case 0:
17289
+ break;
17290
+ case 1:
17291
+ if (var$4 == 10) {
17292
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
17293
+ break a;
17294
+ }
17295
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
17296
+ break a;
17297
+ case 2:
17298
+ if (var$5 == 10) {
17299
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
17300
+ break a;
17301
+ }
17302
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
17303
+ break a;
17304
+ case 3:
17305
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
17306
+ break a;
17307
+ default:
17308
+ break a;
17309
+ }
17310
+ jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
17311
+ }
17312
+ }
17313
+ $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$3);
17314
+ $this.$machineStatement0 = $programStatement.$machineStatement;
17315
+ };
17316
+ var asr_JsProgramStatement__init_ = (var_0) => {
17317
+ let var_1 = new asr_JsProgramStatement();
17318
+ asr_JsProgramStatement__init_0(var_1, var_0);
17319
+ return var_1;
17320
+ };
17321
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
17322
+ return var$1.$sourceLine5;
17323
+ };
17324
+ var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
17325
+ return $rt_ustr(var$1.$sourcePath2);
17326
+ };
17327
+ var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
17328
+ return $rt_ustr(var$1.$assemblyStatement);
17329
+ };
17330
+ var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
17331
+ return $rt_ustr(var$1.$source2);
17332
+ };
17333
+ var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
17334
+ return var$1.$address2;
17335
+ };
17336
+ var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
17337
+ return var$1.$binaryStatement0;
17338
+ };
17339
+ var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
17340
+ return $rt_ustr(var$1.$machineStatement0);
17341
+ };
17342
+ var ju_Observer = $rt_classWithoutFields(0);
17343
+ function asr_JsMemoryObserver() {
17344
+ let a = this;
17345
+ jl_Object.call(a);
17346
+ a.$handle = 0;
17347
+ a.$startAddress = 0;
17348
+ a.$endAddress = 0;
17349
+ a.$onRead = null;
17350
+ a.$onWrite = null;
17351
+ a.$reportsLength = 0;
17352
+ }
17353
+ var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
17354
+ $this.$handle = $handle;
17355
+ $this.$startAddress = $startAddress;
17356
+ $this.$endAddress = $endAddress;
17357
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
17358
+ $onRead = null;
17359
+ $this.$onRead = $onRead;
17360
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
17361
+ $onWrite = null;
17362
+ $this.$onWrite = $onWrite;
17363
+ $this.$reportsLength = $reportsLength;
17364
+ };
17365
+ var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
17366
+ let var_6 = new asr_JsMemoryObserver();
17367
+ asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
17368
+ return var_6;
17369
+ };
17370
+ var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
17371
+ return var$1 === null || var$1 === void 0;
17372
+ };
17258
17373
  var asrrh_ControlAndStatusRegisterFile = $rt_classWithoutFields();
17259
17374
  var asrrh_ControlAndStatusRegisterFile_instance = null;
17260
17375
  var asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = 0;
@@ -17262,14 +17377,14 @@ var asrrh_ControlAndStatusRegisterFile_$callClinit = () => {
17262
17377
  asrrh_ControlAndStatusRegisterFile_$callClinit = $rt_eraseClinit(asrrh_ControlAndStatusRegisterFile);
17263
17378
  asrrh_ControlAndStatusRegisterFile__clinit_();
17264
17379
  };
17265
- var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
17380
+ var asrrh_ControlAndStatusRegisterFile_updateRegister0 = (var$1, $val) => {
17266
17381
  let $target, $old, var$5, var$6;
17267
17382
  asrrh_ControlAndStatusRegisterFile_$callClinit();
17268
17383
  asrrh_ControlAndStatusRegisterFile_settleCounters();
17269
- $target = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num);
17384
+ $target = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, var$1);
17270
17385
  if ($target instanceof asrrh_ReadOnlyRegister)
17271
17386
  return 1;
17272
- if ($num >= 3200 && $num <= 3202)
17387
+ if (var$1 >= 3200 && var$1 <= 3202)
17273
17388
  return 1;
17274
17389
  if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()) && $target !== null) {
17275
17390
  $old = asrrh_RegisterBlock_updateRegister0(asrrh_ControlAndStatusRegisterFile_instance, $target, $val);
@@ -17277,7 +17392,7 @@ var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
17277
17392
  $val = $target.$getValueNoNotify();
17278
17393
  var$6 = var$5.$backSteps;
17279
17394
  asrs_BackStepper$Action_$callClinit();
17280
- asrs_BackStepper$BackstepStack_push(var$6, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$5), $num, $old, 0, $val);
17395
+ asrs_BackStepper$BackstepStack_push(var$6, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$5), var$1, $old, 0, $val);
17281
17396
  } else
17282
17397
  asrrh_RegisterBlock_updateRegister0(asrrh_ControlAndStatusRegisterFile_instance, $target, $val);
17283
17398
  return 0;
@@ -17287,19 +17402,19 @@ var asrrh_ControlAndStatusRegisterFile_updateRegister = ($name, $val) => {
17287
17402
  asrrh_ControlAndStatusRegisterFile_settleCounters();
17288
17403
  asrrh_ControlAndStatusRegisterFile_updateRegister0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
17289
17404
  };
17290
- var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($register, $val) => {
17291
- let $old, var$4, var$5, var$6;
17405
+ var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($register, $val, $programCounter) => {
17406
+ let $old, var$5, var$6;
17292
17407
  asrrh_ControlAndStatusRegisterFile_$callClinit();
17293
17408
  asrrh_ControlAndStatusRegisterFile_settleCounters();
17294
17409
  $old = asrrh_Register_setValueBackdoor($register, $val);
17295
17410
  if (Long_eq($old, $val))
17296
17411
  return;
17297
17412
  if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
17298
- var$4 = asr_Globals_program.$backStepper;
17299
- var$5 = $register.$number;
17300
- var$6 = var$4.$backSteps;
17413
+ var$5 = asr_Globals_program.$backStepper;
17414
+ var$6 = $register.$number;
17415
+ var$5 = var$5.$backSteps;
17301
17416
  asrs_BackStepper$Action_$callClinit();
17302
- asrs_BackStepper$BackstepStack_push(var$6, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, asrs_BackStepper_pc(var$4), var$5, $old, 0, $val);
17417
+ asrs_BackStepper$BackstepStack_push(var$5, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, $programCounter, var$6, $old, 0, $val);
17303
17418
  }
17304
17419
  };
17305
17420
  var asrrh_ControlAndStatusRegisterFile_orRegister0 = ($num, $val) => {
@@ -17496,6 +17611,10 @@ var asrrh_RegisterFile_resetRegisters = () => {
17496
17611
  asr_Settings$Bool_$callClinit();
17497
17612
  asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(var$1, asr_Settings$Bool_START_AT_MAIN));
17498
17613
  };
17614
+ var asrrh_RegisterFile_incrementPC = () => {
17615
+ asrrh_RegisterFile_$callClinit();
17616
+ asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
17617
+ };
17499
17618
  var asrrh_RegisterFile__clinit_ = () => {
17500
17619
  let var$1, var$2, var$3, var$4;
17501
17620
  var$1 = new asrrh_RegisterBlock();
@@ -17541,209 +17660,662 @@ var asrrh_RegisterFile__clinit_ = () => {
17541
17660
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(542), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
17542
17661
  asrrh_RegisterFile_programCounterValue = asrrh_Memory_textBaseAddress;
17543
17662
  };
17544
- function jm_BigInteger() {
17663
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
17664
+ var asr_JsRiscV$getRegistersValues$lambda$_28_0 = $rt_classWithoutFields();
17665
+ var otjc_JSArrayReader = $rt_classWithoutFields(0);
17666
+ var otjc_JSArray = $rt_classWithoutFields();
17667
+ var otjc_JSArray_of = ($items) => {
17668
+ let var$2, $array, $i, var$5;
17669
+ $items = $items.data;
17670
+ var$2 = $items.length;
17671
+ $array = new Array(var$2);
17672
+ $i = 0;
17673
+ while ($i < var$2) {
17674
+ var$5 = $items[$i];
17675
+ $array[$i] = otji_JSWrapper_javaToJs(var$5);
17676
+ $i = $i + 1 | 0;
17677
+ }
17678
+ return $array;
17679
+ };
17680
+ function asrs_BackStepper() {
17545
17681
  let a = this;
17546
- jl_Number.call(a);
17547
- a.$digits = null;
17548
- a.$numberLength = 0;
17549
- a.$sign0 = 0;
17550
- a.$firstNonzeroDigit = 0;
17551
- a.$hashCode1 = 0;
17682
+ jl_Object.call(a);
17683
+ a.$lastStatementPc = 0;
17684
+ a.$lastStatement = null;
17685
+ a.$engaged = 0;
17686
+ a.$backSteps = null;
17687
+ a.$pokeGroup = 0;
17688
+ a.$pokeRestores = null;
17552
17689
  }
17553
- var jm_BigInteger_ZERO = null;
17554
- var jm_BigInteger_ONE = null;
17555
- var jm_BigInteger_TWO = null;
17556
- var jm_BigInteger_TEN = null;
17557
- var jm_BigInteger_MINUS_ONE = null;
17558
- var jm_BigInteger_SMALL_VALUES = null;
17559
- var jm_BigInteger_TWO_POWS = null;
17560
- var jm_BigInteger_$callClinit = () => {
17561
- jm_BigInteger_$callClinit = $rt_eraseClinit(jm_BigInteger);
17562
- jm_BigInteger__clinit_();
17690
+ var asrs_BackStepper_nextPokeGroup = 0;
17691
+ var asrs_BackStepper_$callClinit = () => {
17692
+ asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
17693
+ asrs_BackStepper__clinit_();
17563
17694
  };
17564
- var jm_BigInteger__init_4 = ($this, $sign, $value) => {
17565
- let var$3;
17566
- jm_BigInteger_$callClinit();
17567
- $this.$firstNonzeroDigit = -2;
17568
- $this.$sign0 = $sign;
17569
- $this.$numberLength = 1;
17570
- var$3 = $rt_createIntArray(1);
17571
- var$3.data[0] = $value;
17572
- $this.$digits = var$3;
17695
+ var asrs_BackStepper_applyRestore = ($action, $param1, $param2) => {
17696
+ let var$4, var$5, var$6, var$7;
17697
+ asrs_BackStepper_$callClinit();
17698
+ a: {
17699
+ switch ($action.$ordinal0) {
17700
+ case 0:
17701
+ asr_Globals_$callClinit();
17702
+ $action = asr_Globals_memory;
17703
+ var$4 = Long_lo($param2);
17704
+ var$5 = asrrh_Memory_storeRawWord($action, $param1, var$4);
17705
+ asrrh_Memory_notifyAnyObservers($action, 1, $param1, 4, var$4);
17706
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
17707
+ var$6 = asr_Globals_program.$backStepper;
17708
+ var$7 = var$6.$backSteps;
17709
+ asrs_BackStepper$Action_$callClinit();
17710
+ asrs_BackStepper$BackstepStack_push(var$7, asrs_BackStepper$Action_MEMORY_RESTORE_RAW_WORD, asrs_BackStepper_pc(var$6), $param1, Long_fromInt(var$5), var$4, Long_ZERO);
17711
+ }
17712
+ break a;
17713
+ case 1:
17714
+ asr_Globals_$callClinit();
17715
+ asrrh_Memory_setDoubleWord(asr_Globals_memory, $param1, $param2);
17716
+ break a;
17717
+ case 2:
17718
+ asr_Globals_$callClinit();
17719
+ asrrh_Memory_setWord(asr_Globals_memory, $param1, Long_lo($param2));
17720
+ break a;
17721
+ case 3:
17722
+ asr_Globals_$callClinit();
17723
+ asrrh_Memory_setHalf(asr_Globals_memory, $param1, Long_lo($param2));
17724
+ break a;
17725
+ case 4:
17726
+ asr_Globals_$callClinit();
17727
+ asrrh_Memory_setByte(asr_Globals_memory, $param1, Long_lo($param2));
17728
+ break a;
17729
+ case 5:
17730
+ asrrh_RegisterFile_updateRegister($param1, $param2);
17731
+ break a;
17732
+ case 6:
17733
+ asrrh_RegisterFile_setProgramCounter($param1);
17734
+ break a;
17735
+ case 7:
17736
+ asrrh_ControlAndStatusRegisterFile_updateRegister0($param1, $param2);
17737
+ break a;
17738
+ case 8:
17739
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
17740
+ asrrh_ControlAndStatusRegisterFile_settleCounters();
17741
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1), $param2, asrrh_RegisterFile_getProgramCounter() - 4 | 0);
17742
+ break a;
17743
+ case 9:
17744
+ asrrh_FloatingPointRegisterFile_updateRegisterLong($param1, $param2);
17745
+ break a;
17746
+ case 10:
17747
+ break;
17748
+ case 11:
17749
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
17750
+ $param1 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
17751
+ if ($param1 > 0)
17752
+ asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = $param1 - 1 | 0;
17753
+ else {
17754
+ $action = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(494));
17755
+ var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(495));
17756
+ asrrh_Register_setValueBackdoor($action, Long_sub($action.$getValueNoNotify(), Long_fromInt(1)));
17757
+ asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
17758
+ }
17759
+ break a;
17760
+ case 12:
17761
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
17762
+ asrrh_ControlAndStatusRegisterFile_settleCounters();
17763
+ $action = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1);
17764
+ if ($action !== null)
17765
+ $action.$setValue($param2);
17766
+ break a;
17767
+ case 13:
17768
+ break a;
17769
+ default:
17770
+ break a;
17771
+ }
17772
+ }
17573
17773
  };
17574
- var jm_BigInteger__init_ = (var_0, var_1) => {
17575
- let var_2 = new jm_BigInteger();
17576
- jm_BigInteger__init_4(var_2, var_0, var_1);
17577
- return var_2;
17774
+ var asrs_BackStepper_sameGroup = ($one, $other) => {
17775
+ asrs_BackStepper_$callClinit();
17776
+ if (!asrs_BackStepper$BackStep_isPoke($one) && !asrs_BackStepper$BackStep_isPoke($other))
17777
+ return $one.$ps !== $other.$ps ? 0 : 1;
17778
+ return 0;
17578
17779
  };
17579
- var jm_BigInteger__init_2 = ($this, $sign, $numberLength, $digits) => {
17580
- jm_BigInteger_$callClinit();
17581
- $this.$firstNonzeroDigit = -2;
17582
- $this.$sign0 = $sign;
17583
- $this.$numberLength = $numberLength;
17584
- $this.$digits = $digits;
17780
+ var asrs_BackStepper_pc = ($this) => {
17781
+ return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
17585
17782
  };
17586
- var jm_BigInteger__init_0 = (var_0, var_1, var_2) => {
17587
- let var_3 = new jm_BigInteger();
17588
- jm_BigInteger__init_2(var_3, var_0, var_1, var_2);
17589
- return var_3;
17783
+ var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
17784
+ let var$4;
17785
+ var$4 = $this.$backSteps;
17786
+ asrs_BackStepper$Action_$callClinit();
17787
+ asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
17788
+ return $value;
17590
17789
  };
17591
- var jm_BigInteger__init_3 = ($this, $sign, $val) => {
17592
- let var$3;
17593
- jm_BigInteger_$callClinit();
17594
- $this.$firstNonzeroDigit = -2;
17595
- $this.$sign0 = $sign;
17596
- if (Long_eq(Long_and($val, Long_create(0, 4294967295)), Long_ZERO)) {
17597
- $this.$numberLength = 1;
17598
- var$3 = $rt_createIntArray(1);
17599
- var$3.data[0] = Long_lo($val);
17600
- $this.$digits = var$3;
17601
- } else {
17602
- $this.$numberLength = 2;
17603
- $this.$digits = $rt_createIntArrayFromData([Long_lo($val), Long_hi($val)]);
17790
+ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
17791
+ let var$2;
17792
+ if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc)) {
17793
+ var$2 = $this.$backSteps;
17794
+ asrs_BackStepper$Action_$callClinit();
17795
+ asrs_BackStepper$BackstepStack_push0(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
17604
17796
  }
17605
17797
  };
17606
- var jm_BigInteger__init_1 = (var_0, var_1) => {
17607
- let var_2 = new jm_BigInteger();
17608
- jm_BigInteger__init_3(var_2, var_0, var_1);
17609
- return var_2;
17798
+ var asrs_BackStepper__clinit_ = () => {
17799
+ asrs_BackStepper_nextPokeGroup = -2;
17610
17800
  };
17611
- var jm_BigInteger_valueOf = ($val) => {
17612
- jm_BigInteger_$callClinit();
17613
- if (Long_lt($val, Long_ZERO)) {
17614
- if (Long_eq($val, Long_fromInt(-1)))
17615
- return jm_BigInteger_MINUS_ONE;
17616
- return jm_BigInteger__init_1(-1, Long_neg($val));
17801
+ var asr_JsBackStep = $rt_classWithoutFields();
17802
+ var asr_JsBackStep_of = ($backStep) => {
17803
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
17804
+ var$2 = $backStep.$action;
17805
+ var$3 = var$2 === null ? -1 : var$2.$ordinal0;
17806
+ var$4 = $backStep.$pc1;
17807
+ var$5 = $backStep.$param1;
17808
+ var$6 = $backStep.$param2;
17809
+ var$7 = Long_lo(var$6);
17810
+ asrs_BackStepper$Action_$callClinit();
17811
+ if (var$2 === asrs_BackStepper$Action_PC_RESTORE)
17812
+ var$6 = Long_fromInt(var$5);
17813
+ a: {
17814
+ var$8 = jl_Long_toString(var$6);
17815
+ switch ($backStep.$action.$ordinal0) {
17816
+ case 0:
17817
+ case 2:
17818
+ case 3:
17819
+ case 4:
17820
+ case 6:
17821
+ var$6 = Long_fromInt($backStep.$param3Int);
17822
+ break a;
17823
+ case 1:
17824
+ case 5:
17825
+ case 7:
17826
+ case 8:
17827
+ case 9:
17828
+ break;
17829
+ default:
17830
+ var$6 = Long_ZERO;
17831
+ break a;
17832
+ }
17833
+ var$6 = $backStep.$param3Long;
17617
17834
  }
17618
- if (Long_gt($val, Long_fromInt(10)))
17619
- return jm_BigInteger__init_1(1, $val);
17620
- return jm_BigInteger_SMALL_VALUES.data[Long_lo($val)];
17835
+ return asr_JsBackStep_create$js_body$_2(var$3, var$4, var$5, var$7, $rt_ustr(var$8), $rt_ustr(jl_Long_toString(var$6)), !!asrs_BackStepper$BackStep_isPoke($backStep));
17621
17836
  };
17622
- var jm_BigInteger_abs = ($this) => {
17623
- if ($this.$sign0 < 0)
17624
- $this = jm_BigInteger__init_0(1, $this.$numberLength, $this.$digits);
17625
- return $this;
17837
+ var asr_JsBackStep_create$js_body$_2 = (var$1, var$2, var$3, var$4, var$5, var$6, var$7) => {
17838
+ return { action: var$1, pc: var$2, param1: var$3, param2: var$4, oldValue: var$5, newValue: var$6, isPoke: var$7 };
17626
17839
  };
17627
- var jm_BigInteger_negate = ($this) => {
17628
- let var$1;
17629
- var$1 = $this.$sign0;
17630
- return !var$1 ? $this : jm_BigInteger__init_0(-var$1 | 0, $this.$numberLength, $this.$digits);
17840
+ var asr_JsUndoGroup = $rt_classWithoutFields();
17841
+ var asr_JsUndoGroup_create$js_body$_3 = (var$1, var$2, var$3, var$4) => {
17842
+ return { kind: var$1, pc: var$2, steps: var$3, writes: var$4 };
17631
17843
  };
17632
- var jm_BigInteger_add = ($this, $val) => {
17633
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
17634
- a: {
17635
- var$2 = $this.$sign0;
17636
- var$3 = $val.$sign0;
17637
- if (var$2) {
17638
- if (!var$3)
17639
- $val = $this;
17640
- else {
17641
- var$4 = $this.$numberLength;
17642
- var$5 = $val.$numberLength;
17643
- if ((var$4 + var$5 | 0) == 2) {
17644
- var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
17645
- var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
17646
- if (var$2 != var$3)
17647
- $val = jm_BigInteger_valueOf(var$2 >= 0 ? Long_sub(var$6, var$7) : Long_sub(var$7, var$6));
17648
- else {
17649
- var$6 = Long_add(var$6, var$7);
17650
- var$8 = Long_lo(var$6);
17651
- var$4 = Long_hi(var$6);
17652
- $val = !var$4 ? jm_BigInteger__init_(var$2, var$8) : jm_BigInteger__init_0(var$2, 2, $rt_createIntArrayFromData([var$8, var$4]));
17653
- }
17654
- } else {
17655
- if (var$2 == var$3)
17656
- var$9 = var$4 < var$5 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
17657
- else {
17658
- var$8 = $rt_compare(var$4, var$5);
17659
- var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
17660
- if (!var$8) {
17661
- jm_BigInteger_$callClinit();
17662
- $val = jm_BigInteger_ZERO;
17663
- break a;
17664
- }
17665
- if (var$8 != 1) {
17666
- var$9 = jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
17667
- var$2 = var$3;
17668
- } else
17669
- var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
17670
- }
17671
- var$10 = var$9.data;
17672
- $val = jm_BigInteger__init_0(var$2, var$10.length, var$9);
17673
- jm_BigInteger_cutOffLeadingZeroes($val);
17844
+ var asr_JsRiscV$Body = $rt_classWithoutFields(0);
17845
+ function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0() {
17846
+ let a = this;
17847
+ jl_Object.call(a);
17848
+ a.$_05 = null;
17849
+ a.$_12 = 0;
17850
+ a.$_2 = null;
17851
+ }
17852
+ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run = (var$0) => {
17853
+ let var$1, var$2, var$3, var$4, $ptr, $tmp;
17854
+ $ptr = 0;
17855
+ if ($rt_resuming()) {
17856
+ let $thread = $rt_nativeThread();
17857
+ $ptr = $thread.pop();
17858
+ var$4 = $thread.pop();
17859
+ var$3 = $thread.pop();
17860
+ var$2 = $thread.pop();
17861
+ var$1 = $thread.pop();
17862
+ var$0 = $thread.pop();
17863
+ }
17864
+ main: while (true) {
17865
+ switch ($ptr) {
17866
+ case 0:
17867
+ var$1 = var$0.$_05;
17868
+ var$2 = var$0.$_12;
17869
+ var$3 = var$0.$_2;
17870
+ var$1 = var$1.$main;
17871
+ asr_RARS_requireAssembled(var$1);
17872
+ var$4 = var$1.$main0;
17873
+ $ptr = 1;
17874
+ case 1:
17875
+ $tmp = asr_RISCVprogram_simulate(var$4, var$2, var$3);
17876
+ if ($rt_suspending()) {
17877
+ break main;
17674
17878
  }
17675
- }
17879
+ var$4 = $tmp;
17880
+ var$1.$stopReason = var$4;
17881
+ return var$4.$ordinal0;
17882
+ default:
17883
+ $rt_invalidPointer();
17676
17884
  }
17677
17885
  }
17678
- return $val;
17886
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
17679
17887
  };
17680
- var jm_BigInteger_subtract = ($this, $val) => {
17681
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
17682
- a: {
17683
- var$2 = $this.$sign0;
17684
- var$3 = $val.$sign0;
17685
- if (var$3) {
17686
- if (!var$2)
17687
- $this = jm_BigInteger_negate($val);
17688
- else {
17689
- var$4 = $this.$numberLength;
17690
- var$5 = $val.$numberLength;
17691
- if ((var$4 + var$5 | 0) == 2) {
17692
- var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
17693
- var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
17694
- if (var$2 < 0)
17695
- var$6 = Long_neg(var$6);
17696
- if (var$3 < 0)
17697
- var$7 = Long_neg(var$7);
17698
- $this = jm_BigInteger_valueOf(Long_sub(var$6, var$7));
17699
- } else {
17700
- var$8 = $rt_compare(var$4, var$5);
17701
- var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
17702
- if (var$8 == -1) {
17703
- var$8 = -var$3 | 0;
17704
- var$9 = var$2 != var$3 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
17705
- } else if (var$2 != var$3) {
17706
- var$9 = jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
17707
- var$8 = var$2;
17708
- } else {
17709
- if (!var$8) {
17710
- jm_BigInteger_$callClinit();
17711
- $this = jm_BigInteger_ZERO;
17712
- break a;
17713
- }
17714
- var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
17715
- var$8 = var$2;
17716
- }
17717
- var$10 = var$9.data;
17718
- $this = jm_BigInteger__init_0(var$8, var$10.length, var$9);
17719
- jm_BigInteger_cutOffLeadingZeroes($this);
17888
+ function asr_JsRiscV$simulate$lambda$_12_0() {
17889
+ jl_Object.call(this);
17890
+ this.$_06 = null;
17891
+ }
17892
+ var asr_JsRiscV$simulate$lambda$_12_0_run = (var$0) => {
17893
+ let var$1, var$2, $ptr, $tmp;
17894
+ $ptr = 0;
17895
+ if ($rt_resuming()) {
17896
+ let $thread = $rt_nativeThread();
17897
+ $ptr = $thread.pop();
17898
+ var$2 = $thread.pop();
17899
+ var$1 = $thread.pop();
17900
+ var$0 = $thread.pop();
17901
+ }
17902
+ main: while (true) {
17903
+ switch ($ptr) {
17904
+ case 0:
17905
+ var$1 = var$0.$_06.$main;
17906
+ var$2 = -1;
17907
+ $ptr = 1;
17908
+ case 1:
17909
+ $tmp = asr_RARS_simulate(var$1, var$2);
17910
+ if ($rt_suspending()) {
17911
+ break main;
17720
17912
  }
17721
- }
17913
+ var$1 = $tmp;
17914
+ return var$1.$ordinal0;
17915
+ default:
17916
+ $rt_invalidPointer();
17722
17917
  }
17723
17918
  }
17724
- return $this;
17725
- };
17726
- var jm_BigInteger_shiftRight = ($this, $n) => {
17727
- if ($n && $this.$sign0)
17728
- return $n > 0 ? jm_BitLevel_shiftRight($this, $n) : jm_BitLevel_shiftLeft($this, -$n | 0);
17729
- return $this;
17730
- };
17731
- var jm_BigInteger_shiftLeft = ($this, $n) => {
17732
- if ($n && $this.$sign0)
17733
- return $n > 0 ? jm_BitLevel_shiftLeft($this, $n) : jm_BitLevel_shiftRight($this, -$n | 0);
17734
- return $this;
17919
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
17735
17920
  };
17736
- var jm_BigInteger_bitLength = ($this) => {
17737
- let var$1, var$2, var$3, var$4;
17738
- var$1 = $this.$sign0;
17739
- if (!var$1)
17740
- var$2 = 0;
17741
- else {
17742
- var$3 = $this.$numberLength;
17743
- var$4 = var$3 << 5;
17744
- var$2 = $this.$digits.data[var$3 - 1 | 0];
17745
- if (var$1 < 0 && jm_BigInteger_getFirstNonzeroDigit($this) == ($this.$numberLength - 1 | 0))
17746
- var$2 = var$2 + -1 | 0;
17921
+ function asr_JsCompilationResult() {
17922
+ let a = this;
17923
+ jl_Object.call(a);
17924
+ a.$report = null;
17925
+ a.$errors1 = null;
17926
+ }
17927
+ var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
17928
+ let var$2, var$3, var$4;
17929
+ $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
17930
+ $errorReport = ju_Collection_stream($errorReport.$messages);
17931
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
17932
+ var$2.$_019 = $this;
17933
+ $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
17934
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
17935
+ $errorReport = $errorReport;
17936
+ var$3 = ju_ArrayList__init_();
17937
+ var$4 = $errorReport;
17938
+ while (true) {
17939
+ $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
17940
+ $errorReport.$_024 = var$2;
17941
+ $errorReport.$_19 = var$3;
17942
+ if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
17943
+ break;
17944
+ }
17945
+ $this.$errors1 = var$3;
17946
+ };
17947
+ var asr_JsCompilationResult__init_ = (var_0) => {
17948
+ let var_1 = new asr_JsCompilationResult();
17949
+ asr_JsCompilationResult__init_0(var_1, var_0);
17950
+ return var_1;
17951
+ };
17952
+ var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
17953
+ let var$2;
17954
+ var$1 = ju_Collection_stream(var$1.$errors1);
17955
+ var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
17956
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
17957
+ };
17958
+ var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
17959
+ let var$2;
17960
+ var$1 = var$1.$errors1;
17961
+ var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
17962
+ return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
17963
+ };
17964
+ var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
17965
+ let var$2;
17966
+ var$1 = ju_Collection_stream(var$1.$errors1);
17967
+ var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
17968
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
17969
+ };
17970
+ var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
17971
+ return $rt_ustr(var$1.$report);
17972
+ };
17973
+ function asr_AssemblyException() {
17974
+ jl_Exception.call(this);
17975
+ this.$errs = null;
17976
+ }
17977
+ var asr_AssemblyException__init_0 = ($this, $errs) => {
17978
+ jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
17979
+ $this.$errs = $errs;
17980
+ };
17981
+ var asr_AssemblyException__init_ = (var_0) => {
17982
+ let var_1 = new asr_AssemblyException();
17983
+ asr_AssemblyException__init_0(var_1, var_0);
17984
+ return var_1;
17985
+ };
17986
+ var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
17987
+ var asrrh_FloatingPointRegisterFile_instance = null;
17988
+ var asrrh_FloatingPointRegisterFile_$callClinit = () => {
17989
+ asrrh_FloatingPointRegisterFile_$callClinit = $rt_eraseClinit(asrrh_FloatingPointRegisterFile);
17990
+ asrrh_FloatingPointRegisterFile__clinit_();
17991
+ };
17992
+ var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
17993
+ asrrh_FloatingPointRegisterFile_$callClinit();
17994
+ asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
17995
+ };
17996
+ var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
17997
+ let $lval;
17998
+ asrrh_FloatingPointRegisterFile_$callClinit();
17999
+ $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
18000
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18001
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
18002
+ else
18003
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval), $lval);
18004
+ };
18005
+ var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
18006
+ asrrh_FloatingPointRegisterFile_$callClinit();
18007
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18008
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
18009
+ else
18010
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val), $val);
18011
+ };
18012
+ var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
18013
+ let $lval;
18014
+ asrrh_FloatingPointRegisterFile_$callClinit();
18015
+ $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18016
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18017
+ return 2143289344;
18018
+ return Long_lo($lval);
18019
+ };
18020
+ var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
18021
+ asrrh_FloatingPointRegisterFile_$callClinit();
18022
+ return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18023
+ };
18024
+ var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
18025
+ let $lval;
18026
+ asrrh_FloatingPointRegisterFile_$callClinit();
18027
+ $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
18028
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18029
+ return 2143289344;
18030
+ return Long_lo($lval);
18031
+ };
18032
+ var asrrh_FloatingPointRegisterFile_getRegisters = () => {
18033
+ asrrh_FloatingPointRegisterFile_$callClinit();
18034
+ return asrrh_FloatingPointRegisterFile_instance.$regFile;
18035
+ };
18036
+ var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
18037
+ asrrh_FloatingPointRegisterFile_$callClinit();
18038
+ return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
18039
+ };
18040
+ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
18041
+ let var$1, var$2, var$3;
18042
+ var$1 = new asrrh_RegisterBlock();
18043
+ var$2 = $rt_createArray(asrrh_Register, 32);
18044
+ var$3 = var$2.data;
18045
+ var$3[0] = asrrh_Register__init_($rt_s(543), 0, Long_ZERO);
18046
+ var$3[1] = asrrh_Register__init_($rt_s(544), 1, Long_ZERO);
18047
+ var$3[2] = asrrh_Register__init_($rt_s(545), 2, Long_ZERO);
18048
+ var$3[3] = asrrh_Register__init_($rt_s(546), 3, Long_ZERO);
18049
+ var$3[4] = asrrh_Register__init_($rt_s(547), 4, Long_ZERO);
18050
+ var$3[5] = asrrh_Register__init_($rt_s(548), 5, Long_ZERO);
18051
+ var$3[6] = asrrh_Register__init_($rt_s(549), 6, Long_ZERO);
18052
+ var$3[7] = asrrh_Register__init_($rt_s(550), 7, Long_ZERO);
18053
+ var$3[8] = asrrh_Register__init_($rt_s(551), 8, Long_ZERO);
18054
+ var$3[9] = asrrh_Register__init_($rt_s(552), 9, Long_ZERO);
18055
+ var$3[10] = asrrh_Register__init_($rt_s(553), 10, Long_ZERO);
18056
+ var$3[11] = asrrh_Register__init_($rt_s(554), 11, Long_ZERO);
18057
+ var$3[12] = asrrh_Register__init_($rt_s(555), 12, Long_ZERO);
18058
+ var$3[13] = asrrh_Register__init_($rt_s(556), 13, Long_ZERO);
18059
+ var$3[14] = asrrh_Register__init_($rt_s(557), 14, Long_ZERO);
18060
+ var$3[15] = asrrh_Register__init_($rt_s(558), 15, Long_ZERO);
18061
+ var$3[16] = asrrh_Register__init_($rt_s(559), 16, Long_ZERO);
18062
+ var$3[17] = asrrh_Register__init_($rt_s(560), 17, Long_ZERO);
18063
+ var$3[18] = asrrh_Register__init_($rt_s(561), 18, Long_ZERO);
18064
+ var$3[19] = asrrh_Register__init_($rt_s(562), 19, Long_ZERO);
18065
+ var$3[20] = asrrh_Register__init_($rt_s(563), 20, Long_ZERO);
18066
+ var$3[21] = asrrh_Register__init_($rt_s(564), 21, Long_ZERO);
18067
+ var$3[22] = asrrh_Register__init_($rt_s(565), 22, Long_ZERO);
18068
+ var$3[23] = asrrh_Register__init_($rt_s(566), 23, Long_ZERO);
18069
+ var$3[24] = asrrh_Register__init_($rt_s(567), 24, Long_ZERO);
18070
+ var$3[25] = asrrh_Register__init_($rt_s(568), 25, Long_ZERO);
18071
+ var$3[26] = asrrh_Register__init_($rt_s(569), 26, Long_ZERO);
18072
+ var$3[27] = asrrh_Register__init_($rt_s(570), 27, Long_ZERO);
18073
+ var$3[28] = asrrh_Register__init_($rt_s(571), 28, Long_ZERO);
18074
+ var$3[29] = asrrh_Register__init_($rt_s(572), 29, Long_ZERO);
18075
+ var$3[30] = asrrh_Register__init_($rt_s(573), 30, Long_ZERO);
18076
+ var$3[31] = asrrh_Register__init_($rt_s(574), 31, Long_ZERO);
18077
+ asrrh_RegisterBlock__init_(var$1, 102, var$2);
18078
+ asrrh_FloatingPointRegisterFile_instance = var$1;
18079
+ };
18080
+ function asr_JsRiscV$simulateWithLimit$lambda$_13_0() {
18081
+ let a = this;
18082
+ jl_Object.call(a);
18083
+ a.$_022 = null;
18084
+ a.$_112 = 0;
18085
+ }
18086
+ var asr_JsRiscV$simulateWithLimit$lambda$_13_0_run = (var$0) => {
18087
+ let var$1, var$2, $ptr, $tmp;
18088
+ $ptr = 0;
18089
+ if ($rt_resuming()) {
18090
+ let $thread = $rt_nativeThread();
18091
+ $ptr = $thread.pop();
18092
+ var$2 = $thread.pop();
18093
+ var$1 = $thread.pop();
18094
+ var$0 = $thread.pop();
18095
+ }
18096
+ main: while (true) {
18097
+ switch ($ptr) {
18098
+ case 0:
18099
+ var$1 = var$0.$_022;
18100
+ var$2 = var$0.$_112;
18101
+ var$1 = var$1.$main;
18102
+ $ptr = 1;
18103
+ case 1:
18104
+ $tmp = asr_RARS_simulate(var$1, var$2);
18105
+ if ($rt_suspending()) {
18106
+ break main;
18107
+ }
18108
+ var$1 = $tmp;
18109
+ return var$1.$ordinal0;
18110
+ default:
18111
+ $rt_invalidPointer();
18112
+ }
18113
+ }
18114
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
18115
+ };
18116
+ function jm_BigInteger() {
18117
+ let a = this;
18118
+ jl_Number.call(a);
18119
+ a.$digits = null;
18120
+ a.$numberLength = 0;
18121
+ a.$sign0 = 0;
18122
+ a.$firstNonzeroDigit = 0;
18123
+ a.$hashCode1 = 0;
18124
+ }
18125
+ var jm_BigInteger_ZERO = null;
18126
+ var jm_BigInteger_ONE = null;
18127
+ var jm_BigInteger_TWO = null;
18128
+ var jm_BigInteger_TEN = null;
18129
+ var jm_BigInteger_MINUS_ONE = null;
18130
+ var jm_BigInteger_SMALL_VALUES = null;
18131
+ var jm_BigInteger_TWO_POWS = null;
18132
+ var jm_BigInteger_$callClinit = () => {
18133
+ jm_BigInteger_$callClinit = $rt_eraseClinit(jm_BigInteger);
18134
+ jm_BigInteger__clinit_();
18135
+ };
18136
+ var jm_BigInteger__init_4 = ($this, $sign, $value) => {
18137
+ let var$3;
18138
+ jm_BigInteger_$callClinit();
18139
+ $this.$firstNonzeroDigit = -2;
18140
+ $this.$sign0 = $sign;
18141
+ $this.$numberLength = 1;
18142
+ var$3 = $rt_createIntArray(1);
18143
+ var$3.data[0] = $value;
18144
+ $this.$digits = var$3;
18145
+ };
18146
+ var jm_BigInteger__init_ = (var_0, var_1) => {
18147
+ let var_2 = new jm_BigInteger();
18148
+ jm_BigInteger__init_4(var_2, var_0, var_1);
18149
+ return var_2;
18150
+ };
18151
+ var jm_BigInteger__init_2 = ($this, $sign, $numberLength, $digits) => {
18152
+ jm_BigInteger_$callClinit();
18153
+ $this.$firstNonzeroDigit = -2;
18154
+ $this.$sign0 = $sign;
18155
+ $this.$numberLength = $numberLength;
18156
+ $this.$digits = $digits;
18157
+ };
18158
+ var jm_BigInteger__init_0 = (var_0, var_1, var_2) => {
18159
+ let var_3 = new jm_BigInteger();
18160
+ jm_BigInteger__init_2(var_3, var_0, var_1, var_2);
18161
+ return var_3;
18162
+ };
18163
+ var jm_BigInteger__init_3 = ($this, $sign, $val) => {
18164
+ let var$3;
18165
+ jm_BigInteger_$callClinit();
18166
+ $this.$firstNonzeroDigit = -2;
18167
+ $this.$sign0 = $sign;
18168
+ if (Long_eq(Long_and($val, Long_create(0, 4294967295)), Long_ZERO)) {
18169
+ $this.$numberLength = 1;
18170
+ var$3 = $rt_createIntArray(1);
18171
+ var$3.data[0] = Long_lo($val);
18172
+ $this.$digits = var$3;
18173
+ } else {
18174
+ $this.$numberLength = 2;
18175
+ $this.$digits = $rt_createIntArrayFromData([Long_lo($val), Long_hi($val)]);
18176
+ }
18177
+ };
18178
+ var jm_BigInteger__init_1 = (var_0, var_1) => {
18179
+ let var_2 = new jm_BigInteger();
18180
+ jm_BigInteger__init_3(var_2, var_0, var_1);
18181
+ return var_2;
18182
+ };
18183
+ var jm_BigInteger_valueOf = ($val) => {
18184
+ jm_BigInteger_$callClinit();
18185
+ if (Long_lt($val, Long_ZERO)) {
18186
+ if (Long_eq($val, Long_fromInt(-1)))
18187
+ return jm_BigInteger_MINUS_ONE;
18188
+ return jm_BigInteger__init_1(-1, Long_neg($val));
18189
+ }
18190
+ if (Long_gt($val, Long_fromInt(10)))
18191
+ return jm_BigInteger__init_1(1, $val);
18192
+ return jm_BigInteger_SMALL_VALUES.data[Long_lo($val)];
18193
+ };
18194
+ var jm_BigInteger_abs = ($this) => {
18195
+ if ($this.$sign0 < 0)
18196
+ $this = jm_BigInteger__init_0(1, $this.$numberLength, $this.$digits);
18197
+ return $this;
18198
+ };
18199
+ var jm_BigInteger_negate = ($this) => {
18200
+ let var$1;
18201
+ var$1 = $this.$sign0;
18202
+ return !var$1 ? $this : jm_BigInteger__init_0(-var$1 | 0, $this.$numberLength, $this.$digits);
18203
+ };
18204
+ var jm_BigInteger_add = ($this, $val) => {
18205
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
18206
+ a: {
18207
+ var$2 = $this.$sign0;
18208
+ var$3 = $val.$sign0;
18209
+ if (var$2) {
18210
+ if (!var$3)
18211
+ $val = $this;
18212
+ else {
18213
+ var$4 = $this.$numberLength;
18214
+ var$5 = $val.$numberLength;
18215
+ if ((var$4 + var$5 | 0) == 2) {
18216
+ var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
18217
+ var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
18218
+ if (var$2 != var$3)
18219
+ $val = jm_BigInteger_valueOf(var$2 >= 0 ? Long_sub(var$6, var$7) : Long_sub(var$7, var$6));
18220
+ else {
18221
+ var$6 = Long_add(var$6, var$7);
18222
+ var$8 = Long_lo(var$6);
18223
+ var$4 = Long_hi(var$6);
18224
+ $val = !var$4 ? jm_BigInteger__init_(var$2, var$8) : jm_BigInteger__init_0(var$2, 2, $rt_createIntArrayFromData([var$8, var$4]));
18225
+ }
18226
+ } else {
18227
+ if (var$2 == var$3)
18228
+ var$9 = var$4 < var$5 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
18229
+ else {
18230
+ var$8 = $rt_compare(var$4, var$5);
18231
+ var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
18232
+ if (!var$8) {
18233
+ jm_BigInteger_$callClinit();
18234
+ $val = jm_BigInteger_ZERO;
18235
+ break a;
18236
+ }
18237
+ if (var$8 != 1) {
18238
+ var$9 = jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
18239
+ var$2 = var$3;
18240
+ } else
18241
+ var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
18242
+ }
18243
+ var$10 = var$9.data;
18244
+ $val = jm_BigInteger__init_0(var$2, var$10.length, var$9);
18245
+ jm_BigInteger_cutOffLeadingZeroes($val);
18246
+ }
18247
+ }
18248
+ }
18249
+ }
18250
+ return $val;
18251
+ };
18252
+ var jm_BigInteger_subtract = ($this, $val) => {
18253
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
18254
+ a: {
18255
+ var$2 = $this.$sign0;
18256
+ var$3 = $val.$sign0;
18257
+ if (var$3) {
18258
+ if (!var$2)
18259
+ $this = jm_BigInteger_negate($val);
18260
+ else {
18261
+ var$4 = $this.$numberLength;
18262
+ var$5 = $val.$numberLength;
18263
+ if ((var$4 + var$5 | 0) == 2) {
18264
+ var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
18265
+ var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
18266
+ if (var$2 < 0)
18267
+ var$6 = Long_neg(var$6);
18268
+ if (var$3 < 0)
18269
+ var$7 = Long_neg(var$7);
18270
+ $this = jm_BigInteger_valueOf(Long_sub(var$6, var$7));
18271
+ } else {
18272
+ var$8 = $rt_compare(var$4, var$5);
18273
+ var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
18274
+ if (var$8 == -1) {
18275
+ var$8 = -var$3 | 0;
18276
+ var$9 = var$2 != var$3 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
18277
+ } else if (var$2 != var$3) {
18278
+ var$9 = jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
18279
+ var$8 = var$2;
18280
+ } else {
18281
+ if (!var$8) {
18282
+ jm_BigInteger_$callClinit();
18283
+ $this = jm_BigInteger_ZERO;
18284
+ break a;
18285
+ }
18286
+ var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
18287
+ var$8 = var$2;
18288
+ }
18289
+ var$10 = var$9.data;
18290
+ $this = jm_BigInteger__init_0(var$8, var$10.length, var$9);
18291
+ jm_BigInteger_cutOffLeadingZeroes($this);
18292
+ }
18293
+ }
18294
+ }
18295
+ }
18296
+ return $this;
18297
+ };
18298
+ var jm_BigInteger_shiftRight = ($this, $n) => {
18299
+ if ($n && $this.$sign0)
18300
+ return $n > 0 ? jm_BitLevel_shiftRight($this, $n) : jm_BitLevel_shiftLeft($this, -$n | 0);
18301
+ return $this;
18302
+ };
18303
+ var jm_BigInteger_shiftLeft = ($this, $n) => {
18304
+ if ($n && $this.$sign0)
18305
+ return $n > 0 ? jm_BitLevel_shiftLeft($this, $n) : jm_BitLevel_shiftRight($this, -$n | 0);
18306
+ return $this;
18307
+ };
18308
+ var jm_BigInteger_bitLength = ($this) => {
18309
+ let var$1, var$2, var$3, var$4;
18310
+ var$1 = $this.$sign0;
18311
+ if (!var$1)
18312
+ var$2 = 0;
18313
+ else {
18314
+ var$3 = $this.$numberLength;
18315
+ var$4 = var$3 << 5;
18316
+ var$2 = $this.$digits.data[var$3 - 1 | 0];
18317
+ if (var$1 < 0 && jm_BigInteger_getFirstNonzeroDigit($this) == ($this.$numberLength - 1 | 0))
18318
+ var$2 = var$2 + -1 | 0;
17747
18319
  var$2 = var$4 - jl_Integer_numberOfLeadingZeros(var$2) | 0;
17748
18320
  }
17749
18321
  return var$2;
@@ -17754,7 +18326,7 @@ var jm_BigInteger_testBit = ($this, $n) => {
17754
18326
  return !($this.$digits.data[0] & 1) ? 0 : 1;
17755
18327
  if ($n < 0) {
17756
18328
  var$2 = new jl_ArithmeticException();
17757
- jl_Throwable__init_0(var$2, $rt_s(543));
18329
+ jl_Throwable__init_0(var$2, $rt_s(575));
17758
18330
  $rt_throw(var$2);
17759
18331
  }
17760
18332
  $intCount = $n >> 5;
@@ -17782,7 +18354,7 @@ var jm_BigInteger_intValueExact = ($this) => {
17782
18354
  if ($this.$numberLength <= 1 && jm_BigInteger_bitLength($this) <= 31)
17783
18355
  return $rt_imul($this.$sign0, $this.$digits.data[0]);
17784
18356
  var$1 = new jl_ArithmeticException();
17785
- jl_Throwable__init_0(var$1, $rt_s(544));
18357
+ jl_Throwable__init_0(var$1, $rt_s(576));
17786
18358
  $rt_throw(var$1);
17787
18359
  };
17788
18360
  var jm_BigInteger_longValue = ($this) => {
@@ -17800,7 +18372,7 @@ var jm_BigInteger_longValueExact = ($this) => {
17800
18372
  if ($this.$numberLength <= 2 && jm_BigInteger_bitLength($this) <= 63)
17801
18373
  return jm_BigInteger_longValue($this);
17802
18374
  var$1 = new jl_ArithmeticException();
17803
- jl_Throwable__init_0(var$1, $rt_s(545));
18375
+ jl_Throwable__init_0(var$1, $rt_s(577));
17804
18376
  $rt_throw(var$1);
17805
18377
  };
17806
18378
  var jm_BigInteger_compareTo = ($this, $val) => {
@@ -17948,730 +18520,44 @@ var jm_BigInteger__clinit_ = () => {
17948
18520
  $i = $i + 1 | 0;
17949
18521
  }
17950
18522
  };
17951
- var asr_JsRiscV$Body = $rt_classWithoutFields(0);
17952
- function asr_JsRiscV$simulate$lambda$_12_0() {
17953
- jl_Object.call(this);
17954
- this.$_06 = null;
17955
- }
17956
- var asr_JsRiscV$simulate$lambda$_12_0_run = (var$0) => {
17957
- let var$1, var$2, $ptr, $tmp;
17958
- $ptr = 0;
17959
- if ($rt_resuming()) {
17960
- let $thread = $rt_nativeThread();
17961
- $ptr = $thread.pop();
17962
- var$2 = $thread.pop();
17963
- var$1 = $thread.pop();
17964
- var$0 = $thread.pop();
17965
- }
17966
- main: while (true) {
17967
- switch ($ptr) {
17968
- case 0:
17969
- var$1 = var$0.$_06.$main;
17970
- var$2 = -1;
17971
- $ptr = 1;
17972
- case 1:
17973
- $tmp = asr_RARS_simulate(var$1, var$2);
17974
- if ($rt_suspending()) {
17975
- break main;
17976
- }
17977
- var$1 = $tmp;
17978
- return var$1.$ordinal0;
17979
- default:
17980
- $rt_invalidPointer();
17981
- }
17982
- }
17983
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
18523
+ var jl_Double = $rt_classWithoutFields(jl_Number);
18524
+ var jl_Double_TYPE = null;
18525
+ var jl_Double_$callClinit = () => {
18526
+ jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
18527
+ jl_Double__clinit_();
17984
18528
  };
17985
- var juf_ToIntFunction = $rt_classWithoutFields(0);
17986
- var asr_JsRiscV$getRegistersValues$lambda$_28_0 = $rt_classWithoutFields();
17987
- function asr_JsProgramStatement() {
17988
- let a = this;
17989
- jl_Object.call(a);
17990
- a.$sourceLine5 = 0;
17991
- a.$sourcePath2 = null;
17992
- a.$address2 = 0;
17993
- a.$binaryStatement0 = 0;
17994
- a.$source2 = null;
17995
- a.$assemblyStatement = null;
17996
- a.$machineStatement0 = null;
17997
- }
17998
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
17999
- let var$2, var$3, var$4, var$5, var$6;
18000
- $this.$sourceLine5 = $programStatement.$sourceLine1;
18001
- $this.$sourcePath2 = $programStatement.$sourcePath;
18002
- $this.$address2 = $programStatement.$textAddress0;
18003
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
18004
- $this.$source2 = $programStatement.$source;
18005
- var$2 = $programStatement.$basicStatementList;
18006
- var$3 = asr_Globals_getSettings();
18007
- asr_Settings$Bool_$callClinit();
18008
- var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
18009
- var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
18010
- var$3 = new jl_StringBuffer();
18011
- jl_AbstractStringBuilder__init_(var$3);
18012
- var$6 = ju_AbstractList_iterator(var$2.$list);
18013
- while (ju_AbstractList$1_hasNext(var$6)) {
18014
- a: {
18015
- var$2 = ju_AbstractList$1_next(var$6);
18016
- switch (var$2.$type3) {
18017
- case 0:
18529
+ var jl_Double_parseDouble = ($string) => {
18530
+ let $start, $end, var$4, var$5, $negative, $c, $mantissa, $exp, $hasOneDigit, $mantissaPos, $negativeExp, $numExp;
18531
+ jl_Double_$callClinit();
18532
+ if (jl_String_isEmpty($string)) {
18533
+ $string = new jl_NumberFormatException();
18534
+ jl_Throwable__init_($string);
18535
+ $rt_throw($string);
18536
+ }
18537
+ $start = 0;
18538
+ $end = $string.$nativeString.length;
18539
+ while (true) {
18540
+ if (jl_String_charAt($string, $start) > 32) {
18541
+ while (true) {
18542
+ var$4 = $end - 1 | 0;
18543
+ if (jl_String_charAt($string, var$4) > 32)
18018
18544
  break;
18019
- case 1:
18020
- if (var$4 == 10) {
18021
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
18022
- break a;
18023
- }
18024
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
18025
- break a;
18026
- case 2:
18027
- if (var$5 == 10) {
18028
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
18029
- break a;
18030
- }
18031
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
18032
- break a;
18033
- case 3:
18034
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
18035
- break a;
18036
- default:
18037
- break a;
18545
+ $end = $end + -1 | 0;
18038
18546
  }
18039
- jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
18040
- }
18041
- }
18042
- $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$3);
18043
- $this.$machineStatement0 = $programStatement.$machineStatement;
18044
- };
18045
- var asr_JsProgramStatement__init_ = (var_0) => {
18046
- let var_1 = new asr_JsProgramStatement();
18047
- asr_JsProgramStatement__init_0(var_1, var_0);
18048
- return var_1;
18049
- };
18050
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
18051
- return var$1.$sourceLine5;
18052
- };
18053
- var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
18054
- return $rt_ustr(var$1.$sourcePath2);
18055
- };
18056
- var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
18057
- return $rt_ustr(var$1.$assemblyStatement);
18058
- };
18059
- var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
18060
- return $rt_ustr(var$1.$source2);
18061
- };
18062
- var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
18063
- return var$1.$address2;
18064
- };
18065
- var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
18066
- return var$1.$binaryStatement0;
18067
- };
18068
- var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
18069
- return $rt_ustr(var$1.$machineStatement0);
18070
- };
18071
- function asr_JsRiscV$step$lambda$_10_0() {
18072
- jl_Object.call(this);
18073
- this.$_014 = null;
18074
- }
18075
- var asr_JsRiscV$step$lambda$_10_0_run = (var$0) => {
18076
- let var$1, var$2, var$3, $ptr, $tmp;
18077
- $ptr = 0;
18078
- if ($rt_resuming()) {
18079
- let $thread = $rt_nativeThread();
18080
- $ptr = $thread.pop();
18081
- var$3 = $thread.pop();
18082
- var$2 = $thread.pop();
18083
- var$1 = $thread.pop();
18084
- var$0 = $thread.pop();
18085
- }
18086
- main: while (true) {
18087
- switch ($ptr) {
18088
- case 0:
18089
- var$1 = var$0.$_014.$main;
18090
- asr_RARS_requireAssembled(var$1);
18091
- var$2 = var$1.$main0;
18092
- var$3 = 1;
18093
- $ptr = 1;
18094
- case 1:
18095
- $tmp = asr_RISCVprogram_simulate0(var$2, var$3);
18096
- if ($rt_suspending()) {
18097
- break main;
18098
- }
18099
- var$2 = $tmp;
18100
- var$1.$stopReason = var$2;
18101
- return var$2.$ordinal0;
18102
- default:
18103
- $rt_invalidPointer();
18104
- }
18105
- }
18106
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
18107
- };
18108
- function asr_JsStackFrame() {
18109
- let a = this;
18110
- jl_Object.call(a);
18111
- a.$pc2 = 0;
18112
- a.$toAddress1 = 0;
18113
- a.$sp = 0;
18114
- a.$fp = 0;
18115
- a.$registers0 = null;
18116
- }
18117
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
18118
- return var$1.$pc2;
18119
- };
18120
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
18121
- return var$1.$toAddress1;
18122
- };
18123
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
18124
- return otji_JS_wrap0(var$1.$registers0);
18125
- };
18126
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
18127
- return var$1.$sp;
18128
- };
18129
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
18130
- return var$1.$fp;
18131
- };
18132
- var ju_Observer = $rt_classWithoutFields(0);
18133
- function asr_JsMemoryObserver() {
18134
- let a = this;
18135
- jl_Object.call(a);
18136
- a.$handle = 0;
18137
- a.$startAddress = 0;
18138
- a.$endAddress = 0;
18139
- a.$onRead = null;
18140
- a.$onWrite = null;
18141
- a.$reportsLength = 0;
18142
- }
18143
- var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
18144
- $this.$handle = $handle;
18145
- $this.$startAddress = $startAddress;
18146
- $this.$endAddress = $endAddress;
18147
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
18148
- $onRead = null;
18149
- $this.$onRead = $onRead;
18150
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
18151
- $onWrite = null;
18152
- $this.$onWrite = $onWrite;
18153
- $this.$reportsLength = $reportsLength;
18154
- };
18155
- var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
18156
- let var_6 = new asr_JsMemoryObserver();
18157
- asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
18158
- return var_6;
18159
- };
18160
- var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
18161
- return var$1 === null || var$1 === void 0;
18162
- };
18163
- function asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0() {
18164
- let a = this;
18165
- jl_Object.call(a);
18166
- a.$_03 = null;
18167
- a.$_10 = null;
18168
- }
18169
- var asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run = (var$0) => {
18170
- let var$1, var$2, var$3, var$4, $ptr, $tmp;
18171
- $ptr = 0;
18172
- if ($rt_resuming()) {
18173
- let $thread = $rt_nativeThread();
18174
- $ptr = $thread.pop();
18175
- var$4 = $thread.pop();
18176
- var$3 = $thread.pop();
18177
- var$2 = $thread.pop();
18178
- var$1 = $thread.pop();
18179
- var$0 = $thread.pop();
18180
- }
18181
- main: while (true) {
18182
- switch ($ptr) {
18183
- case 0:
18184
- var$1 = var$0.$_03;
18185
- var$2 = var$0.$_10;
18186
- var$1 = var$1.$main;
18187
- asr_RARS_requireAssembled(var$1);
18188
- var$3 = var$1.$main0;
18189
- var$4 = -1;
18190
- $ptr = 1;
18191
- case 1:
18192
- $tmp = asr_RISCVprogram_simulate(var$3, var$4, var$2);
18193
- if ($rt_suspending()) {
18194
- break main;
18195
- }
18196
- var$3 = $tmp;
18197
- var$1.$stopReason = var$3;
18198
- return var$3.$ordinal0;
18199
- default:
18200
- $rt_invalidPointer();
18201
- }
18202
- }
18203
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
18204
- };
18205
- var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
18206
- var asrrh_FloatingPointRegisterFile_instance = null;
18207
- var asrrh_FloatingPointRegisterFile_$callClinit = () => {
18208
- asrrh_FloatingPointRegisterFile_$callClinit = $rt_eraseClinit(asrrh_FloatingPointRegisterFile);
18209
- asrrh_FloatingPointRegisterFile__clinit_();
18210
- };
18211
- var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
18212
- asrrh_FloatingPointRegisterFile_$callClinit();
18213
- asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
18214
- };
18215
- var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
18216
- let $lval;
18217
- asrrh_FloatingPointRegisterFile_$callClinit();
18218
- $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
18219
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18220
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
18221
- else
18222
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval), $lval);
18223
- };
18224
- var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
18225
- asrrh_FloatingPointRegisterFile_$callClinit();
18226
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18227
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
18228
- else
18229
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val), $val);
18230
- };
18231
- var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
18232
- let $lval;
18233
- asrrh_FloatingPointRegisterFile_$callClinit();
18234
- $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18235
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18236
- return 2143289344;
18237
- return Long_lo($lval);
18238
- };
18239
- var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
18240
- asrrh_FloatingPointRegisterFile_$callClinit();
18241
- return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18242
- };
18243
- var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
18244
- let $lval;
18245
- asrrh_FloatingPointRegisterFile_$callClinit();
18246
- $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
18247
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18248
- return 2143289344;
18249
- return Long_lo($lval);
18250
- };
18251
- var asrrh_FloatingPointRegisterFile_getRegisters = () => {
18252
- asrrh_FloatingPointRegisterFile_$callClinit();
18253
- return asrrh_FloatingPointRegisterFile_instance.$regFile;
18254
- };
18255
- var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
18256
- asrrh_FloatingPointRegisterFile_$callClinit();
18257
- return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
18258
- };
18259
- var asrrh_FloatingPointRegisterFile__clinit_ = () => {
18260
- let var$1, var$2, var$3;
18261
- var$1 = new asrrh_RegisterBlock();
18262
- var$2 = $rt_createArray(asrrh_Register, 32);
18263
- var$3 = var$2.data;
18264
- var$3[0] = asrrh_Register__init_($rt_s(546), 0, Long_ZERO);
18265
- var$3[1] = asrrh_Register__init_($rt_s(547), 1, Long_ZERO);
18266
- var$3[2] = asrrh_Register__init_($rt_s(548), 2, Long_ZERO);
18267
- var$3[3] = asrrh_Register__init_($rt_s(549), 3, Long_ZERO);
18268
- var$3[4] = asrrh_Register__init_($rt_s(550), 4, Long_ZERO);
18269
- var$3[5] = asrrh_Register__init_($rt_s(551), 5, Long_ZERO);
18270
- var$3[6] = asrrh_Register__init_($rt_s(552), 6, Long_ZERO);
18271
- var$3[7] = asrrh_Register__init_($rt_s(553), 7, Long_ZERO);
18272
- var$3[8] = asrrh_Register__init_($rt_s(554), 8, Long_ZERO);
18273
- var$3[9] = asrrh_Register__init_($rt_s(555), 9, Long_ZERO);
18274
- var$3[10] = asrrh_Register__init_($rt_s(556), 10, Long_ZERO);
18275
- var$3[11] = asrrh_Register__init_($rt_s(557), 11, Long_ZERO);
18276
- var$3[12] = asrrh_Register__init_($rt_s(558), 12, Long_ZERO);
18277
- var$3[13] = asrrh_Register__init_($rt_s(559), 13, Long_ZERO);
18278
- var$3[14] = asrrh_Register__init_($rt_s(560), 14, Long_ZERO);
18279
- var$3[15] = asrrh_Register__init_($rt_s(561), 15, Long_ZERO);
18280
- var$3[16] = asrrh_Register__init_($rt_s(562), 16, Long_ZERO);
18281
- var$3[17] = asrrh_Register__init_($rt_s(563), 17, Long_ZERO);
18282
- var$3[18] = asrrh_Register__init_($rt_s(564), 18, Long_ZERO);
18283
- var$3[19] = asrrh_Register__init_($rt_s(565), 19, Long_ZERO);
18284
- var$3[20] = asrrh_Register__init_($rt_s(566), 20, Long_ZERO);
18285
- var$3[21] = asrrh_Register__init_($rt_s(567), 21, Long_ZERO);
18286
- var$3[22] = asrrh_Register__init_($rt_s(568), 22, Long_ZERO);
18287
- var$3[23] = asrrh_Register__init_($rt_s(569), 23, Long_ZERO);
18288
- var$3[24] = asrrh_Register__init_($rt_s(570), 24, Long_ZERO);
18289
- var$3[25] = asrrh_Register__init_($rt_s(571), 25, Long_ZERO);
18290
- var$3[26] = asrrh_Register__init_($rt_s(572), 26, Long_ZERO);
18291
- var$3[27] = asrrh_Register__init_($rt_s(573), 27, Long_ZERO);
18292
- var$3[28] = asrrh_Register__init_($rt_s(574), 28, Long_ZERO);
18293
- var$3[29] = asrrh_Register__init_($rt_s(575), 29, Long_ZERO);
18294
- var$3[30] = asrrh_Register__init_($rt_s(576), 30, Long_ZERO);
18295
- var$3[31] = asrrh_Register__init_($rt_s(577), 31, Long_ZERO);
18296
- asrrh_RegisterBlock__init_(var$1, 102, var$2);
18297
- asrrh_FloatingPointRegisterFile_instance = var$1;
18298
- };
18299
- function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0() {
18300
- let a = this;
18301
- jl_Object.call(a);
18302
- a.$_05 = null;
18303
- a.$_12 = 0;
18304
- a.$_2 = null;
18305
- }
18306
- var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run = (var$0) => {
18307
- let var$1, var$2, var$3, var$4, $ptr, $tmp;
18308
- $ptr = 0;
18309
- if ($rt_resuming()) {
18310
- let $thread = $rt_nativeThread();
18311
- $ptr = $thread.pop();
18312
- var$4 = $thread.pop();
18313
- var$3 = $thread.pop();
18314
- var$2 = $thread.pop();
18315
- var$1 = $thread.pop();
18316
- var$0 = $thread.pop();
18317
- }
18318
- main: while (true) {
18319
- switch ($ptr) {
18320
- case 0:
18321
- var$1 = var$0.$_05;
18322
- var$2 = var$0.$_12;
18323
- var$3 = var$0.$_2;
18324
- var$1 = var$1.$main;
18325
- asr_RARS_requireAssembled(var$1);
18326
- var$4 = var$1.$main0;
18327
- $ptr = 1;
18328
- case 1:
18329
- $tmp = asr_RISCVprogram_simulate(var$4, var$2, var$3);
18330
- if ($rt_suspending()) {
18331
- break main;
18332
- }
18333
- var$4 = $tmp;
18334
- var$1.$stopReason = var$4;
18335
- return var$4.$ordinal0;
18336
- default:
18337
- $rt_invalidPointer();
18338
- }
18339
- }
18340
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
18341
- };
18342
- function asr_JsCompilationResult() {
18343
- let a = this;
18344
- jl_Object.call(a);
18345
- a.$report = null;
18346
- a.$errors1 = null;
18347
- }
18348
- var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
18349
- let var$2, var$3, var$4;
18350
- $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
18351
- $errorReport = ju_Collection_stream($errorReport.$messages);
18352
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
18353
- var$2.$_019 = $this;
18354
- $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
18355
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
18356
- $errorReport = $errorReport;
18357
- var$3 = ju_ArrayList__init_();
18358
- var$4 = $errorReport;
18359
- while (true) {
18360
- $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
18361
- $errorReport.$_024 = var$2;
18362
- $errorReport.$_19 = var$3;
18363
- if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
18364
- break;
18365
- }
18366
- $this.$errors1 = var$3;
18367
- };
18368
- var asr_JsCompilationResult__init_ = (var_0) => {
18369
- let var_1 = new asr_JsCompilationResult();
18370
- asr_JsCompilationResult__init_0(var_1, var_0);
18371
- return var_1;
18372
- };
18373
- var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
18374
- let var$2;
18375
- var$1 = ju_Collection_stream(var$1.$errors1);
18376
- var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
18377
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
18378
- };
18379
- var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
18380
- let var$2;
18381
- var$1 = var$1.$errors1;
18382
- var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
18383
- return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
18384
- };
18385
- var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
18386
- let var$2;
18387
- var$1 = ju_Collection_stream(var$1.$errors1);
18388
- var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
18389
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
18390
- };
18391
- var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
18392
- return $rt_ustr(var$1.$report);
18393
- };
18394
- function asr_AssemblyException() {
18395
- jl_Exception.call(this);
18396
- this.$errs = null;
18397
- }
18398
- var asr_AssemblyException__init_0 = ($this, $errs) => {
18399
- jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
18400
- $this.$errs = $errs;
18401
- };
18402
- var asr_AssemblyException__init_ = (var_0) => {
18403
- let var_1 = new asr_AssemblyException();
18404
- asr_AssemblyException__init_0(var_1, var_0);
18405
- return var_1;
18406
- };
18407
- function asr_JsRiscV$simulateWithLimit$lambda$_13_0() {
18408
- let a = this;
18409
- jl_Object.call(a);
18410
- a.$_022 = null;
18411
- a.$_112 = 0;
18412
- }
18413
- var asr_JsRiscV$simulateWithLimit$lambda$_13_0_run = (var$0) => {
18414
- let var$1, var$2, $ptr, $tmp;
18415
- $ptr = 0;
18416
- if ($rt_resuming()) {
18417
- let $thread = $rt_nativeThread();
18418
- $ptr = $thread.pop();
18419
- var$2 = $thread.pop();
18420
- var$1 = $thread.pop();
18421
- var$0 = $thread.pop();
18422
- }
18423
- main: while (true) {
18424
- switch ($ptr) {
18425
- case 0:
18426
- var$1 = var$0.$_022;
18427
- var$2 = var$0.$_112;
18428
- var$1 = var$1.$main;
18429
- $ptr = 1;
18430
- case 1:
18431
- $tmp = asr_RARS_simulate(var$1, var$2);
18432
- if ($rt_suspending()) {
18433
- break main;
18434
- }
18435
- var$1 = $tmp;
18436
- return var$1.$ordinal0;
18437
- default:
18438
- $rt_invalidPointer();
18439
- }
18440
- }
18441
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
18442
- };
18443
- var otjc_JSArrayReader = $rt_classWithoutFields(0);
18444
- var otjc_JSArray = $rt_classWithoutFields();
18445
- var otjc_JSArray_of = ($items) => {
18446
- let var$2, $array, $i, var$5;
18447
- $items = $items.data;
18448
- var$2 = $items.length;
18449
- $array = new Array(var$2);
18450
- $i = 0;
18451
- while ($i < var$2) {
18452
- var$5 = $items[$i];
18453
- $array[$i] = otji_JSWrapper_javaToJs(var$5);
18454
- $i = $i + 1 | 0;
18455
- }
18456
- return $array;
18457
- };
18458
- var asr_JsBackStep = $rt_classWithoutFields();
18459
- var asr_JsBackStep_of = ($backStep) => {
18460
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
18461
- var$2 = $backStep.$action;
18462
- var$3 = var$2 === null ? -1 : var$2.$ordinal0;
18463
- var$4 = $backStep.$pc1;
18464
- var$5 = $backStep.$param1;
18465
- var$6 = $backStep.$param2;
18466
- var$7 = Long_lo(var$6);
18467
- asrs_BackStepper$Action_$callClinit();
18468
- if (var$2 === asrs_BackStepper$Action_PC_RESTORE)
18469
- var$6 = Long_fromInt(var$5);
18470
- a: {
18471
- var$8 = jl_Long_toString(var$6);
18472
- switch ($backStep.$action.$ordinal0) {
18473
- case 0:
18474
- case 2:
18475
- case 3:
18476
- case 4:
18477
- case 6:
18478
- var$6 = Long_fromInt($backStep.$param3Int);
18479
- break a;
18480
- case 1:
18481
- case 5:
18482
- case 7:
18483
- case 8:
18484
- case 9:
18485
- break;
18486
- default:
18487
- var$6 = Long_ZERO;
18488
- break a;
18489
- }
18490
- var$6 = $backStep.$param3Long;
18491
- }
18492
- return asr_JsBackStep_create$js_body$_2(var$3, var$4, var$5, var$7, $rt_ustr(var$8), $rt_ustr(jl_Long_toString(var$6)), !!asrs_BackStepper$BackStep_isPoke($backStep));
18493
- };
18494
- var asr_JsBackStep_create$js_body$_2 = (var$1, var$2, var$3, var$4, var$5, var$6, var$7) => {
18495
- return { action: var$1, pc: var$2, param1: var$3, param2: var$4, oldValue: var$5, newValue: var$6, isPoke: var$7 };
18496
- };
18497
- function asrs_BackStepper() {
18498
- let a = this;
18499
- jl_Object.call(a);
18500
- a.$lastStatementPc = 0;
18501
- a.$lastStatement = null;
18502
- a.$engaged = 0;
18503
- a.$backSteps = null;
18504
- a.$pokeGroup = 0;
18505
- a.$pokeRestores = null;
18506
- }
18507
- var asrs_BackStepper_nextPokeGroup = 0;
18508
- var asrs_BackStepper_$callClinit = () => {
18509
- asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
18510
- asrs_BackStepper__clinit_();
18511
- };
18512
- var asrs_BackStepper_applyRestore = (var$1, var$2, var$3) => {
18513
- let var$4, var$5, var$6, var$7;
18514
- asrs_BackStepper_$callClinit();
18515
- a: {
18516
- switch (var$1.$ordinal0) {
18517
- case 0:
18518
- asr_Globals_$callClinit();
18519
- var$1 = asr_Globals_memory;
18520
- var$4 = Long_lo(var$3);
18521
- var$5 = asrrh_Memory_storeRawWord(var$1, var$2, var$4);
18522
- asrrh_Memory_notifyAnyObservers(var$1, 1, var$2, 4, var$4);
18523
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
18524
- var$6 = asr_Globals_program.$backStepper;
18525
- var$7 = var$6.$backSteps;
18526
- asrs_BackStepper$Action_$callClinit();
18527
- asrs_BackStepper$BackstepStack_push(var$7, asrs_BackStepper$Action_MEMORY_RESTORE_RAW_WORD, asrs_BackStepper_pc(var$6), var$2, Long_fromInt(var$5), var$4, Long_ZERO);
18528
- }
18529
- break a;
18530
- case 1:
18531
- asr_Globals_$callClinit();
18532
- asrrh_Memory_setDoubleWord(asr_Globals_memory, var$2, var$3);
18533
- break a;
18534
- case 2:
18535
- asr_Globals_$callClinit();
18536
- asrrh_Memory_setWord(asr_Globals_memory, var$2, Long_lo(var$3));
18537
- break a;
18538
- case 3:
18539
- asr_Globals_$callClinit();
18540
- asrrh_Memory_setHalf(asr_Globals_memory, var$2, Long_lo(var$3));
18541
- break a;
18542
- case 4:
18543
- asr_Globals_$callClinit();
18544
- asrrh_Memory_setByte(asr_Globals_memory, var$2, Long_lo(var$3));
18545
- break a;
18546
- case 5:
18547
- asrrh_RegisterFile_updateRegister(var$2, var$3);
18548
- break a;
18549
- case 6:
18550
- asrrh_RegisterFile_setProgramCounter(var$2);
18551
- break a;
18552
- case 7:
18553
- asrrh_ControlAndStatusRegisterFile_updateRegister0(var$2, var$3);
18554
- break a;
18555
- case 8:
18556
- asrrh_ControlAndStatusRegisterFile_$callClinit();
18557
- asrrh_ControlAndStatusRegisterFile_settleCounters();
18558
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, var$2), var$3);
18559
- break a;
18560
- case 9:
18561
- asrrh_FloatingPointRegisterFile_updateRegisterLong(var$2, var$3);
18562
- break a;
18563
- case 10:
18564
- break;
18565
- case 11:
18566
- asrrh_ControlAndStatusRegisterFile_$callClinit();
18567
- var$2 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
18568
- if (var$2 > 0)
18569
- asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = var$2 - 1 | 0;
18570
- else {
18571
- var$1 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(494));
18572
- var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(495));
18573
- asrrh_Register_setValueBackdoor(var$1, Long_sub(var$1.$getValueNoNotify(), Long_fromInt(1)));
18574
- asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
18575
- }
18576
- break a;
18577
- case 12:
18578
- asrrh_ControlAndStatusRegisterFile_$callClinit();
18579
- asrrh_ControlAndStatusRegisterFile_settleCounters();
18580
- var$1 = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, var$2);
18581
- if (var$1 !== null)
18582
- var$1.$setValue(var$3);
18583
- break a;
18584
- case 13:
18585
- break a;
18586
- default:
18587
- break a;
18588
- }
18589
- }
18590
- };
18591
- var asrs_BackStepper_sameGroup = ($one, $other) => {
18592
- asrs_BackStepper_$callClinit();
18593
- if (!asrs_BackStepper$BackStep_isPoke($one) && !asrs_BackStepper$BackStep_isPoke($other))
18594
- return $one.$ps !== $other.$ps ? 0 : 1;
18595
- return 0;
18596
- };
18597
- var asrs_BackStepper_pc = ($this) => {
18598
- return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
18599
- };
18600
- var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
18601
- let var$4;
18602
- var$4 = $this.$backSteps;
18603
- asrs_BackStepper$Action_$callClinit();
18604
- asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
18605
- return $value;
18606
- };
18607
- var asrs_BackStepper_addDoNothing = ($this, $pc) => {
18608
- let var$2;
18609
- if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc)) {
18610
- var$2 = $this.$backSteps;
18611
- asrs_BackStepper$Action_$callClinit();
18612
- asrs_BackStepper$BackstepStack_push0(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
18613
- }
18614
- };
18615
- var asrs_BackStepper__clinit_ = () => {
18616
- asrs_BackStepper_nextPokeGroup = -2;
18617
- };
18618
- var asr_JsUndoGroup = $rt_classWithoutFields();
18619
- var asr_JsUndoGroup_create$js_body$_3 = (var$1, var$2, var$3, var$4) => {
18620
- return { kind: var$1, pc: var$2, steps: var$3, writes: var$4 };
18621
- };
18622
- var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
18623
- function asr_JsRiscV$PokeRecord() {
18624
- let a = this;
18625
- jl_Object.call(a);
18626
- a.$group0 = 0;
18627
- a.$writes = null;
18628
- }
18629
- function asr_JsRiscV$PokeJournal() {
18630
- let a = this;
18631
- jl_Object.call(a);
18632
- a.$group1 = 0;
18633
- a.$registers = null;
18634
- a.$registersByName = null;
18635
- a.$memoryOldBytes = null;
18636
- }
18637
- var jl_Double = $rt_classWithoutFields(jl_Number);
18638
- var jl_Double_TYPE = null;
18639
- var jl_Double_$callClinit = () => {
18640
- jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
18641
- jl_Double__clinit_();
18642
- };
18643
- var jl_Double_parseDouble = (var$1) => {
18644
- let var$2, var$3, var$4, var$5, $negative, $c, $mantissa, $exp, $hasOneDigit, $mantissaPos, $negativeExp, $numExp;
18645
- jl_Double_$callClinit();
18646
- if (jl_String_isEmpty(var$1)) {
18647
- var$1 = new jl_NumberFormatException();
18648
- jl_Throwable__init_(var$1);
18649
- $rt_throw(var$1);
18650
- }
18651
- var$2 = 0;
18652
- var$3 = var$1.$nativeString.length;
18653
- while (true) {
18654
- if (jl_String_charAt(var$1, var$2) > 32) {
18655
- while (true) {
18656
- var$4 = var$3 - 1 | 0;
18657
- if (jl_String_charAt(var$1, var$4) > 32)
18658
- break;
18659
- var$3 = var$3 + -1 | 0;
18660
- }
18661
- var$5 = jl_String_charAt(var$1, var$4) != 102 && jl_String_charAt(var$1, var$4) != 70 && jl_String_charAt(var$1, var$4) != 100 && jl_String_charAt(var$1, var$4) != 68 ? var$3 : var$3 + -1 | 0;
18547
+ var$5 = jl_String_charAt($string, var$4) != 102 && jl_String_charAt($string, var$4) != 70 && jl_String_charAt($string, var$4) != 100 && jl_String_charAt($string, var$4) != 68 ? $end : $end + -1 | 0;
18662
18548
  $negative = 0;
18663
- if (jl_String_charAt(var$1, var$2) == 45) {
18664
- var$2 = var$2 + 1 | 0;
18549
+ if (jl_String_charAt($string, $start) == 45) {
18550
+ $start = $start + 1 | 0;
18665
18551
  $negative = 1;
18666
- } else if (jl_String_charAt(var$1, var$2) == 43)
18667
- var$2 = var$2 + 1 | 0;
18668
- if (var$2 == var$5) {
18669
- var$1 = new jl_NumberFormatException();
18670
- jl_Throwable__init_(var$1);
18671
- $rt_throw(var$1);
18552
+ } else if (jl_String_charAt($string, $start) == 43)
18553
+ $start = $start + 1 | 0;
18554
+ if ($start == var$5) {
18555
+ $string = new jl_NumberFormatException();
18556
+ jl_Throwable__init_($string);
18557
+ $rt_throw($string);
18672
18558
  }
18673
18559
  a: {
18674
- $c = jl_String_charAt(var$1, var$2);
18560
+ $c = jl_String_charAt($string, $start);
18675
18561
  $mantissa = Long_ZERO;
18676
18562
  $exp = -1;
18677
18563
  $hasOneDigit = 0;
@@ -18680,14 +18566,14 @@ var jl_Double_parseDouble = (var$1) => {
18680
18566
  $hasOneDigit = 1;
18681
18567
  if ($c >= 48 && $c <= 57) {
18682
18568
  b: {
18683
- while (var$2 < var$5) {
18684
- if (jl_String_charAt(var$1, var$2) != 48)
18569
+ while ($start < var$5) {
18570
+ if (jl_String_charAt($string, $start) != 48)
18685
18571
  break b;
18686
- var$2 = var$2 + 1 | 0;
18572
+ $start = $start + 1 | 0;
18687
18573
  }
18688
18574
  }
18689
- while (var$2 < var$5) {
18690
- var$4 = jl_String_charAt(var$1, var$2);
18575
+ while ($start < var$5) {
18576
+ var$4 = jl_String_charAt($string, $start);
18691
18577
  if (var$4 < 48)
18692
18578
  break a;
18693
18579
  if (var$4 > 57)
@@ -18697,77 +18583,77 @@ var jl_Double_parseDouble = (var$1) => {
18697
18583
  $mantissaPos = jl_Long_divideUnsigned($mantissaPos, Long_fromInt(10));
18698
18584
  }
18699
18585
  $exp = $exp + 1 | 0;
18700
- var$2 = var$2 + 1 | 0;
18586
+ $start = $start + 1 | 0;
18701
18587
  }
18702
18588
  } else {
18703
- if ($c == 73 && (var$3 - var$2 | 0) == 8 && jl_String_regionMatches(var$1, 0, var$2, $rt_s(578), 0, 8))
18589
+ if ($c == 73 && ($end - $start | 0) == 8 && jl_String_regionMatches($string, 0, $start, $rt_s(578), 0, 8))
18704
18590
  return !$negative ? Infinity : -Infinity;
18705
- if ($c == 78 && (var$3 - var$2 | 0) == 3 && jl_String_regionMatches(var$1, 0, var$2, $rt_s(579), 0, 3))
18591
+ if ($c == 78 && ($end - $start | 0) == 3 && jl_String_regionMatches($string, 0, $start, $rt_s(579), 0, 3))
18706
18592
  return NaN;
18707
- var$1 = new jl_NumberFormatException();
18708
- jl_Throwable__init_(var$1);
18709
- $rt_throw(var$1);
18593
+ $string = new jl_NumberFormatException();
18594
+ jl_Throwable__init_($string);
18595
+ $rt_throw($string);
18710
18596
  }
18711
18597
  }
18712
18598
  }
18713
- if (var$2 < var$5 && jl_String_charAt(var$1, var$2) == 46) {
18714
- var$2 = var$2 + 1 | 0;
18599
+ if ($start < var$5 && jl_String_charAt($string, $start) == 46) {
18600
+ $start = $start + 1 | 0;
18715
18601
  c: {
18716
18602
  while (true) {
18717
- if (var$2 >= var$5)
18603
+ if ($start >= var$5)
18718
18604
  break c;
18719
- var$3 = jl_String_charAt(var$1, var$2);
18720
- var$4 = $rt_compare(var$3, 48);
18605
+ $end = jl_String_charAt($string, $start);
18606
+ var$4 = $rt_compare($end, 48);
18721
18607
  if (var$4 < 0)
18722
18608
  break c;
18723
- if (var$3 > 57)
18609
+ if ($end > 57)
18724
18610
  break;
18725
18611
  if (Long_eq($mantissa, Long_ZERO) && !var$4)
18726
18612
  $exp = $exp + -1 | 0;
18727
18613
  else if (Long_gt($mantissaPos, Long_ZERO)) {
18728
- $mantissa = Long_add($mantissa, Long_mul($mantissaPos, Long_fromInt(var$3 - 48 | 0)));
18614
+ $mantissa = Long_add($mantissa, Long_mul($mantissaPos, Long_fromInt($end - 48 | 0)));
18729
18615
  $mantissaPos = jl_Long_divideUnsigned($mantissaPos, Long_fromInt(10));
18730
18616
  }
18731
- var$2 = var$2 + 1 | 0;
18617
+ $start = $start + 1 | 0;
18732
18618
  $hasOneDigit = 1;
18733
18619
  }
18734
18620
  }
18735
18621
  if (!$hasOneDigit) {
18736
- var$1 = new jl_NumberFormatException();
18737
- jl_IllegalArgumentException__init_(var$1);
18738
- $rt_throw(var$1);
18622
+ $string = new jl_NumberFormatException();
18623
+ jl_IllegalArgumentException__init_($string);
18624
+ $rt_throw($string);
18739
18625
  }
18740
18626
  }
18741
- if (var$2 < var$5) {
18742
- var$3 = jl_String_charAt(var$1, var$2);
18743
- if (var$3 != 101 && var$3 != 69)
18627
+ if ($start < var$5) {
18628
+ $end = jl_String_charAt($string, $start);
18629
+ if ($end != 101 && $end != 69)
18744
18630
  $rt_throw(jl_NumberFormatException__init_());
18745
- var$3 = var$2 + 1 | 0;
18631
+ $end = $start + 1 | 0;
18746
18632
  $negativeExp = 0;
18747
- if (var$3 == var$5)
18633
+ if ($end == var$5)
18748
18634
  $rt_throw(jl_NumberFormatException__init_());
18749
- if (jl_String_charAt(var$1, var$3) == 45) {
18750
- var$3 = var$3 + 1 | 0;
18635
+ if (jl_String_charAt($string, $end) == 45) {
18636
+ $end = $end + 1 | 0;
18751
18637
  $negativeExp = 1;
18752
- } else if (jl_String_charAt(var$1, var$3) == 43)
18753
- var$3 = var$3 + 1 | 0;
18638
+ } else if (jl_String_charAt($string, $end) == 43)
18639
+ $end = $end + 1 | 0;
18754
18640
  $numExp = 0;
18755
- var$2 = 0;
18641
+ $start = 0;
18756
18642
  d: {
18757
18643
  while (true) {
18758
- if (var$3 >= var$5)
18644
+ if ($end >= var$5)
18759
18645
  break d;
18760
- $c = jl_String_charAt(var$1, var$3);
18646
+ $c = jl_String_charAt($string, $end);
18761
18647
  if ($c < 48)
18762
18648
  break d;
18763
18649
  if ($c > 57)
18764
18650
  break;
18765
18651
  $numExp = (10 * $numExp | 0) + ($c - 48 | 0) | 0;
18766
- var$2 = 1;
18767
- var$3 = var$3 + 1 | 0;
18652
+ $start = 1;
18653
+ $end = $end + 1 | 0;
18768
18654
  }
18769
18655
  }
18770
- if (!var$2)
18656
+ if (!$start)
18771
18657
  $rt_throw(jl_NumberFormatException__init_());
18772
18658
  if ($negativeExp)
18773
18659
  $numExp = -$numExp | 0;
@@ -18775,13 +18661,13 @@ var jl_Double_parseDouble = (var$1) => {
18775
18661
  }
18776
18662
  return otcit_DoubleSynthesizer_synthesizeDouble($mantissa, $exp, $negative);
18777
18663
  }
18778
- var$2 = var$2 + 1 | 0;
18779
- if (var$2 == var$3)
18664
+ $start = $start + 1 | 0;
18665
+ if ($start == $end)
18780
18666
  break;
18781
18667
  }
18782
- var$1 = new jl_NumberFormatException();
18783
- jl_Throwable__init_(var$1);
18784
- $rt_throw(var$1);
18668
+ $string = new jl_NumberFormatException();
18669
+ jl_Throwable__init_($string);
18670
+ $rt_throw($string);
18785
18671
  };
18786
18672
  var jl_Double_isInfinite = ($v) => {
18787
18673
  jl_Double_$callClinit();
@@ -18805,6 +18691,124 @@ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1_apply = (var$0, var$1
18805
18691
  asr_JsRiscV_$callClinit();
18806
18692
  return $rt_createArray(asr_JsProgramStatement, var$1);
18807
18693
  };
18694
+ var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
18695
+ function asr_JsRiscV$PokeRecord() {
18696
+ let a = this;
18697
+ jl_Object.call(a);
18698
+ a.$group0 = 0;
18699
+ a.$writes = null;
18700
+ }
18701
+ function asr_JsRiscV$PokeJournal() {
18702
+ let a = this;
18703
+ jl_Object.call(a);
18704
+ a.$group1 = 0;
18705
+ a.$registers = null;
18706
+ a.$registersByName = null;
18707
+ a.$memoryOldBytes = null;
18708
+ }
18709
+ function asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0() {
18710
+ let a = this;
18711
+ jl_Object.call(a);
18712
+ a.$_03 = null;
18713
+ a.$_10 = null;
18714
+ }
18715
+ var asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run = (var$0) => {
18716
+ let var$1, var$2, var$3, var$4, $ptr, $tmp;
18717
+ $ptr = 0;
18718
+ if ($rt_resuming()) {
18719
+ let $thread = $rt_nativeThread();
18720
+ $ptr = $thread.pop();
18721
+ var$4 = $thread.pop();
18722
+ var$3 = $thread.pop();
18723
+ var$2 = $thread.pop();
18724
+ var$1 = $thread.pop();
18725
+ var$0 = $thread.pop();
18726
+ }
18727
+ main: while (true) {
18728
+ switch ($ptr) {
18729
+ case 0:
18730
+ var$1 = var$0.$_03;
18731
+ var$2 = var$0.$_10;
18732
+ var$1 = var$1.$main;
18733
+ asr_RARS_requireAssembled(var$1);
18734
+ var$3 = var$1.$main0;
18735
+ var$4 = -1;
18736
+ $ptr = 1;
18737
+ case 1:
18738
+ $tmp = asr_RISCVprogram_simulate(var$3, var$4, var$2);
18739
+ if ($rt_suspending()) {
18740
+ break main;
18741
+ }
18742
+ var$3 = $tmp;
18743
+ var$1.$stopReason = var$3;
18744
+ return var$3.$ordinal0;
18745
+ default:
18746
+ $rt_invalidPointer();
18747
+ }
18748
+ }
18749
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
18750
+ };
18751
+ function asr_JsStackFrame() {
18752
+ let a = this;
18753
+ jl_Object.call(a);
18754
+ a.$pc2 = 0;
18755
+ a.$toAddress1 = 0;
18756
+ a.$sp = 0;
18757
+ a.$fp = 0;
18758
+ a.$registers0 = null;
18759
+ }
18760
+ var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
18761
+ return var$1.$pc2;
18762
+ };
18763
+ var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
18764
+ return var$1.$toAddress1;
18765
+ };
18766
+ var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
18767
+ return otji_JS_wrap0(var$1.$registers0);
18768
+ };
18769
+ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
18770
+ return var$1.$sp;
18771
+ };
18772
+ var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
18773
+ return var$1.$fp;
18774
+ };
18775
+ function asr_JsRiscV$step$lambda$_10_0() {
18776
+ jl_Object.call(this);
18777
+ this.$_014 = null;
18778
+ }
18779
+ var asr_JsRiscV$step$lambda$_10_0_run = (var$0) => {
18780
+ let var$1, var$2, var$3, $ptr, $tmp;
18781
+ $ptr = 0;
18782
+ if ($rt_resuming()) {
18783
+ let $thread = $rt_nativeThread();
18784
+ $ptr = $thread.pop();
18785
+ var$3 = $thread.pop();
18786
+ var$2 = $thread.pop();
18787
+ var$1 = $thread.pop();
18788
+ var$0 = $thread.pop();
18789
+ }
18790
+ main: while (true) {
18791
+ switch ($ptr) {
18792
+ case 0:
18793
+ var$1 = var$0.$_014.$main;
18794
+ asr_RARS_requireAssembled(var$1);
18795
+ var$2 = var$1.$main0;
18796
+ var$3 = 1;
18797
+ $ptr = 1;
18798
+ case 1:
18799
+ $tmp = asr_RISCVprogram_simulate0(var$2, var$3);
18800
+ if ($rt_suspending()) {
18801
+ break main;
18802
+ }
18803
+ var$2 = $tmp;
18804
+ var$1.$stopReason = var$2;
18805
+ return var$2.$ordinal0;
18806
+ default:
18807
+ $rt_invalidPointer();
18808
+ }
18809
+ }
18810
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
18811
+ };
18808
18812
  function asr_JsRiscVTokenizedLine() {
18809
18813
  let a = this;
18810
18814
  jl_Object.call(a);
@@ -19627,86 +19631,6 @@ function jur_CharClass$16() {
19627
19631
  var jur_CharClass$16_contains = ($this, $ch) => {
19628
19632
  return $this.$val$curAlt6 ^ $this.$val$nb.$contains1($ch) && jur_CharClass_contains($this.$val$clazz7, $ch) ? 0 : 1;
19629
19633
  };
19630
- function asrrh_Register() {
19631
- let a = this;
19632
- ju_Observable.call(a);
19633
- a.$name = null;
19634
- a.$number = 0;
19635
- a.$resetValue0 = Long_ZERO;
19636
- a.$value4 = Long_ZERO;
19637
- }
19638
- var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
19639
- ju_Observable__init_($this);
19640
- $this.$name = $n;
19641
- $this.$number = $num;
19642
- $this.$value4 = $val;
19643
- $this.$resetValue0 = $val;
19644
- };
19645
- var asrrh_Register__init_ = (var_0, var_1, var_2) => {
19646
- let var_3 = new asrrh_Register();
19647
- asrrh_Register__init_0(var_3, var_0, var_1, var_2);
19648
- return var_3;
19649
- };
19650
- var asrrh_Register_getName = ($this) => {
19651
- return $this.$name;
19652
- };
19653
- var asrrh_Register_getValue = ($this) => {
19654
- asrrh_Register_notifyAnyObservers($this, 0);
19655
- return $this.$value4;
19656
- };
19657
- var asrrh_Register_getValueNoNotify = ($this) => {
19658
- return $this.$value4;
19659
- };
19660
- var asrrh_Register_getNumber = ($this) => {
19661
- return $this.$number;
19662
- };
19663
- var asrrh_Register_setValue = ($this, $val) => {
19664
- let $old;
19665
- $old = $this.$value4;
19666
- $this.$value4 = $val;
19667
- asrrh_Register_notifyAnyObservers($this, 1);
19668
- return $old;
19669
- };
19670
- var asrrh_Register_setValueBackdoor = ($this, $val) => {
19671
- let $old;
19672
- $old = $this.$value4;
19673
- $this.$value4 = $val;
19674
- return $old;
19675
- };
19676
- var asrrh_Register_resetValue = ($this) => {
19677
- jl_Object_monitorEnterSync($this);
19678
- try {
19679
- $this.$value4 = $this.$resetValue0;
19680
- } finally {
19681
- jl_Object_monitorExitSync($this);
19682
- }
19683
- };
19684
- var asrrh_Register_changeResetValue = ($this, $reset) => {
19685
- jl_Object_monitorEnterSync($this);
19686
- try {
19687
- $this.$resetValue0 = $reset;
19688
- } finally {
19689
- jl_Object_monitorExitSync($this);
19690
- }
19691
- };
19692
- var asrrh_Register_notifyAnyObservers = ($this, $type) => {
19693
- let var$2, var$3, var$4;
19694
- var$2 = $this;
19695
- if (ju_Observable_countObservers(var$2) > 0) {
19696
- ju_Observable_setChanged(var$2);
19697
- var$3 = new asrrh_RegisterAccessNotice();
19698
- var$4 = $this.$name;
19699
- asrrh_AccessNotice__init_(var$3, $type);
19700
- var$3.$registerName = var$4;
19701
- ju_Observable_notifyObservers(var$2, var$3);
19702
- }
19703
- };
19704
- function asr_JsRiscV$PokeRegisterWrite() {
19705
- let a = this;
19706
- jl_Object.call(a);
19707
- a.$register = null;
19708
- a.$oldValue = Long_ZERO;
19709
- }
19710
19634
  function asr_RISCVprogram() {
19711
19635
  let a = this;
19712
19636
  jl_Object.call(a);
@@ -19854,75 +19778,79 @@ var asr_RISCVprogram_createMacroPool = ($this) => {
19854
19778
  var asr_RISCVprogram_getLocalMacroPool = ($this) => {
19855
19779
  return $this.$macroPool;
19856
19780
  };
19857
- var otjc_JSPromise$Executor = $rt_classWithoutFields(0);
19858
- function asr_JsRiscV$run$lambda$_9_0() {
19781
+ function asrrh_Register() {
19859
19782
  let a = this;
19860
- jl_Object.call(a);
19861
- a.$_017 = null;
19862
- a.$_17 = null;
19783
+ ju_Observable.call(a);
19784
+ a.$name = null;
19785
+ a.$number = 0;
19786
+ a.$resetValue0 = Long_ZERO;
19787
+ a.$value4 = Long_ZERO;
19863
19788
  }
19864
- var asr_JsRiscV$run$lambda$_9_0__init_0 = (var$0, var$1, var$2) => {
19865
- var$0.$_017 = var$1;
19866
- var$0.$_17 = var$2;
19789
+ var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
19790
+ ju_Observable__init_($this);
19791
+ $this.$name = $n;
19792
+ $this.$number = $num;
19793
+ $this.$value4 = $val;
19794
+ $this.$resetValue0 = $val;
19867
19795
  };
19868
- var asr_JsRiscV$run$lambda$_9_0__init_ = (var_0, var_1) => {
19869
- let var_2 = new asr_JsRiscV$run$lambda$_9_0();
19870
- asr_JsRiscV$run$lambda$_9_0__init_0(var_2, var_0, var_1);
19871
- return var_2;
19796
+ var asrrh_Register__init_ = (var_0, var_1, var_2) => {
19797
+ let var_3 = new asrrh_Register();
19798
+ asrrh_Register__init_0(var_3, var_0, var_1, var_2);
19799
+ return var_3;
19872
19800
  };
19873
- var asr_JsRiscV$run$lambda$_9_0_onExecute$exported$0 = (var$1, var$2, var$3) => {
19874
- let var$4, var$5;
19875
- var$2 = otji_JS_functionAsObject(var$2, "accept");
19876
- var$3 = otji_JS_functionAsObject(var$3, "accept");
19877
- var$1 = var$1;
19878
- var$4 = var$1.$_017;
19879
- var$1 = var$1.$_17;
19880
- var$5 = new asr_JsRiscV$lambda$run$2$lambda$_75_0();
19881
- var$5.$_011 = var$4;
19882
- var$5.$_16 = var$1;
19883
- var$5.$_21 = var$3;
19884
- var$5.$_30 = var$2;
19885
- asr_JsRiscV_$callClinit();
19886
- ju_ArrayDeque_add(asr_JsRiscV_tasks, var$5);
19887
- if (asr_JsRiscV_workerStarted) {
19888
- var$1 = asr_JsRiscV_unpark;
19889
- if (var$1 !== null) {
19890
- asr_JsRiscV_unpark = null;
19891
- var$1.accept(null);
19892
- }
19893
- } else {
19894
- asr_JsRiscV_workerStarted = 1;
19895
- var$1 = new asr_JsRiscV$submit$lambda$_8_0();
19896
- var$2 = new otjc_JSPromise$runAsync$lambda$_15_0();
19897
- var$2.$_01 = var$1;
19898
- new Promise(otji_JS_function(otji_JSWrapper_unwrap(var$2), "onExecute"));
19801
+ var asrrh_Register_getName = ($this) => {
19802
+ return $this.$name;
19803
+ };
19804
+ var asrrh_Register_getValue = ($this) => {
19805
+ asrrh_Register_notifyAnyObservers($this, 0);
19806
+ return $this.$value4;
19807
+ };
19808
+ var asrrh_Register_getValueNoNotify = ($this) => {
19809
+ return $this.$value4;
19810
+ };
19811
+ var asrrh_Register_getNumber = ($this) => {
19812
+ return $this.$number;
19813
+ };
19814
+ var asrrh_Register_setValue = ($this, $val) => {
19815
+ let $old;
19816
+ $old = $this.$value4;
19817
+ $this.$value4 = $val;
19818
+ asrrh_Register_notifyAnyObservers($this, 1);
19819
+ return $old;
19820
+ };
19821
+ var asrrh_Register_setValueBackdoor = ($this, $val) => {
19822
+ let $old;
19823
+ $old = $this.$value4;
19824
+ $this.$value4 = $val;
19825
+ return $old;
19826
+ };
19827
+ var asrrh_Register_resetValue = ($this) => {
19828
+ jl_Object_monitorEnterSync($this);
19829
+ try {
19830
+ $this.$value4 = $this.$resetValue0;
19831
+ } finally {
19832
+ jl_Object_monitorExitSync($this);
19899
19833
  }
19900
19834
  };
19901
- var otjc_JSPromise = $rt_classWithoutFields();
19902
- var otjc_JSPromise_await$static = ($this) => {
19903
- let $ptr, $tmp;
19904
- $ptr = 0;
19905
- if ($rt_resuming()) {
19906
- let $thread = $rt_nativeThread();
19907
- $ptr = $thread.pop();
19908
- $this = $thread.pop();
19835
+ var asrrh_Register_changeResetValue = ($this, $reset) => {
19836
+ jl_Object_monitorEnterSync($this);
19837
+ try {
19838
+ $this.$resetValue0 = $reset;
19839
+ } finally {
19840
+ jl_Object_monitorExitSync($this);
19909
19841
  }
19910
- main: while (true) {
19911
- switch ($ptr) {
19912
- case 0:
19913
- $ptr = 1;
19914
- case 1:
19915
- $tmp = otjc_JSPromiseHelper_await$_asyncCall_$($this);
19916
- if ($rt_suspending()) {
19917
- break main;
19918
- }
19919
- $this = $tmp;
19920
- return $this;
19921
- default:
19922
- $rt_invalidPointer();
19923
- }
19842
+ };
19843
+ var asrrh_Register_notifyAnyObservers = ($this, $type) => {
19844
+ let var$2, var$3, var$4;
19845
+ var$2 = $this;
19846
+ if (ju_Observable_countObservers(var$2) > 0) {
19847
+ ju_Observable_setChanged(var$2);
19848
+ var$3 = new asrrh_RegisterAccessNotice();
19849
+ var$4 = $this.$name;
19850
+ asrrh_AccessNotice__init_(var$3, $type);
19851
+ var$3.$registerName = var$4;
19852
+ ju_Observable_notifyObservers(var$2, var$3);
19924
19853
  }
19925
- $rt_nativeThread().push($this, $ptr);
19926
19854
  };
19927
19855
  var jl_AutoCloseable = $rt_classWithoutFields(0);
19928
19856
  var jus_BaseStream = $rt_classWithoutFields(0);
@@ -19993,6 +19921,128 @@ function jusi_ArrayStreamImpl() {
19993
19921
  a.$end1 = 0;
19994
19922
  a.$size3 = 0;
19995
19923
  }
19924
+ function asrs_BackStepper$BackstepStack() {
19925
+ let a = this;
19926
+ jl_Object.call(a);
19927
+ a.$capacity = 0;
19928
+ a.$size1 = 0;
19929
+ a.$top = 0;
19930
+ a.$stack = null;
19931
+ a.$this$04 = null;
19932
+ }
19933
+ var asrs_BackStepper$BackstepStack_getStack = ($this) => {
19934
+ let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
19935
+ var$1 = $this.$size1;
19936
+ $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
19937
+ var$3 = $usedStack.data;
19938
+ $i = 0;
19939
+ while ($i < var$1) {
19940
+ var$5 = $this.$stack.data;
19941
+ var$6 = $this.$top - $i | 0;
19942
+ var$7 = $this.$capacity;
19943
+ var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
19944
+ $i = $i + 1 | 0;
19945
+ }
19946
+ return $usedStack;
19947
+ };
19948
+ var asrs_BackStepper$BackstepStack_empty = ($this) => {
19949
+ return $this.$size1 ? 0 : 1;
19950
+ };
19951
+ var asrs_BackStepper$BackstepStack_advance = ($this) => {
19952
+ let $next, var$2;
19953
+ $next = $this.$top + 1 | 0;
19954
+ var$2 = $this.$capacity;
19955
+ if ($next == var$2)
19956
+ $next = 0;
19957
+ $this.$top = $next;
19958
+ $next = $this.$size1;
19959
+ if ($next < var$2)
19960
+ $this.$size1 = $next + 1 | 0;
19961
+ };
19962
+ var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
19963
+ let var$7, $step, var$9, $$je;
19964
+ var$7 = $this.$this$04;
19965
+ if (var$7.$pokeGroup) {
19966
+ var$7 = var$7.$pokeRestores;
19967
+ $step = new asrs_BackStepper$PokeRestore();
19968
+ $step.$action0 = $act;
19969
+ $step.$param10 = $parm1;
19970
+ $step.$param20 = $parm2;
19971
+ ju_ArrayList_add(var$7, $step);
19972
+ return;
19973
+ }
19974
+ asrs_BackStepper$BackstepStack_advance($this);
19975
+ $step = $this.$stack.data[$this.$top];
19976
+ $step.$action = $act;
19977
+ $step.$pc1 = $programCounter;
19978
+ $step.$pokeGroup0 = 0;
19979
+ $step.$pokeRestores0 = null;
19980
+ $act = $step.$this$01;
19981
+ if ($programCounter == $act.$lastStatementPc)
19982
+ var$9 = $act.$lastStatement;
19983
+ else {
19984
+ a: {
19985
+ var$9 = null;
19986
+ if (asrrh_Memory_wordAligned($programCounter)) {
19987
+ if (!asrrh_Memory_inTextSegment($programCounter)) {
19988
+ $act = asr_Globals_getSettings();
19989
+ asr_Settings$Bool_$callClinit();
19990
+ if (!asr_Settings_getBooleanSetting($act, asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED))
19991
+ break a;
19992
+ }
19993
+ try {
19994
+ asr_Globals_$callClinit();
19995
+ var$9 = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
19996
+ break a;
19997
+ } catch ($$e) {
19998
+ $$je = $rt_wrapException($$e);
19999
+ if ($$je instanceof jl_Exception) {
20000
+ var$9 = null;
20001
+ break a;
20002
+ } else {
20003
+ throw $$e;
20004
+ }
20005
+ }
20006
+ }
20007
+ }
20008
+ $act = $step.$this$01;
20009
+ $act.$lastStatementPc = $programCounter;
20010
+ $act.$lastStatement = var$9;
20011
+ }
20012
+ if (var$9 === null)
20013
+ $step.$pc1 = -1;
20014
+ $step.$ps = var$9;
20015
+ $step.$param1 = $parm1;
20016
+ $step.$param2 = $parm2;
20017
+ $step.$param3Int = $wroteInt;
20018
+ $step.$param3Long = $wroteLong;
20019
+ };
20020
+ var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter, $parm1, $parm2) => {
20021
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
20022
+ };
20023
+ var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter) => {
20024
+ asrs_BackStepper$BackstepStack_push1($this, $act, $programCounter, 0, Long_ZERO);
20025
+ };
20026
+ var asrs_BackStepper$BackstepStack_peek = ($this) => {
20027
+ return $this.$stack.data[$this.$top];
20028
+ };
20029
+ function asrs_BackStepper$BackStep() {
20030
+ let a = this;
20031
+ jl_Object.call(a);
20032
+ a.$action = null;
20033
+ a.$pc1 = 0;
20034
+ a.$ps = null;
20035
+ a.$param1 = 0;
20036
+ a.$param2 = Long_ZERO;
20037
+ a.$param3Int = 0;
20038
+ a.$param3Long = Long_ZERO;
20039
+ a.$pokeGroup0 = 0;
20040
+ a.$pokeRestores0 = null;
20041
+ a.$this$01 = null;
20042
+ }
20043
+ var asrs_BackStepper$BackStep_isPoke = ($this) => {
20044
+ return !$this.$pokeGroup0 ? 0 : 1;
20045
+ };
19996
20046
  function jl_Long() {
19997
20047
  jl_Number.call(this);
19998
20048
  this.$value2 = Long_ZERO;
@@ -20272,179 +20322,6 @@ var jl_Long_compareTo = ($this, var$1) => {
20272
20322
  var jl_Long__clinit_ = () => {
20273
20323
  jl_Long_TYPE = $rt_cls($rt_longcls);
20274
20324
  };
20275
- function asrrh_AddressErrorException() {
20276
- let a = this;
20277
- jl_Exception.call(a);
20278
- a.$address1 = 0;
20279
- a.$type0 = 0;
20280
- }
20281
- var asrrh_AddressErrorException__init_0 = ($this, $message, $exceptType, $addr) => {
20282
- let var$4, var$5;
20283
- var$4 = asru_Binary_intToHexString($addr);
20284
- var$5 = new jl_StringBuilder();
20285
- jl_AbstractStringBuilder__init_(var$5);
20286
- jl_StringBuilder_append(jl_StringBuilder_append(var$5, $message), var$4);
20287
- jl_Throwable__init_0($this, jl_AbstractStringBuilder_toString(var$5));
20288
- $this.$address1 = $addr;
20289
- $this.$type0 = $exceptType;
20290
- };
20291
- var asrrh_AddressErrorException__init_ = (var_0, var_1, var_2) => {
20292
- let var_3 = new asrrh_AddressErrorException();
20293
- asrrh_AddressErrorException__init_0(var_3, var_0, var_1, var_2);
20294
- return var_3;
20295
- };
20296
- var asrrh_AddressErrorException_getAddress = ($this) => {
20297
- return $this.$address1;
20298
- };
20299
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
20300
- jl_Object.call(this);
20301
- this.$_019 = null;
20302
- }
20303
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
20304
- let var$2, var$3, var$4;
20305
- var$1 = var$1;
20306
- var$2 = var$0.$_019;
20307
- var$3 = new asr_JsCompilationResult$JsCompilationError();
20308
- var$3.$this$017 = var$2;
20309
- var$3.$isWarning0 = var$1.$isWarning;
20310
- var$3.$message2 = var$1.$message0;
20311
- var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
20312
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
20313
- var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
20314
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
20315
- var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
20316
- var$3.$sourcePath3 = var$1.$sourcePath0;
20317
- var$3.$sourceLine6 = var$1.$sourceLine0;
20318
- var$3.$sourceColumn0 = var$1.$sourceColumn;
20319
- return var$3;
20320
- };
20321
- var juf_Supplier = $rt_classWithoutFields(0);
20322
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
20323
- var juf_BiConsumer = $rt_classWithoutFields(0);
20324
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
20325
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
20326
- function asrs_BackStepper$BackstepStack() {
20327
- let a = this;
20328
- jl_Object.call(a);
20329
- a.$capacity = 0;
20330
- a.$size1 = 0;
20331
- a.$top = 0;
20332
- a.$stack = null;
20333
- a.$this$04 = null;
20334
- }
20335
- var asrs_BackStepper$BackstepStack_getStack = ($this) => {
20336
- let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
20337
- var$1 = $this.$size1;
20338
- $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
20339
- var$3 = $usedStack.data;
20340
- $i = 0;
20341
- while ($i < var$1) {
20342
- var$5 = $this.$stack.data;
20343
- var$6 = $this.$top - $i | 0;
20344
- var$7 = $this.$capacity;
20345
- var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
20346
- $i = $i + 1 | 0;
20347
- }
20348
- return $usedStack;
20349
- };
20350
- var asrs_BackStepper$BackstepStack_empty = ($this) => {
20351
- return $this.$size1 ? 0 : 1;
20352
- };
20353
- var asrs_BackStepper$BackstepStack_advance = ($this) => {
20354
- let $next, var$2;
20355
- $next = $this.$top + 1 | 0;
20356
- var$2 = $this.$capacity;
20357
- if ($next == var$2)
20358
- $next = 0;
20359
- $this.$top = $next;
20360
- $next = $this.$size1;
20361
- if ($next < var$2)
20362
- $this.$size1 = $next + 1 | 0;
20363
- };
20364
- var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
20365
- let var$7, $step, var$9, $$je;
20366
- var$7 = $this.$this$04;
20367
- if (var$7.$pokeGroup) {
20368
- var$7 = var$7.$pokeRestores;
20369
- $step = new asrs_BackStepper$PokeRestore();
20370
- $step.$action0 = $act;
20371
- $step.$param10 = $parm1;
20372
- $step.$param20 = $parm2;
20373
- ju_ArrayList_add(var$7, $step);
20374
- return;
20375
- }
20376
- asrs_BackStepper$BackstepStack_advance($this);
20377
- $step = $this.$stack.data[$this.$top];
20378
- $step.$action = $act;
20379
- $step.$pc1 = $programCounter;
20380
- $step.$pokeGroup0 = 0;
20381
- $step.$pokeRestores0 = null;
20382
- $act = $step.$this$01;
20383
- if ($programCounter == $act.$lastStatementPc)
20384
- var$9 = $act.$lastStatement;
20385
- else {
20386
- a: {
20387
- var$9 = null;
20388
- if (asrrh_Memory_wordAligned($programCounter)) {
20389
- if (!asrrh_Memory_inTextSegment($programCounter)) {
20390
- $act = asr_Globals_getSettings();
20391
- asr_Settings$Bool_$callClinit();
20392
- if (!asr_Settings_getBooleanSetting($act, asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED))
20393
- break a;
20394
- }
20395
- try {
20396
- asr_Globals_$callClinit();
20397
- var$9 = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
20398
- break a;
20399
- } catch ($$e) {
20400
- $$je = $rt_wrapException($$e);
20401
- if ($$je instanceof jl_Exception) {
20402
- var$9 = null;
20403
- break a;
20404
- } else {
20405
- throw $$e;
20406
- }
20407
- }
20408
- }
20409
- }
20410
- $act = $step.$this$01;
20411
- $act.$lastStatementPc = $programCounter;
20412
- $act.$lastStatement = var$9;
20413
- }
20414
- if (var$9 === null)
20415
- $step.$pc1 = -1;
20416
- $step.$ps = var$9;
20417
- $step.$param1 = $parm1;
20418
- $step.$param2 = $parm2;
20419
- $step.$param3Int = $wroteInt;
20420
- $step.$param3Long = $wroteLong;
20421
- };
20422
- var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter, $parm1, $parm2) => {
20423
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
20424
- };
20425
- var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter) => {
20426
- asrs_BackStepper$BackstepStack_push1($this, $act, $programCounter, 0, Long_ZERO);
20427
- };
20428
- var asrs_BackStepper$BackstepStack_peek = ($this) => {
20429
- return $this.$stack.data[$this.$top];
20430
- };
20431
- function asrs_BackStepper$BackStep() {
20432
- let a = this;
20433
- jl_Object.call(a);
20434
- a.$action = null;
20435
- a.$pc1 = 0;
20436
- a.$ps = null;
20437
- a.$param1 = 0;
20438
- a.$param2 = Long_ZERO;
20439
- a.$param3Int = 0;
20440
- a.$param3Long = Long_ZERO;
20441
- a.$pokeGroup0 = 0;
20442
- a.$pokeRestores0 = null;
20443
- a.$this$01 = null;
20444
- }
20445
- var asrs_BackStepper$BackStep_isPoke = ($this) => {
20446
- return !$this.$pokeGroup0 ? 0 : 1;
20447
- };
20448
20325
  var otjc_JSObjects = $rt_classWithoutFields();
20449
20326
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
20450
20327
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -20481,6 +20358,109 @@ var otji_JSWrapper$Helper__clinit_ = () => {
20481
20358
  otji_JSWrapper$Helper_numberFinalizationRegistry = var$1;
20482
20359
  };
20483
20360
  var otjc_JSUndefined = $rt_classWithoutFields();
20361
+ var otjc_JSPromise$Executor = $rt_classWithoutFields(0);
20362
+ function asr_JsRiscV$run$lambda$_9_0() {
20363
+ let a = this;
20364
+ jl_Object.call(a);
20365
+ a.$_017 = null;
20366
+ a.$_17 = null;
20367
+ }
20368
+ var asr_JsRiscV$run$lambda$_9_0__init_0 = (var$0, var$1, var$2) => {
20369
+ var$0.$_017 = var$1;
20370
+ var$0.$_17 = var$2;
20371
+ };
20372
+ var asr_JsRiscV$run$lambda$_9_0__init_ = (var_0, var_1) => {
20373
+ let var_2 = new asr_JsRiscV$run$lambda$_9_0();
20374
+ asr_JsRiscV$run$lambda$_9_0__init_0(var_2, var_0, var_1);
20375
+ return var_2;
20376
+ };
20377
+ var asr_JsRiscV$run$lambda$_9_0_onExecute$exported$0 = (var$1, var$2, var$3) => {
20378
+ let var$4, var$5;
20379
+ var$2 = otji_JS_functionAsObject(var$2, "accept");
20380
+ var$3 = otji_JS_functionAsObject(var$3, "accept");
20381
+ var$1 = var$1;
20382
+ var$4 = var$1.$_017;
20383
+ var$1 = var$1.$_17;
20384
+ var$5 = new asr_JsRiscV$lambda$run$2$lambda$_75_0();
20385
+ var$5.$_011 = var$4;
20386
+ var$5.$_16 = var$1;
20387
+ var$5.$_21 = var$3;
20388
+ var$5.$_30 = var$2;
20389
+ asr_JsRiscV_$callClinit();
20390
+ ju_ArrayDeque_add(asr_JsRiscV_tasks, var$5);
20391
+ if (asr_JsRiscV_workerStarted) {
20392
+ var$1 = asr_JsRiscV_unpark;
20393
+ if (var$1 !== null) {
20394
+ asr_JsRiscV_unpark = null;
20395
+ var$1.accept(null);
20396
+ }
20397
+ } else {
20398
+ asr_JsRiscV_workerStarted = 1;
20399
+ var$1 = new asr_JsRiscV$submit$lambda$_8_0();
20400
+ var$2 = new otjc_JSPromise$runAsync$lambda$_15_0();
20401
+ var$2.$_01 = var$1;
20402
+ new Promise(otji_JS_function(otji_JSWrapper_unwrap(var$2), "onExecute"));
20403
+ }
20404
+ };
20405
+ var otjc_JSPromise = $rt_classWithoutFields();
20406
+ var otjc_JSPromise_await$static = ($this) => {
20407
+ let $ptr, $tmp;
20408
+ $ptr = 0;
20409
+ if ($rt_resuming()) {
20410
+ let $thread = $rt_nativeThread();
20411
+ $ptr = $thread.pop();
20412
+ $this = $thread.pop();
20413
+ }
20414
+ main: while (true) {
20415
+ switch ($ptr) {
20416
+ case 0:
20417
+ $ptr = 1;
20418
+ case 1:
20419
+ $tmp = otjc_JSPromiseHelper_await$_asyncCall_$($this);
20420
+ if ($rt_suspending()) {
20421
+ break main;
20422
+ }
20423
+ $this = $tmp;
20424
+ return $this;
20425
+ default:
20426
+ $rt_invalidPointer();
20427
+ }
20428
+ }
20429
+ $rt_nativeThread().push($this, $ptr);
20430
+ };
20431
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
20432
+ jl_Object.call(this);
20433
+ this.$_019 = null;
20434
+ }
20435
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
20436
+ let var$2, var$3, var$4;
20437
+ var$1 = var$1;
20438
+ var$2 = var$0.$_019;
20439
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
20440
+ var$3.$this$017 = var$2;
20441
+ var$3.$isWarning0 = var$1.$isWarning;
20442
+ var$3.$message2 = var$1.$message0;
20443
+ var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
20444
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
20445
+ var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
20446
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
20447
+ var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
20448
+ var$3.$sourcePath3 = var$1.$sourcePath0;
20449
+ var$3.$sourceLine6 = var$1.$sourceLine0;
20450
+ var$3.$sourceColumn0 = var$1.$sourceColumn;
20451
+ return var$3;
20452
+ };
20453
+ var juf_Supplier = $rt_classWithoutFields(0);
20454
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
20455
+ var juf_BiConsumer = $rt_classWithoutFields(0);
20456
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
20457
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
20458
+ function asr_JsRiscV$PokeRegisterWrite() {
20459
+ let a = this;
20460
+ jl_Object.call(a);
20461
+ a.$register = null;
20462
+ a.$oldValue = Long_ZERO;
20463
+ }
20484
20464
  var asr_JsPokeWrite = $rt_classWithoutFields();
20485
20465
  var asr_JsPokeWrite_toNumberArray = ($values) => {
20486
20466
  let var$2, $array, $i, var$5;
@@ -20501,6 +20481,30 @@ var asr_JsPokeWrite_createRegister$js_body$_4 = (var$1, var$2, var$3) => {
20501
20481
  var asr_JsPokeWrite_createMemory$js_body$_5 = (var$1, var$2, var$3) => {
20502
20482
  return { type: "memory", address: var$1, old: var$2, new: var$3 };
20503
20483
  };
20484
+ function asrrh_AddressErrorException() {
20485
+ let a = this;
20486
+ jl_Exception.call(a);
20487
+ a.$address1 = 0;
20488
+ a.$type0 = 0;
20489
+ }
20490
+ var asrrh_AddressErrorException__init_0 = ($this, var$1, var$2, var$3) => {
20491
+ let var$4, var$5;
20492
+ var$4 = asru_Binary_intToHexString(var$3);
20493
+ var$5 = new jl_StringBuilder();
20494
+ jl_AbstractStringBuilder__init_(var$5);
20495
+ jl_StringBuilder_append(jl_StringBuilder_append(var$5, var$1), var$4);
20496
+ jl_Throwable__init_0($this, jl_AbstractStringBuilder_toString(var$5));
20497
+ $this.$address1 = var$3;
20498
+ $this.$type0 = var$2;
20499
+ };
20500
+ var asrrh_AddressErrorException__init_ = (var_0, var_1, var_2) => {
20501
+ let var_3 = new asrrh_AddressErrorException();
20502
+ asrrh_AddressErrorException__init_0(var_3, var_0, var_1, var_2);
20503
+ return var_3;
20504
+ };
20505
+ var asrrh_AddressErrorException_getAddress = ($this) => {
20506
+ return $this.$address1;
20507
+ };
20504
20508
  var asra_TokenTypes = $rt_classWithoutFields(jl_Enum);
20505
20509
  var asra_TokenTypes_COMMENT = null;
20506
20510
  var asra_TokenTypes_DIRECTIVE = null;
@@ -25523,15 +25527,6 @@ var asrrh_RegisterBlock_resetRegisters = ($this) => {
25523
25527
  var$3 = var$3 + 1 | 0;
25524
25528
  }
25525
25529
  };
25526
- function asrrh_StackFrame() {
25527
- let a = this;
25528
- jl_Object.call(a);
25529
- a.$pc3 = 0;
25530
- a.$toAddress0 = 0;
25531
- a.$sp0 = 0;
25532
- a.$fp0 = 0;
25533
- a.$registers1 = null;
25534
- }
25535
25530
  function asr_ErrorList() {
25536
25531
  let a = this;
25537
25532
  jl_Object.call(a);
@@ -25617,6 +25612,15 @@ var asr_ErrorList_generateReport = ($this, $isWarning) => {
25617
25612
  }
25618
25613
  return jl_AbstractStringBuilder_toString($report);
25619
25614
  };
25615
+ function asrrh_StackFrame() {
25616
+ let a = this;
25617
+ jl_Object.call(a);
25618
+ a.$pc3 = 0;
25619
+ a.$toAddress0 = 0;
25620
+ a.$sp0 = 0;
25621
+ a.$fp0 = 0;
25622
+ a.$registers1 = null;
25623
+ }
25620
25624
  function asra_Token() {
25621
25625
  let a = this;
25622
25626
  jl_Object.call(a);
@@ -26340,7 +26344,7 @@ var asrrs_SyscallMessageDialogFloat_simulate = ($this, $statement) => {
26340
26344
  $message = asrrs_NullString_get($statement);
26341
26345
  var$3 = $this.$io7;
26342
26346
  asrrh_FloatingPointRegisterFile_$callClinit();
26343
- $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(557))));
26347
+ $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(554))));
26344
26348
  var$4 = new jl_StringBuilder();
26345
26349
  jl_AbstractStringBuilder__init_(var$4);
26346
26350
  jl_StringBuilder_append(jl_StringBuilder_append(var$4, $message), $statement);
@@ -26697,7 +26701,7 @@ var asrrs_SyscallPrintFloat_simulate = ($this, $statement) => {
26697
26701
  main: while (true) {
26698
26702
  switch ($ptr) {
26699
26703
  case 0:
26700
- $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(556))));
26704
+ $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(553))));
26701
26705
  $ptr = 1;
26702
26706
  case 1:
26703
26707
  asru_SystemIO_printString($statement);
@@ -28282,6 +28286,40 @@ var jur_BackReferencedSingleSet_findBack = ($this, $stringIndex, $startSearch, $
28282
28286
  var jur_BackReferencedSingleSet_processBackRefReplacement = ($this) => {
28283
28287
  return null;
28284
28288
  };
28289
+ var jus_IntStream = $rt_classWithoutFields(0);
28290
+ var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
28291
+ function jusi_MappingToIntStreamImpl() {
28292
+ let a = this;
28293
+ jusi_SimpleIntStreamImpl.call(a);
28294
+ a.$source0 = null;
28295
+ a.$mapper0 = null;
28296
+ }
28297
+ var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
28298
+ let var$2, var$3, var$4, var$5, var$6;
28299
+ var$2 = $this.$source0;
28300
+ var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
28301
+ var$3.$_025 = $this;
28302
+ var$3.$_110 = $consumer;
28303
+ $consumer = var$2;
28304
+ a: {
28305
+ while (true) {
28306
+ var$4 = $consumer.$index1;
28307
+ if (var$4 >= $consumer.$end1)
28308
+ break a;
28309
+ var$5 = $consumer.$array8.data;
28310
+ $consumer.$index1 = var$4 + 1 | 0;
28311
+ var$2 = var$5[var$4];
28312
+ var$6 = var$3.$_110;
28313
+ var$2 = var$2;
28314
+ asr_JsRiscV_$callClinit();
28315
+ if (var$6.$test0(Long_lo(var$2.$getValue())))
28316
+ continue;
28317
+ else
28318
+ break;
28319
+ }
28320
+ }
28321
+ return $consumer.$index1 >= $consumer.$end1 ? 0 : 1;
28322
+ };
28285
28323
  var jm_Conversion = $rt_classWithoutFields();
28286
28324
  var jm_Conversion_digitFitInInt = null;
28287
28325
  var jm_Conversion_bigRadices = null;
@@ -28477,40 +28515,6 @@ var jm_Conversion__clinit_ = () => {
28477
28515
  jm_Conversion_digitFitInInt = $rt_createIntArrayFromData([-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
28478
28516
  jm_Conversion_bigRadices = $rt_createIntArrayFromData([-2147483648, 1162261467, 1073741824, 1220703125, 362797056, 1977326743, 1073741824, 387420489, 1e9, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, 1073741824, 1291467969, 1544804416, 1838265625, 60466176]);
28479
28517
  };
28480
- var jus_IntStream = $rt_classWithoutFields(0);
28481
- var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
28482
- function jusi_MappingToIntStreamImpl() {
28483
- let a = this;
28484
- jusi_SimpleIntStreamImpl.call(a);
28485
- a.$source0 = null;
28486
- a.$mapper0 = null;
28487
- }
28488
- var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
28489
- let var$2, var$3, var$4, var$5, var$6;
28490
- var$2 = $this.$source0;
28491
- var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
28492
- var$3.$_025 = $this;
28493
- var$3.$_110 = $consumer;
28494
- $consumer = var$2;
28495
- a: {
28496
- while (true) {
28497
- var$4 = $consumer.$index1;
28498
- if (var$4 >= $consumer.$end1)
28499
- break a;
28500
- var$5 = $consumer.$array8.data;
28501
- $consumer.$index1 = var$4 + 1 | 0;
28502
- var$2 = var$5[var$4];
28503
- var$6 = var$3.$_110;
28504
- var$2 = var$2;
28505
- asr_JsRiscV_$callClinit();
28506
- if (var$6.$test0(Long_lo(var$2.$getValue())))
28507
- continue;
28508
- else
28509
- break;
28510
- }
28511
- }
28512
- return $consumer.$index1 >= $consumer.$end1 ? 0 : 1;
28513
- };
28514
28518
  function ju_AbstractList$1() {
28515
28519
  let a = this;
28516
28520
  jl_Object.call(a);
@@ -28835,6 +28839,13 @@ var asrs_Simulator$Reason__clinit_ = () => {
28835
28839
  var$3[6] = var$1;
28836
28840
  asrs_Simulator$Reason_$VALUES = var$2;
28837
28841
  };
28842
+ var juf_Predicate = $rt_classWithoutFields(0);
28843
+ function asr_RARS$getStatementsAtSourceLocation$lambda$_6_0() {
28844
+ let a = this;
28845
+ jl_Object.call(a);
28846
+ a.$_08 = null;
28847
+ a.$_14 = 0;
28848
+ }
28838
28849
  var asrrh_Stack = $rt_classWithoutFields();
28839
28850
  var asrrh_Stack_callStack = null;
28840
28851
  var asrrh_Stack_$callClinit = () => {
@@ -28848,13 +28859,6 @@ var asrrh_Stack_getCallStack = () => {
28848
28859
  var asrrh_Stack__clinit_ = () => {
28849
28860
  asrrh_Stack_callStack = ju_ArrayList__init_();
28850
28861
  };
28851
- var juf_Predicate = $rt_classWithoutFields(0);
28852
- function asr_RARS$getStatementsAtSourceLocation$lambda$_6_0() {
28853
- let a = this;
28854
- jl_Object.call(a);
28855
- a.$_08 = null;
28856
- a.$_14 = 0;
28857
- }
28858
28862
  var asrrh_InterruptController = $rt_classWithoutFields();
28859
28863
  var asrrh_InterruptController_lock = null;
28860
28864
  var asrrh_InterruptController_externalPending0 = 0;
@@ -35702,6 +35706,13 @@ var otcit_DoubleAnalyzer$Result__init_0 = () => {
35702
35706
  otcit_DoubleAnalyzer$Result__init_(var_0);
35703
35707
  return var_0;
35704
35708
  };
35709
+ function asrs_BackStepper$PokeRestore() {
35710
+ let a = this;
35711
+ jl_Object.call(a);
35712
+ a.$action0 = null;
35713
+ a.$param10 = 0;
35714
+ a.$param20 = Long_ZERO;
35715
+ }
35705
35716
  var asrs_BackStepper$Action = $rt_classWithoutFields(jl_Enum);
35706
35717
  var asrs_BackStepper$Action_MEMORY_RESTORE_RAW_WORD = null;
35707
35718
  var asrs_BackStepper$Action_MEMORY_RESTORE_DOUBLE_WORD = null;
@@ -35766,13 +35777,6 @@ var asrs_BackStepper$Action__clinit_ = () => {
35766
35777
  var$3[13] = var$1;
35767
35778
  asrs_BackStepper$Action_$VALUES = var$2;
35768
35779
  };
35769
- function asrs_BackStepper$PokeRestore() {
35770
- let a = this;
35771
- jl_Object.call(a);
35772
- a.$action0 = null;
35773
- a.$param10 = 0;
35774
- a.$param20 = Long_ZERO;
35775
- }
35776
35780
  var jusi_SimpleStreamImpl$toArray$lambda$_20_0 = $rt_classWithoutFields();
35777
35781
  var jusi_SimpleStreamImpl$toArray$lambda$_20_0_apply = (var$0, var$1) => {
35778
35782
  return $rt_createArray(jl_Object, var$1);
@@ -37737,16 +37741,16 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
37737
37741
  return 0;
37738
37742
  };
37739
37743
  var asrs_Simulator$SimThread_run = ($this) => {
37740
- let $timeRegister, $uipRegister, $uieRegister, $ustatusRegister, $timeSampleCountdown, $backStepping, $backStepper, var$8, $steps, $ebreak, $waiting, var$12, $uip, $uie, $IE, $pendingExternal, $pendingTimer, $pendingTrap, var$19, var$20, var$21, $e, $tmp_0, $instruction, $se, $$je, $ptr, $tmp;
37744
+ let $timeRegister, $uipRegister, $uieRegister, $ustatusRegister, $timeSampleCountdown, $backStepping, $backStepper, var$8, $steps, $ebreak, $waiting, var$12, $uip, $uie, $IE, $pendingExternal, $pendingTimer, $pendingTrap, var$19, var$20, $se, $e, $tmp_0, $instruction, var$25, $$je, $ptr, $tmp;
37741
37745
  $ptr = 0;
37742
37746
  if ($rt_resuming()) {
37743
37747
  let $thread = $rt_nativeThread();
37744
37748
  $ptr = $thread.pop();
37745
- $se = $thread.pop();
37749
+ var$25 = $thread.pop();
37746
37750
  $instruction = $thread.pop();
37747
37751
  $tmp_0 = $thread.pop();
37748
37752
  $e = $thread.pop();
37749
- var$21 = $thread.pop();
37753
+ $se = $thread.pop();
37750
37754
  var$20 = $thread.pop();
37751
37755
  var$19 = $thread.pop();
37752
37756
  $pendingTrap = $thread.pop();
@@ -37832,12 +37836,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
37832
37836
  return;
37833
37837
  }
37834
37838
  }
37835
- $IE = asrrh_RegisterFile_getProgramCounter();
37836
- $this.$pc0 = $IE;
37837
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
37839
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
37840
+ asrrh_RegisterFile_incrementPC();
37838
37841
  d: {
37839
37842
  try {
37840
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
37843
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
37841
37844
  break d;
37842
37845
  } catch ($$e) {
37843
37846
  $$je = $rt_wrapException($$e);
@@ -37857,7 +37860,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
37857
37860
  }
37858
37861
  continue c;
37859
37862
  }
37860
- if (var$21 === null) {
37863
+ if ($se === null) {
37861
37864
  asrs_Simulator$Reason_$callClinit();
37862
37865
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
37863
37866
  return;
@@ -37868,15 +37871,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
37868
37871
  try {
37869
37872
  h: {
37870
37873
  try {
37871
- $instruction = asr_ProgramStatement_getInstruction(var$21);
37874
+ $instruction = asr_ProgramStatement_getInstruction($se);
37872
37875
  if ($instruction !== null)
37873
37876
  break h;
37874
- $instruction = new asr_SimulationException();
37875
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
37876
- $e = jl_StringBuilder__init_();
37877
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
37878
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
37879
- $rt_throw($instruction);
37877
+ $e = new asr_SimulationException();
37878
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
37879
+ var$25 = jl_StringBuilder__init_();
37880
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
37881
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
37882
+ $rt_throw($e);
37880
37883
  } catch ($$e) {
37881
37884
  $$je = $rt_wrapException($$e);
37882
37885
  if ($$je instanceof asr_BreakpointException) {
@@ -37936,7 +37939,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
37936
37939
  $timeSampleCountdown = $timeSampleCountdown + -1 | 0;
37937
37940
  if ($timeSampleCountdown <= 0) {
37938
37941
  $timeSampleCountdown = 64;
37939
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis());
37942
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis(), $this.$pc0);
37940
37943
  }
37941
37944
  if ($ebreak)
37942
37945
  break b;
@@ -37957,13 +37960,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
37957
37960
  asrs_Simulator$SimThread_stopExecution($this, 0, asrs_Simulator$Reason_BREAKPOINT);
37958
37961
  return;
37959
37962
  }
37960
- if ($e.$message === null) {
37961
- asrs_Simulator$Reason_$callClinit();
37962
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
37963
- } else {
37963
+ if ($e.$message !== null) {
37964
37964
  asrs_Simulator$Reason_$callClinit();
37965
37965
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
37966
37966
  $this.$pe = $e;
37967
+ } else {
37968
+ asrs_Simulator$Reason_$callClinit();
37969
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
37970
+ if ($backStepping)
37971
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
37967
37972
  }
37968
37973
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
37969
37974
  return;
@@ -37976,7 +37981,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
37976
37981
  m: {
37977
37982
  n: {
37978
37983
  try {
37979
- $instruction.$simulate2(var$21);
37984
+ $instruction.$simulate2($se);
37980
37985
  if ($rt_suspending()) {
37981
37986
  break main;
37982
37987
  }
@@ -38001,14 +38006,14 @@ var asrs_Simulator$SimThread_run = ($this) => {
38001
38006
  }
38002
38007
  }
38003
38008
  }
38004
- $pendingTrap = $this.$pc0;
38005
- $pendingTrap = asrrh_InterruptController_registerSynchronousTrap($se, $pendingTrap);
38006
- if (!$pendingTrap) {
38009
+ var$20 = $this.$pc0;
38010
+ var$20 = asrrh_InterruptController_registerSynchronousTrap($se, var$20);
38011
+ if (!var$20) {
38007
38012
  $this.$pe = $se;
38008
- $pendingTrap = 1;
38013
+ var$20 = 1;
38009
38014
  asrs_Simulator$Reason_$callClinit();
38010
38015
  $instruction = asrs_Simulator$Reason_EXCEPTION;
38011
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38016
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38012
38017
  return;
38013
38018
  }
38014
38019
  break j;
@@ -38016,48 +38021,49 @@ var asrs_Simulator$SimThread_run = ($this) => {
38016
38021
  break k;
38017
38022
  }
38018
38023
  if ($backStepping) {
38019
- $pendingTrap = $this.$pc0;
38020
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38024
+ var$20 = $this.$pc0;
38025
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38021
38026
  }
38022
38027
  $ebreak = 1;
38023
38028
  break k;
38024
38029
  }
38025
38030
  if ($backStepping) {
38026
- $pendingTrap = $this.$pc0;
38027
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38031
+ var$20 = $this.$pc0;
38032
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38028
38033
  }
38029
38034
  $waiting = 1;
38030
38035
  }
38031
- $pendingTrap = $this.$pc0;
38032
- asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, $pendingTrap);
38033
- $pendingTrap = -1;
38034
- $timeSampleCountdown = $timeSampleCountdown + $pendingTrap | 0;
38036
+ var$20 = $this.$pc0;
38037
+ asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, var$20);
38038
+ var$20 = -1;
38039
+ $timeSampleCountdown = $timeSampleCountdown + var$20 | 0;
38035
38040
  if ($timeSampleCountdown <= 0) {
38036
38041
  $timeSampleCountdown = 64;
38037
38042
  var$19 = jl_System_currentTimeMillis();
38038
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19);
38043
+ var$20 = $this.$pc0;
38044
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19, var$20);
38039
38045
  }
38040
38046
  o: {
38041
38047
  if (!$ebreak) {
38042
38048
  var$8 = $this.$breakPoints;
38043
38049
  if (var$8 === null)
38044
38050
  break o;
38045
- $pendingTrap = asrrh_RegisterFile_getProgramCounter();
38046
- $pendingTrap = ju_Arrays_binarySearch(var$8, $pendingTrap);
38047
- if ($pendingTrap < 0)
38051
+ var$20 = asrrh_RegisterFile_getProgramCounter();
38052
+ var$20 = ju_Arrays_binarySearch(var$8, var$20);
38053
+ if (var$20 < 0)
38048
38054
  break o;
38049
38055
  }
38050
- $pendingTrap = 0;
38056
+ var$20 = 0;
38051
38057
  asrs_Simulator$Reason_$callClinit();
38052
38058
  $instruction = asrs_Simulator$Reason_BREAKPOINT;
38053
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38059
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38054
38060
  return;
38055
38061
  }
38056
38062
  if ($waiting) {
38057
- $pendingTrap = asrrh_InterruptController_externalPending();
38058
- if (!$pendingTrap) {
38059
- $pendingTrap = asrrh_InterruptController_timerPending();
38060
- if (!$pendingTrap) {
38063
+ var$20 = asrrh_InterruptController_externalPending();
38064
+ if (!var$20) {
38065
+ var$20 = asrrh_InterruptController_timerPending();
38066
+ if (!var$20) {
38061
38067
  $ptr = 2;
38062
38068
  continue main;
38063
38069
  }
@@ -38107,12 +38113,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
38107
38113
  return;
38108
38114
  }
38109
38115
  }
38110
- $IE = asrrh_RegisterFile_getProgramCounter();
38111
- $this.$pc0 = $IE;
38112
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
38116
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
38117
+ asrrh_RegisterFile_incrementPC();
38113
38118
  r: {
38114
38119
  try {
38115
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
38120
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
38116
38121
  break r;
38117
38122
  } catch ($$e) {
38118
38123
  $$je = $rt_wrapException($$e);
@@ -38132,7 +38137,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38132
38137
  }
38133
38138
  continue q;
38134
38139
  }
38135
- if (var$21 === null) {
38140
+ if ($se === null) {
38136
38141
  asrs_Simulator$Reason_$callClinit();
38137
38142
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
38138
38143
  return;
@@ -38143,15 +38148,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38143
38148
  try {
38144
38149
  v: {
38145
38150
  try {
38146
- $instruction = asr_ProgramStatement_getInstruction(var$21);
38151
+ $instruction = asr_ProgramStatement_getInstruction($se);
38147
38152
  if ($instruction !== null)
38148
38153
  break v;
38149
- $instruction = new asr_SimulationException();
38150
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
38151
- $e = jl_StringBuilder__init_();
38152
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
38153
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
38154
- $rt_throw($instruction);
38154
+ $e = new asr_SimulationException();
38155
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
38156
+ var$25 = jl_StringBuilder__init_();
38157
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
38158
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
38159
+ $rt_throw($e);
38155
38160
  } catch ($$e) {
38156
38161
  $$je = $rt_wrapException($$e);
38157
38162
  if ($$je instanceof asr_BreakpointException) {
@@ -38185,14 +38190,14 @@ var asrs_Simulator$SimThread_run = ($this) => {
38185
38190
  $$je = $rt_wrapException($$e);
38186
38191
  if ($$je instanceof asr_SimulationException) {
38187
38192
  $se = $$je;
38188
- $pendingTrap = $this.$pc0;
38189
- $pendingTrap = asrrh_InterruptController_registerSynchronousTrap($se, $pendingTrap);
38190
- if (!$pendingTrap) {
38193
+ var$20 = $this.$pc0;
38194
+ var$20 = asrrh_InterruptController_registerSynchronousTrap($se, var$20);
38195
+ if (!var$20) {
38191
38196
  $this.$pe = $se;
38192
- $pendingTrap = 1;
38197
+ var$20 = 1;
38193
38198
  asrs_Simulator$Reason_$callClinit();
38194
38199
  $instruction = asrs_Simulator$Reason_EXCEPTION;
38195
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38200
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38196
38201
  return;
38197
38202
  }
38198
38203
  continue q;
@@ -38202,42 +38207,43 @@ var asrs_Simulator$SimThread_run = ($this) => {
38202
38207
  }
38203
38208
  }
38204
38209
  if ($backStepping) {
38205
- $pendingTrap = $this.$pc0;
38206
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38210
+ var$20 = $this.$pc0;
38211
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38207
38212
  }
38208
38213
  $ebreak = 1;
38209
38214
  break s;
38210
38215
  }
38211
38216
  if ($backStepping) {
38212
- $pendingTrap = $this.$pc0;
38213
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38217
+ var$20 = $this.$pc0;
38218
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38214
38219
  }
38215
38220
  $waiting = 1;
38216
38221
  }
38217
- $pendingTrap = $this.$pc0;
38218
- asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, $pendingTrap);
38219
- $pendingTrap = -1;
38220
- $timeSampleCountdown = $timeSampleCountdown + $pendingTrap | 0;
38222
+ var$20 = $this.$pc0;
38223
+ asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, var$20);
38224
+ var$20 = -1;
38225
+ $timeSampleCountdown = $timeSampleCountdown + var$20 | 0;
38221
38226
  if ($timeSampleCountdown <= 0) {
38222
38227
  $timeSampleCountdown = 64;
38223
38228
  var$19 = jl_System_currentTimeMillis();
38224
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19);
38229
+ var$20 = $this.$pc0;
38230
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19, var$20);
38225
38231
  }
38226
38232
  if ($ebreak)
38227
38233
  break p;
38228
38234
  var$8 = $this.$breakPoints;
38229
38235
  if (var$8 !== null) {
38230
- $pendingTrap = asrrh_RegisterFile_getProgramCounter();
38231
- $pendingTrap = ju_Arrays_binarySearch(var$8, $pendingTrap);
38232
- if ($pendingTrap >= 0)
38236
+ var$20 = asrrh_RegisterFile_getProgramCounter();
38237
+ var$20 = ju_Arrays_binarySearch(var$8, var$20);
38238
+ if (var$20 >= 0)
38233
38239
  break p;
38234
38240
  }
38235
38241
  if (!$waiting)
38236
38242
  continue;
38237
- $pendingTrap = asrrh_InterruptController_externalPending();
38238
- if (!$pendingTrap) {
38239
- $pendingTrap = asrrh_InterruptController_timerPending();
38240
- if (!$pendingTrap) {
38243
+ var$20 = asrrh_InterruptController_externalPending();
38244
+ if (!var$20) {
38245
+ var$20 = asrrh_InterruptController_timerPending();
38246
+ if (!var$20) {
38241
38247
  $ptr = 2;
38242
38248
  continue main;
38243
38249
  }
@@ -38246,19 +38252,21 @@ var asrs_Simulator$SimThread_run = ($this) => {
38246
38252
  }
38247
38253
  return;
38248
38254
  }
38249
- $pendingTrap = 0;
38255
+ var$20 = 0;
38250
38256
  asrs_Simulator$Reason_$callClinit();
38251
38257
  $instruction = asrs_Simulator$Reason_BREAKPOINT;
38252
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38258
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38253
38259
  return;
38254
38260
  }
38255
- if ($e.$message === null) {
38256
- asrs_Simulator$Reason_$callClinit();
38257
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38258
- } else {
38261
+ if ($e.$message !== null) {
38259
38262
  asrs_Simulator$Reason_$callClinit();
38260
38263
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
38261
38264
  $this.$pe = $e;
38265
+ } else {
38266
+ asrs_Simulator$Reason_$callClinit();
38267
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38268
+ if ($backStepping)
38269
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
38262
38270
  }
38263
38271
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
38264
38272
  return;
@@ -38336,12 +38344,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
38336
38344
  return;
38337
38345
  }
38338
38346
  }
38339
- $IE = asrrh_RegisterFile_getProgramCounter();
38340
- $this.$pc0 = $IE;
38341
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
38347
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
38348
+ asrrh_RegisterFile_incrementPC();
38342
38349
  z: {
38343
38350
  try {
38344
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
38351
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
38345
38352
  break z;
38346
38353
  } catch ($$e) {
38347
38354
  $$je = $rt_wrapException($$e);
@@ -38361,7 +38368,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38361
38368
  }
38362
38369
  continue c;
38363
38370
  }
38364
- if (var$21 === null) {
38371
+ if ($se === null) {
38365
38372
  asrs_Simulator$Reason_$callClinit();
38366
38373
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
38367
38374
  return;
@@ -38372,15 +38379,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38372
38379
  try {
38373
38380
  bb: {
38374
38381
  try {
38375
- $instruction = asr_ProgramStatement_getInstruction(var$21);
38382
+ $instruction = asr_ProgramStatement_getInstruction($se);
38376
38383
  if ($instruction !== null)
38377
38384
  break bb;
38378
- $instruction = new asr_SimulationException();
38379
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
38380
- $e = jl_StringBuilder__init_();
38381
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
38382
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
38383
- $rt_throw($instruction);
38385
+ $e = new asr_SimulationException();
38386
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
38387
+ var$25 = jl_StringBuilder__init_();
38388
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
38389
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
38390
+ $rt_throw($e);
38384
38391
  } catch ($$e) {
38385
38392
  $$je = $rt_wrapException($$e);
38386
38393
  if ($$je instanceof asr_BreakpointException) {
@@ -38440,7 +38447,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38440
38447
  $timeSampleCountdown = $timeSampleCountdown + -1 | 0;
38441
38448
  if ($timeSampleCountdown <= 0) {
38442
38449
  $timeSampleCountdown = 64;
38443
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis());
38450
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis(), $this.$pc0);
38444
38451
  }
38445
38452
  if ($ebreak)
38446
38453
  break n;
@@ -38464,13 +38471,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38464
38471
  asrs_Simulator$SimThread_stopExecution($this, 0, asrs_Simulator$Reason_BREAKPOINT);
38465
38472
  return;
38466
38473
  }
38467
- if ($e.$message === null) {
38468
- asrs_Simulator$Reason_$callClinit();
38469
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38470
- } else {
38474
+ if ($e.$message !== null) {
38471
38475
  asrs_Simulator$Reason_$callClinit();
38472
38476
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
38473
38477
  $this.$pe = $e;
38478
+ } else {
38479
+ asrs_Simulator$Reason_$callClinit();
38480
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38481
+ if ($backStepping)
38482
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
38474
38483
  }
38475
38484
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
38476
38485
  return;
@@ -38547,12 +38556,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
38547
38556
  return;
38548
38557
  }
38549
38558
  }
38550
- $IE = asrrh_RegisterFile_getProgramCounter();
38551
- $this.$pc0 = $IE;
38552
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
38559
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
38560
+ asrrh_RegisterFile_incrementPC();
38553
38561
  bd: {
38554
38562
  try {
38555
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
38563
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
38556
38564
  break bd;
38557
38565
  } catch ($$e) {
38558
38566
  $$je = $rt_wrapException($$e);
@@ -38572,7 +38580,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38572
38580
  }
38573
38581
  continue bc;
38574
38582
  }
38575
- if (var$21 === null) {
38583
+ if ($se === null) {
38576
38584
  asrs_Simulator$Reason_$callClinit();
38577
38585
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
38578
38586
  return;
@@ -38583,15 +38591,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38583
38591
  try {
38584
38592
  be: {
38585
38593
  try {
38586
- $instruction = asr_ProgramStatement_getInstruction(var$21);
38594
+ $instruction = asr_ProgramStatement_getInstruction($se);
38587
38595
  if ($instruction !== null)
38588
38596
  break be;
38589
- $instruction = new asr_SimulationException();
38590
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
38591
- $e = jl_StringBuilder__init_();
38592
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
38593
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
38594
- $rt_throw($instruction);
38597
+ $e = new asr_SimulationException();
38598
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
38599
+ var$25 = jl_StringBuilder__init_();
38600
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
38601
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
38602
+ $rt_throw($e);
38595
38603
  } catch ($$e) {
38596
38604
  $$je = $rt_wrapException($$e);
38597
38605
  if ($$je instanceof asr_BreakpointException) {
@@ -38651,7 +38659,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38651
38659
  $timeSampleCountdown = $timeSampleCountdown + -1 | 0;
38652
38660
  if ($timeSampleCountdown <= 0) {
38653
38661
  $timeSampleCountdown = 64;
38654
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis());
38662
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis(), $this.$pc0);
38655
38663
  }
38656
38664
  if ($ebreak)
38657
38665
  break b;
@@ -38676,13 +38684,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38676
38684
  asrs_Simulator$SimThread_stopExecution($this, 0, asrs_Simulator$Reason_BREAKPOINT);
38677
38685
  return;
38678
38686
  }
38679
- if ($e.$message === null) {
38680
- asrs_Simulator$Reason_$callClinit();
38681
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38682
- } else {
38687
+ if ($e.$message !== null) {
38683
38688
  asrs_Simulator$Reason_$callClinit();
38684
38689
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
38685
38690
  $this.$pe = $e;
38691
+ } else {
38692
+ asrs_Simulator$Reason_$callClinit();
38693
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38694
+ if ($backStepping)
38695
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
38686
38696
  }
38687
38697
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
38688
38698
  return;
@@ -38690,7 +38700,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38690
38700
  $rt_invalidPointer();
38691
38701
  }
38692
38702
  }
38693
- $rt_nativeThread().push($this, $timeRegister, $uipRegister, $uieRegister, $ustatusRegister, $timeSampleCountdown, $backStepping, $backStepper, var$8, $steps, $ebreak, $waiting, var$12, $uip, $uie, $IE, $pendingExternal, $pendingTimer, $pendingTrap, var$19, var$20, var$21, $e, $tmp_0, $instruction, $se, $ptr);
38703
+ $rt_nativeThread().push($this, $timeRegister, $uipRegister, $uieRegister, $ustatusRegister, $timeSampleCountdown, $backStepping, $backStepper, var$8, $steps, $ebreak, $waiting, var$12, $uip, $uie, $IE, $pendingExternal, $pendingTimer, $pendingTrap, var$19, var$20, $se, $e, $tmp_0, $instruction, var$25, $ptr);
38694
38704
  };
38695
38705
  var asrs_Simulator$SimThread__clinit_ = () => {
38696
38706
  asrs_Simulator$SimThread_$assertionsDisabled = 0;
@@ -43801,47 +43811,48 @@ $rt_metadata([
43801
43811
  0,
43802
43812
  0,
43803
43813
  0,
43804
- asrrh_ControlAndStatusRegisterFile,
43805
- 0,
43814
+ asr_JsProgramStatement,
43815
+ "JsProgramStatement",
43816
+ 11,
43806
43817
  jl_Object,
43807
43818
  [],
43808
43819
  1,
43809
43820
  0,
43810
- () => asrrh_ControlAndStatusRegisterFile_$callClinit(),
43811
43821
  0,
43812
- asrrh_RegisterFile,
43822
+ 0,
43823
+ ju_Observer,
43813
43824
  0,
43814
43825
  jl_Object,
43815
43826
  [],
43816
- 1,
43827
+ 1537,
43817
43828
  0,
43818
- () => asrrh_RegisterFile_$callClinit(),
43819
43829
  0,
43820
- jm_BigInteger,
43821
- "BigInteger",
43822
- 18,
43823
- jl_Number,
43824
- [jl_Comparable, ji_Serializable],
43825
- 1,
43826
- 0,
43827
- () => jm_BigInteger_$callClinit(),
43828
- ["$hashCode", $rt_wrapFunction0(jm_BigInteger_hashCode), "$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString), "$compareTo0", $rt_wrapFunction1(jm_BigInteger_compareTo0)],
43829
- asr_JsRiscV$Body,
43830
43830
  0,
43831
+ asr_JsMemoryObserver,
43832
+ "JsMemoryObserver",
43833
+ 11,
43831
43834
  jl_Object,
43832
- [],
43833
- 1536,
43835
+ [ju_Observer],
43834
43836
  0,
43835
43837
  0,
43836
43838
  0,
43837
- asr_JsRiscV$simulate$lambda$_12_0,
43839
+ 0,
43840
+ asrrh_ControlAndStatusRegisterFile,
43838
43841
  0,
43839
43842
  jl_Object,
43840
- [asr_JsRiscV$Body],
43843
+ [],
43841
43844
  1,
43842
43845
  0,
43846
+ () => asrrh_ControlAndStatusRegisterFile_$callClinit(),
43847
+ 0,
43848
+ asrrh_RegisterFile,
43843
43849
  0,
43844
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_12_0_run)]
43850
+ jl_Object,
43851
+ [],
43852
+ 1,
43853
+ 0,
43854
+ () => asrrh_RegisterFile_$callClinit(),
43855
+ 0
43845
43856
  ]);
43846
43857
  $rt_metadata([
43847
43858
  juf_ToIntFunction,
@@ -43860,73 +43871,70 @@ $rt_metadata([
43860
43871
  0,
43861
43872
  0,
43862
43873
  0,
43863
- asr_JsProgramStatement,
43864
- "JsProgramStatement",
43865
- 11,
43874
+ otjc_JSArrayReader,
43875
+ 0,
43866
43876
  jl_Object,
43867
- [],
43868
- 1,
43877
+ [otj_JSObject],
43878
+ 1537,
43869
43879
  0,
43870
43880
  0,
43871
43881
  0,
43872
- asr_JsRiscV$step$lambda$_10_0,
43882
+ otjc_JSArray,
43873
43883
  0,
43874
43884
  jl_Object,
43875
- [asr_JsRiscV$Body],
43885
+ [otjc_JSArrayReader],
43876
43886
  1,
43877
43887
  0,
43878
43888
  0,
43879
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_10_0_run)],
43880
- asr_JsStackFrame,
43881
- "JsStackFrame",
43882
- 11,
43889
+ 0,
43890
+ asrs_BackStepper,
43891
+ 0,
43883
43892
  jl_Object,
43884
43893
  [],
43885
43894
  1,
43886
43895
  0,
43896
+ () => asrs_BackStepper_$callClinit(),
43887
43897
  0,
43888
- 0,
43889
- ju_Observer,
43898
+ asr_JsBackStep,
43890
43899
  0,
43891
43900
  jl_Object,
43892
43901
  [],
43893
- 1537,
43902
+ 17,
43894
43903
  0,
43895
43904
  0,
43896
43905
  0,
43897
- asr_JsMemoryObserver,
43898
- "JsMemoryObserver",
43899
- 11,
43900
- jl_Object,
43901
- [ju_Observer],
43906
+ asr_JsUndoGroup,
43902
43907
  0,
43908
+ jl_Object,
43909
+ [],
43910
+ 17,
43903
43911
  0,
43904
43912
  0,
43905
43913
  0,
43906
- asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0,
43914
+ asr_JsRiscV$Body,
43907
43915
  0,
43908
43916
  jl_Object,
43909
- [asr_JsRiscV$Body],
43910
- 1,
43917
+ [],
43918
+ 1536,
43911
43919
  0,
43912
43920
  0,
43913
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run)],
43914
- asrrh_FloatingPointRegisterFile,
43921
+ 0,
43922
+ asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0,
43915
43923
  0,
43916
43924
  jl_Object,
43917
- [],
43925
+ [asr_JsRiscV$Body],
43918
43926
  1,
43919
43927
  0,
43920
- () => asrrh_FloatingPointRegisterFile_$callClinit(),
43921
43928
  0,
43922
- asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0,
43929
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run)],
43930
+ asr_JsRiscV$simulate$lambda$_12_0,
43923
43931
  0,
43924
43932
  jl_Object,
43925
43933
  [asr_JsRiscV$Body],
43926
43934
  1,
43927
43935
  0,
43928
43936
  0,
43929
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run)],
43937
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_12_0_run)],
43930
43938
  asr_JsCompilationResult,
43931
43939
  "JsCompilationResult",
43932
43940
  11,
@@ -43945,54 +43953,55 @@ $rt_metadata([
43945
43953
  0,
43946
43954
  0,
43947
43955
  0,
43948
- asr_JsRiscV$simulateWithLimit$lambda$_13_0,
43956
+ asrrh_FloatingPointRegisterFile,
43949
43957
  0,
43950
43958
  jl_Object,
43951
- [asr_JsRiscV$Body],
43959
+ [],
43952
43960
  1,
43953
43961
  0,
43962
+ () => asrrh_FloatingPointRegisterFile_$callClinit(),
43954
43963
  0,
43955
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithLimit$lambda$_13_0_run)],
43956
- otjc_JSArrayReader,
43957
- 0,
43958
- jl_Object,
43959
- [otj_JSObject],
43960
- 1537,
43961
- 0,
43962
- 0,
43963
- 0,
43964
- otjc_JSArray,
43964
+ asr_JsRiscV$simulateWithLimit$lambda$_13_0,
43965
43965
  0,
43966
43966
  jl_Object,
43967
- [otjc_JSArrayReader],
43967
+ [asr_JsRiscV$Body],
43968
43968
  1,
43969
43969
  0,
43970
43970
  0,
43971
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithLimit$lambda$_13_0_run)],
43972
+ jm_BigInteger,
43973
+ "BigInteger",
43974
+ 18,
43975
+ jl_Number,
43976
+ [jl_Comparable, ji_Serializable],
43977
+ 1,
43971
43978
  0,
43972
- asr_JsBackStep,
43973
- 0,
43974
- jl_Object,
43975
- [],
43976
- 17,
43979
+ () => jm_BigInteger_$callClinit(),
43980
+ ["$hashCode", $rt_wrapFunction0(jm_BigInteger_hashCode), "$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString), "$compareTo0", $rt_wrapFunction1(jm_BigInteger_compareTo0)],
43981
+ jl_Double,
43977
43982
  0,
43983
+ jl_Number,
43984
+ [jl_Comparable],
43985
+ 1,
43978
43986
  0,
43987
+ () => jl_Double_$callClinit(),
43979
43988
  0,
43980
- asrs_BackStepper,
43989
+ asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0,
43981
43990
  0,
43982
43991
  jl_Object,
43983
- [],
43992
+ [juf_Function],
43984
43993
  1,
43985
43994
  0,
43986
- () => asrs_BackStepper_$callClinit(),
43987
43995
  0,
43988
- asr_JsUndoGroup,
43996
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0_apply)],
43997
+ asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1,
43989
43998
  0,
43990
43999
  jl_Object,
43991
- [],
43992
- 17,
43993
- 0,
44000
+ [juf_IntFunction],
44001
+ 1,
43994
44002
  0,
43995
44003
  0,
44004
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1_apply)],
43996
44005
  jl_IllegalStateException,
43997
44006
  "IllegalStateException",
43998
44007
  19,
@@ -44019,30 +44028,31 @@ $rt_metadata([
44019
44028
  0,
44020
44029
  0,
44021
44030
  0,
44022
- jl_Double,
44031
+ asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0,
44023
44032
  0,
44024
- jl_Number,
44025
- [jl_Comparable],
44033
+ jl_Object,
44034
+ [asr_JsRiscV$Body],
44026
44035
  1,
44027
44036
  0,
44028
- () => jl_Double_$callClinit(),
44029
- 0,
44030
- asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0,
44031
44037
  0,
44038
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run)],
44039
+ asr_JsStackFrame,
44040
+ "JsStackFrame",
44041
+ 11,
44032
44042
  jl_Object,
44033
- [juf_Function],
44043
+ [],
44034
44044
  1,
44035
44045
  0,
44036
44046
  0,
44037
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0_apply)],
44038
- asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1,
44047
+ 0,
44048
+ asr_JsRiscV$step$lambda$_10_0,
44039
44049
  0,
44040
44050
  jl_Object,
44041
- [juf_IntFunction],
44051
+ [asr_JsRiscV$Body],
44042
44052
  1,
44043
44053
  0,
44044
44054
  0,
44045
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1_apply)],
44055
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_10_0_run)],
44046
44056
  asr_JsRiscVTokenizedLine,
44047
44057
  "JsRiscVTokenizedLine",
44048
44058
  11,
@@ -44327,24 +44337,6 @@ $rt_metadata([
44327
44337
  0,
44328
44338
  0,
44329
44339
  ["$contains1", $rt_wrapFunction1(jur_CharClass$16_contains)],
44330
- asrrh_Register,
44331
- "Register",
44332
- 8,
44333
- ju_Observable,
44334
- [],
44335
- 1,
44336
- 0,
44337
- 0,
44338
- ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
44339
- asr_JsRiscV$PokeRegisterWrite,
44340
- "JsRiscV$PokeRegisterWrite",
44341
- 11,
44342
- jl_Object,
44343
- [],
44344
- 16,
44345
- 0,
44346
- 0,
44347
- 0,
44348
44340
  asr_RISCVprogram,
44349
44341
  "RISCVprogram",
44350
44342
  2,
@@ -44354,31 +44346,15 @@ $rt_metadata([
44354
44346
  0,
44355
44347
  0,
44356
44348
  0,
44357
- otjc_JSPromise$Executor,
44358
- 0,
44359
- jl_Object,
44360
- [otj_JSObject],
44361
- 1537,
44362
- 0,
44363
- 0,
44364
- 0,
44365
- asr_JsRiscV$run$lambda$_9_0,
44366
- "JsRiscV$run$lambda$_9_0",
44367
- 11,
44368
- jl_Object,
44369
- [otjc_JSPromise$Executor],
44370
- 1,
44371
- 0,
44372
- 0,
44373
- 0,
44374
- otjc_JSPromise,
44375
- 0,
44376
- jl_Object,
44377
- [otj_JSObject],
44349
+ asrrh_Register,
44350
+ "Register",
44351
+ 8,
44352
+ ju_Observable,
44353
+ [],
44378
44354
  1,
44379
44355
  0,
44380
44356
  0,
44381
- 0,
44357
+ ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
44382
44358
  jl_AutoCloseable,
44383
44359
  0,
44384
44360
  jl_Object,
@@ -44419,6 +44395,22 @@ $rt_metadata([
44419
44395
  0,
44420
44396
  0,
44421
44397
  0,
44398
+ asrs_BackStepper$BackstepStack,
44399
+ 0,
44400
+ jl_Object,
44401
+ [],
44402
+ 1,
44403
+ 0,
44404
+ 0,
44405
+ 0,
44406
+ asrs_BackStepper$BackStep,
44407
+ 0,
44408
+ jl_Object,
44409
+ [],
44410
+ 1,
44411
+ 0,
44412
+ 0,
44413
+ 0,
44422
44414
  jl_Long,
44423
44415
  "Long",
44424
44416
  19,
@@ -44428,103 +44420,112 @@ $rt_metadata([
44428
44420
  0,
44429
44421
  () => jl_Long_$callClinit(),
44430
44422
  ["$toString", $rt_wrapFunction0(jl_Long_toString0), "$hashCode", $rt_wrapFunction0(jl_Long_hashCode), "$equals", $rt_wrapFunction1(jl_Long_equals), "$compareTo0", $rt_wrapFunction1(jl_Long_compareTo)],
44431
- asrrh_AddressErrorException,
44432
- "AddressErrorException",
44433
- 8,
44434
- jl_Exception,
44435
- [],
44436
- 1,
44437
- 0,
44438
- 0,
44439
- 0,
44440
- asr_JsCompilationResult$_init_$lambda$_0_0,
44423
+ otjc_JSObjects,
44441
44424
  0,
44442
44425
  jl_Object,
44443
- [juf_Function],
44444
- 1,
44426
+ [],
44427
+ 17,
44445
44428
  0,
44446
44429
  0,
44447
- ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
44448
- juf_Supplier,
44430
+ 0,
44431
+ otji_JSWrapper$Helper,
44449
44432
  0,
44450
44433
  jl_Object,
44451
44434
  [],
44452
- 1537,
44453
44435
  0,
44454
44436
  0,
44437
+ () => otji_JSWrapper$Helper_$callClinit(),
44455
44438
  0,
44456
- asr_JsCompilationResult$_init_$lambda$_0_1,
44439
+ otjc_JSUndefined,
44457
44440
  0,
44458
44441
  jl_Object,
44459
- [juf_Supplier],
44442
+ [otj_JSObject],
44460
44443
  1,
44461
44444
  0,
44462
44445
  0,
44463
44446
  0,
44464
- juf_BiConsumer,
44447
+ otjc_JSPromise$Executor,
44465
44448
  0,
44466
44449
  jl_Object,
44467
- [],
44450
+ [otj_JSObject],
44468
44451
  1537,
44469
44452
  0,
44470
44453
  0,
44471
44454
  0,
44472
- asr_JsCompilationResult$_init_$lambda$_0_2,
44473
- 0,
44455
+ asr_JsRiscV$run$lambda$_9_0,
44456
+ "JsRiscV$run$lambda$_9_0",
44457
+ 11,
44474
44458
  jl_Object,
44475
- [juf_BiConsumer],
44459
+ [otjc_JSPromise$Executor],
44476
44460
  1,
44477
44461
  0,
44478
44462
  0,
44479
44463
  0,
44480
- asr_JsCompilationResult$_init_$lambda$_0_3,
44464
+ otjc_JSPromise,
44481
44465
  0,
44482
44466
  jl_Object,
44483
- [juf_BiConsumer],
44467
+ [otj_JSObject],
44484
44468
  1,
44485
44469
  0,
44486
44470
  0,
44487
44471
  0,
44488
- asrs_BackStepper$BackstepStack,
44472
+ asr_JsCompilationResult$_init_$lambda$_0_0,
44489
44473
  0,
44490
44474
  jl_Object,
44491
- [],
44475
+ [juf_Function],
44492
44476
  1,
44493
44477
  0,
44494
44478
  0,
44495
- 0,
44496
- asrs_BackStepper$BackStep,
44479
+ ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
44480
+ juf_Supplier,
44497
44481
  0,
44498
44482
  jl_Object,
44499
44483
  [],
44484
+ 1537,
44485
+ 0,
44486
+ 0,
44487
+ 0,
44488
+ asr_JsCompilationResult$_init_$lambda$_0_1,
44489
+ 0,
44490
+ jl_Object,
44491
+ [juf_Supplier],
44500
44492
  1,
44501
44493
  0,
44502
44494
  0,
44503
44495
  0,
44504
- otjc_JSObjects,
44496
+ juf_BiConsumer,
44505
44497
  0,
44506
44498
  jl_Object,
44507
44499
  [],
44508
- 17,
44500
+ 1537,
44509
44501
  0,
44510
44502
  0,
44511
44503
  0,
44512
- otji_JSWrapper$Helper,
44504
+ asr_JsCompilationResult$_init_$lambda$_0_2,
44513
44505
  0,
44514
44506
  jl_Object,
44515
- [],
44507
+ [juf_BiConsumer],
44508
+ 1,
44516
44509
  0,
44517
44510
  0,
44518
- () => otji_JSWrapper$Helper_$callClinit(),
44519
44511
  0,
44520
- otjc_JSUndefined,
44512
+ asr_JsCompilationResult$_init_$lambda$_0_3,
44521
44513
  0,
44522
44514
  jl_Object,
44523
- [otj_JSObject],
44515
+ [juf_BiConsumer],
44524
44516
  1,
44525
44517
  0,
44526
44518
  0,
44527
44519
  0,
44520
+ asr_JsRiscV$PokeRegisterWrite,
44521
+ "JsRiscV$PokeRegisterWrite",
44522
+ 11,
44523
+ jl_Object,
44524
+ [],
44525
+ 16,
44526
+ 0,
44527
+ 0,
44528
+ 0,
44528
44529
  asr_JsPokeWrite,
44529
44530
  0,
44530
44531
  jl_Object,
@@ -44533,6 +44534,15 @@ $rt_metadata([
44533
44534
  0,
44534
44535
  0,
44535
44536
  0,
44537
+ asrrh_AddressErrorException,
44538
+ "AddressErrorException",
44539
+ 8,
44540
+ jl_Exception,
44541
+ [],
44542
+ 1,
44543
+ 0,
44544
+ 0,
44545
+ 0,
44536
44546
  asra_TokenTypes,
44537
44547
  0,
44538
44548
  jl_Enum,
@@ -46548,17 +46558,17 @@ $rt_metadata([
46548
46558
  0,
46549
46559
  0,
46550
46560
  0,
46551
- asrrh_StackFrame,
46552
- "StackFrame",
46553
- 8,
46561
+ asr_ErrorList,
46562
+ 0,
46554
46563
  jl_Object,
46555
46564
  [],
46556
46565
  1,
46557
46566
  0,
46558
46567
  0,
46559
46568
  0,
46560
- asr_ErrorList,
46561
- 0,
46569
+ asrrh_StackFrame,
46570
+ "StackFrame",
46571
+ 8,
46562
46572
  jl_Object,
46563
46573
  [],
46564
46574
  1,
@@ -47075,14 +47085,6 @@ $rt_metadata([
47075
47085
  0,
47076
47086
  0,
47077
47087
  ["$find0", $rt_wrapFunction3(jur_BackReferencedSingleSet_find), "$findBack", $rt_wrapFunction4(jur_BackReferencedSingleSet_findBack), "$processBackRefReplacement", $rt_wrapFunction0(jur_BackReferencedSingleSet_processBackRefReplacement)],
47078
- jm_Conversion,
47079
- 0,
47080
- jl_Object,
47081
- [],
47082
- 0,
47083
- 0,
47084
- () => jm_Conversion_$callClinit(),
47085
- 0,
47086
47088
  jus_IntStream,
47087
47089
  0,
47088
47090
  jl_Object,
@@ -47107,6 +47109,14 @@ $rt_metadata([
47107
47109
  0,
47108
47110
  0,
47109
47111
  0,
47112
+ jm_Conversion,
47113
+ 0,
47114
+ jl_Object,
47115
+ [],
47116
+ 0,
47117
+ 0,
47118
+ () => jm_Conversion_$callClinit(),
47119
+ 0,
47110
47120
  ju_AbstractList$1,
47111
47121
  0,
47112
47122
  jl_Object,
@@ -47139,14 +47149,6 @@ $rt_metadata([
47139
47149
  0,
47140
47150
  () => asrs_Simulator$Reason_$callClinit(),
47141
47151
  0,
47142
- asrrh_Stack,
47143
- 0,
47144
- jl_Object,
47145
- [],
47146
- 1,
47147
- 0,
47148
- () => asrrh_Stack_$callClinit(),
47149
- 0,
47150
47152
  juf_Predicate,
47151
47153
  0,
47152
47154
  jl_Object,
@@ -47163,6 +47165,14 @@ $rt_metadata([
47163
47165
  0,
47164
47166
  0,
47165
47167
  0,
47168
+ asrrh_Stack,
47169
+ 0,
47170
+ jl_Object,
47171
+ [],
47172
+ 1,
47173
+ 0,
47174
+ () => asrrh_Stack_$callClinit(),
47175
+ 0,
47166
47176
  asrrh_InterruptController,
47167
47177
  0,
47168
47178
  jl_Object,
@@ -47828,14 +47838,6 @@ $rt_metadata([
47828
47838
  0,
47829
47839
  0,
47830
47840
  0,
47831
- asrs_BackStepper$Action,
47832
- 0,
47833
- jl_Enum,
47834
- [],
47835
- 65552,
47836
- 0,
47837
- () => asrs_BackStepper$Action_$callClinit(),
47838
- 0,
47839
47841
  asrs_BackStepper$PokeRestore,
47840
47842
  "BackStepper$PokeRestore",
47841
47843
  3,
@@ -47845,6 +47847,14 @@ $rt_metadata([
47845
47847
  0,
47846
47848
  0,
47847
47849
  0,
47850
+ asrs_BackStepper$Action,
47851
+ 0,
47852
+ jl_Enum,
47853
+ [],
47854
+ 65552,
47855
+ 0,
47856
+ () => asrs_BackStepper$Action_$callClinit(),
47857
+ 0,
47848
47858
  jusi_SimpleStreamImpl$toArray$lambda$_20_0,
47849
47859
  0,
47850
47860
  jl_Object,
@@ -49664,9 +49674,6 @@ $rt_stringPool([
49664
49674
  "t5",
49665
49675
  "t6",
49666
49676
  "pc",
49667
- "Negative bit address",
49668
- "BigInteger out of int range",
49669
- "BigInteger out of long range",
49670
49677
  "ft0",
49671
49678
  "ft1",
49672
49679
  "ft2",
@@ -49699,6 +49706,9 @@ $rt_stringPool([
49699
49706
  "ft9",
49700
49707
  "ft10",
49701
49708
  "ft11",
49709
+ "Negative bit address",
49710
+ "BigInteger out of int range",
49711
+ "BigInteger out of long range",
49702
49712
  "Infinity",
49703
49713
  "NaN",
49704
49714
  " , ",
@@ -51136,6 +51146,19 @@ var $rt_jso_marker = Symbol("jsoClass");
51136
51146
  Object.defineProperty(c, "sourcePath", {
51137
51147
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSourcePath$exported$1)
51138
51148
  });
51149
+ c = asr_JsCompilationResult.prototype;
51150
+ Object.defineProperty(c, "hasErrors", {
51151
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
51152
+ });
51153
+ Object.defineProperty(c, "hasWarnings", {
51154
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
51155
+ });
51156
+ Object.defineProperty(c, "report", {
51157
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
51158
+ });
51159
+ Object.defineProperty(c, "errors", {
51160
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
51161
+ });
51139
51162
  c = asr_JsStackFrame.prototype;
51140
51163
  Object.defineProperty(c, "pc", {
51141
51164
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -51152,19 +51175,6 @@ var $rt_jso_marker = Symbol("jsoClass");
51152
51175
  Object.defineProperty(c, "toAddress", {
51153
51176
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
51154
51177
  });
51155
- c = asr_JsCompilationResult.prototype;
51156
- Object.defineProperty(c, "hasErrors", {
51157
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
51158
- });
51159
- Object.defineProperty(c, "hasWarnings", {
51160
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
51161
- });
51162
- Object.defineProperty(c, "report", {
51163
- get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
51164
- });
51165
- Object.defineProperty(c, "errors", {
51166
- get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
51167
- });
51168
51178
  c = asr_JsRiscVTokenizedLine.prototype;
51169
51179
  Object.defineProperty(c, "sourceLine", {
51170
51180
  get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getSourceLine$exported$0)
@@ -51242,18 +51252,18 @@ function $rt_export_class_JsRISCVIO_55() {
51242
51252
  return asr_JsRISCVIO__init_$exported$0();
51243
51253
  }
51244
51254
  $rt_export_class_JsRISCVIO_55.prototype = asr_JsRISCVIO.prototype;
51245
- function $rt_export_class_JsProgramStatement_251() {
51255
+ function $rt_export_class_JsProgramStatement_244() {
51246
51256
  throw new Error("Can't instantiate this class directly");
51247
51257
  }
51248
- $rt_export_class_JsProgramStatement_251.prototype = asr_JsProgramStatement.prototype;
51249
- function $rt_export_class_JsStackFrame_253() {
51250
- throw new Error("Can't instantiate this class directly");
51251
- }
51252
- $rt_export_class_JsStackFrame_253.prototype = asr_JsStackFrame.prototype;
51258
+ $rt_export_class_JsProgramStatement_244.prototype = asr_JsProgramStatement.prototype;
51253
51259
  function $rt_export_class_JsCompilationResult_259() {
51254
51260
  throw new Error("Can't instantiate this class directly");
51255
51261
  }
51256
51262
  $rt_export_class_JsCompilationResult_259.prototype = asr_JsCompilationResult.prototype;
51263
+ function $rt_export_class_JsStackFrame_271() {
51264
+ throw new Error("Can't instantiate this class directly");
51265
+ }
51266
+ $rt_export_class_JsStackFrame_271.prototype = asr_JsStackFrame.prototype;
51257
51267
  function $rt_export_class_JsRiscVTokenizedLine_273() {
51258
51268
  throw new Error("Can't instantiate this class directly");
51259
51269
  }