@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.js CHANGED
@@ -17294,6 +17294,121 @@ var otci_Base46_decode = ($seq) => {
17294
17294
  $result = -$result | 0;
17295
17295
  return $result;
17296
17296
  };
17297
+ function asr_JsProgramStatement() {
17298
+ let a = this;
17299
+ jl_Object.call(a);
17300
+ a.$sourceLine5 = 0;
17301
+ a.$sourcePath2 = null;
17302
+ a.$address2 = 0;
17303
+ a.$binaryStatement0 = 0;
17304
+ a.$source2 = null;
17305
+ a.$assemblyStatement = null;
17306
+ a.$machineStatement0 = null;
17307
+ }
17308
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
17309
+ let var$2, var$3, var$4, var$5, var$6;
17310
+ $this.$sourceLine5 = $programStatement.$sourceLine1;
17311
+ $this.$sourcePath2 = $programStatement.$sourcePath;
17312
+ $this.$address2 = $programStatement.$textAddress0;
17313
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
17314
+ $this.$source2 = $programStatement.$source;
17315
+ var$2 = $programStatement.$basicStatementList;
17316
+ var$3 = asr_Globals_getSettings();
17317
+ asr_Settings$Bool_$callClinit();
17318
+ var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
17319
+ var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
17320
+ var$3 = new jl_StringBuffer();
17321
+ jl_AbstractStringBuilder__init_(var$3);
17322
+ var$6 = ju_AbstractList_iterator(var$2.$list);
17323
+ while (ju_AbstractList$1_hasNext(var$6)) {
17324
+ a: {
17325
+ var$2 = ju_AbstractList$1_next(var$6);
17326
+ switch (var$2.$type3) {
17327
+ case 0:
17328
+ break;
17329
+ case 1:
17330
+ if (var$4 == 10) {
17331
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
17332
+ break a;
17333
+ }
17334
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
17335
+ break a;
17336
+ case 2:
17337
+ if (var$5 == 10) {
17338
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
17339
+ break a;
17340
+ }
17341
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
17342
+ break a;
17343
+ case 3:
17344
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
17345
+ break a;
17346
+ default:
17347
+ break a;
17348
+ }
17349
+ jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
17350
+ }
17351
+ }
17352
+ $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$3);
17353
+ $this.$machineStatement0 = $programStatement.$machineStatement;
17354
+ };
17355
+ var asr_JsProgramStatement__init_ = (var_0) => {
17356
+ let var_1 = new asr_JsProgramStatement();
17357
+ asr_JsProgramStatement__init_0(var_1, var_0);
17358
+ return var_1;
17359
+ };
17360
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
17361
+ return var$1.$sourceLine5;
17362
+ };
17363
+ var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
17364
+ return $rt_ustr(var$1.$sourcePath2);
17365
+ };
17366
+ var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
17367
+ return $rt_ustr(var$1.$assemblyStatement);
17368
+ };
17369
+ var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
17370
+ return $rt_ustr(var$1.$source2);
17371
+ };
17372
+ var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
17373
+ return var$1.$address2;
17374
+ };
17375
+ var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
17376
+ return var$1.$binaryStatement0;
17377
+ };
17378
+ var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
17379
+ return $rt_ustr(var$1.$machineStatement0);
17380
+ };
17381
+ var ju_Observer = $rt_classWithoutFields(0);
17382
+ function asr_JsMemoryObserver() {
17383
+ let a = this;
17384
+ jl_Object.call(a);
17385
+ a.$handle = 0;
17386
+ a.$startAddress = 0;
17387
+ a.$endAddress = 0;
17388
+ a.$onRead = null;
17389
+ a.$onWrite = null;
17390
+ a.$reportsLength = 0;
17391
+ }
17392
+ var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
17393
+ $this.$handle = $handle;
17394
+ $this.$startAddress = $startAddress;
17395
+ $this.$endAddress = $endAddress;
17396
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
17397
+ $onRead = null;
17398
+ $this.$onRead = $onRead;
17399
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
17400
+ $onWrite = null;
17401
+ $this.$onWrite = $onWrite;
17402
+ $this.$reportsLength = $reportsLength;
17403
+ };
17404
+ var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
17405
+ let var_6 = new asr_JsMemoryObserver();
17406
+ asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
17407
+ return var_6;
17408
+ };
17409
+ var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
17410
+ return var$1 === null || var$1 === void 0;
17411
+ };
17297
17412
  var asrrh_ControlAndStatusRegisterFile = $rt_classWithoutFields();
17298
17413
  var asrrh_ControlAndStatusRegisterFile_instance = null;
17299
17414
  var asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = 0;
@@ -17301,14 +17416,14 @@ var asrrh_ControlAndStatusRegisterFile_$callClinit = () => {
17301
17416
  asrrh_ControlAndStatusRegisterFile_$callClinit = $rt_eraseClinit(asrrh_ControlAndStatusRegisterFile);
17302
17417
  asrrh_ControlAndStatusRegisterFile__clinit_();
17303
17418
  };
17304
- var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
17419
+ var asrrh_ControlAndStatusRegisterFile_updateRegister0 = (var$1, $val) => {
17305
17420
  let $target, $old, var$5, var$6;
17306
17421
  asrrh_ControlAndStatusRegisterFile_$callClinit();
17307
17422
  asrrh_ControlAndStatusRegisterFile_settleCounters();
17308
- $target = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num);
17423
+ $target = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, var$1);
17309
17424
  if ($target instanceof asrrh_ReadOnlyRegister)
17310
17425
  return 1;
17311
- if ($num >= 3200 && $num <= 3202)
17426
+ if (var$1 >= 3200 && var$1 <= 3202)
17312
17427
  return 1;
17313
17428
  if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()) && $target !== null) {
17314
17429
  $old = asrrh_RegisterBlock_updateRegister0(asrrh_ControlAndStatusRegisterFile_instance, $target, $val);
@@ -17316,7 +17431,7 @@ var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
17316
17431
  $val = $target.$getValueNoNotify();
17317
17432
  var$6 = var$5.$backSteps;
17318
17433
  asrs_BackStepper$Action_$callClinit();
17319
- asrs_BackStepper$BackstepStack_push(var$6, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$5), $num, $old, 0, $val);
17434
+ asrs_BackStepper$BackstepStack_push(var$6, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$5), var$1, $old, 0, $val);
17320
17435
  } else
17321
17436
  asrrh_RegisterBlock_updateRegister0(asrrh_ControlAndStatusRegisterFile_instance, $target, $val);
17322
17437
  return 0;
@@ -17326,19 +17441,19 @@ var asrrh_ControlAndStatusRegisterFile_updateRegister = ($name, $val) => {
17326
17441
  asrrh_ControlAndStatusRegisterFile_settleCounters();
17327
17442
  asrrh_ControlAndStatusRegisterFile_updateRegister0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
17328
17443
  };
17329
- var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($register, $val) => {
17330
- let $old, var$4, var$5, var$6;
17444
+ var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($register, $val, $programCounter) => {
17445
+ let $old, var$5, var$6;
17331
17446
  asrrh_ControlAndStatusRegisterFile_$callClinit();
17332
17447
  asrrh_ControlAndStatusRegisterFile_settleCounters();
17333
17448
  $old = asrrh_Register_setValueBackdoor($register, $val);
17334
17449
  if (Long_eq($old, $val))
17335
17450
  return;
17336
17451
  if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
17337
- var$4 = asr_Globals_program.$backStepper;
17338
- var$5 = $register.$number;
17339
- var$6 = var$4.$backSteps;
17452
+ var$5 = asr_Globals_program.$backStepper;
17453
+ var$6 = $register.$number;
17454
+ var$5 = var$5.$backSteps;
17340
17455
  asrs_BackStepper$Action_$callClinit();
17341
- asrs_BackStepper$BackstepStack_push(var$6, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, asrs_BackStepper_pc(var$4), var$5, $old, 0, $val);
17456
+ asrs_BackStepper$BackstepStack_push(var$5, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, $programCounter, var$6, $old, 0, $val);
17342
17457
  }
17343
17458
  };
17344
17459
  var asrrh_ControlAndStatusRegisterFile_orRegister0 = ($num, $val) => {
@@ -17535,6 +17650,10 @@ var asrrh_RegisterFile_resetRegisters = () => {
17535
17650
  asr_Settings$Bool_$callClinit();
17536
17651
  asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(var$1, asr_Settings$Bool_START_AT_MAIN));
17537
17652
  };
17653
+ var asrrh_RegisterFile_incrementPC = () => {
17654
+ asrrh_RegisterFile_$callClinit();
17655
+ asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
17656
+ };
17538
17657
  var asrrh_RegisterFile__clinit_ = () => {
17539
17658
  let var$1, var$2, var$3, var$4;
17540
17659
  var$1 = new asrrh_RegisterBlock();
@@ -17580,209 +17699,662 @@ var asrrh_RegisterFile__clinit_ = () => {
17580
17699
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(542), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
17581
17700
  asrrh_RegisterFile_programCounterValue = asrrh_Memory_textBaseAddress;
17582
17701
  };
17583
- function jm_BigInteger() {
17702
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
17703
+ var asr_JsRiscV$getRegistersValues$lambda$_28_0 = $rt_classWithoutFields();
17704
+ var otjc_JSArrayReader = $rt_classWithoutFields(0);
17705
+ var otjc_JSArray = $rt_classWithoutFields();
17706
+ var otjc_JSArray_of = ($items) => {
17707
+ let var$2, $array, $i, var$5;
17708
+ $items = $items.data;
17709
+ var$2 = $items.length;
17710
+ $array = new Array(var$2);
17711
+ $i = 0;
17712
+ while ($i < var$2) {
17713
+ var$5 = $items[$i];
17714
+ $array[$i] = otji_JSWrapper_javaToJs(var$5);
17715
+ $i = $i + 1 | 0;
17716
+ }
17717
+ return $array;
17718
+ };
17719
+ function asrs_BackStepper() {
17584
17720
  let a = this;
17585
- jl_Number.call(a);
17586
- a.$digits = null;
17587
- a.$numberLength = 0;
17588
- a.$sign0 = 0;
17589
- a.$firstNonzeroDigit = 0;
17590
- a.$hashCode1 = 0;
17721
+ jl_Object.call(a);
17722
+ a.$lastStatementPc = 0;
17723
+ a.$lastStatement = null;
17724
+ a.$engaged = 0;
17725
+ a.$backSteps = null;
17726
+ a.$pokeGroup = 0;
17727
+ a.$pokeRestores = null;
17591
17728
  }
17592
- var jm_BigInteger_ZERO = null;
17593
- var jm_BigInteger_ONE = null;
17594
- var jm_BigInteger_TWO = null;
17595
- var jm_BigInteger_TEN = null;
17596
- var jm_BigInteger_MINUS_ONE = null;
17597
- var jm_BigInteger_SMALL_VALUES = null;
17598
- var jm_BigInteger_TWO_POWS = null;
17599
- var jm_BigInteger_$callClinit = () => {
17600
- jm_BigInteger_$callClinit = $rt_eraseClinit(jm_BigInteger);
17601
- jm_BigInteger__clinit_();
17729
+ var asrs_BackStepper_nextPokeGroup = 0;
17730
+ var asrs_BackStepper_$callClinit = () => {
17731
+ asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
17732
+ asrs_BackStepper__clinit_();
17602
17733
  };
17603
- var jm_BigInteger__init_4 = ($this, $sign, $value) => {
17604
- let var$3;
17605
- jm_BigInteger_$callClinit();
17606
- $this.$firstNonzeroDigit = -2;
17607
- $this.$sign0 = $sign;
17608
- $this.$numberLength = 1;
17609
- var$3 = $rt_createIntArray(1);
17610
- var$3.data[0] = $value;
17611
- $this.$digits = var$3;
17734
+ var asrs_BackStepper_applyRestore = ($action, $param1, $param2) => {
17735
+ let var$4, var$5, var$6, var$7;
17736
+ asrs_BackStepper_$callClinit();
17737
+ a: {
17738
+ switch ($action.$ordinal0) {
17739
+ case 0:
17740
+ asr_Globals_$callClinit();
17741
+ $action = asr_Globals_memory;
17742
+ var$4 = Long_lo($param2);
17743
+ var$5 = asrrh_Memory_storeRawWord($action, $param1, var$4);
17744
+ asrrh_Memory_notifyAnyObservers($action, 1, $param1, 4, var$4);
17745
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
17746
+ var$6 = asr_Globals_program.$backStepper;
17747
+ var$7 = var$6.$backSteps;
17748
+ asrs_BackStepper$Action_$callClinit();
17749
+ 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);
17750
+ }
17751
+ break a;
17752
+ case 1:
17753
+ asr_Globals_$callClinit();
17754
+ asrrh_Memory_setDoubleWord(asr_Globals_memory, $param1, $param2);
17755
+ break a;
17756
+ case 2:
17757
+ asr_Globals_$callClinit();
17758
+ asrrh_Memory_setWord(asr_Globals_memory, $param1, Long_lo($param2));
17759
+ break a;
17760
+ case 3:
17761
+ asr_Globals_$callClinit();
17762
+ asrrh_Memory_setHalf(asr_Globals_memory, $param1, Long_lo($param2));
17763
+ break a;
17764
+ case 4:
17765
+ asr_Globals_$callClinit();
17766
+ asrrh_Memory_setByte(asr_Globals_memory, $param1, Long_lo($param2));
17767
+ break a;
17768
+ case 5:
17769
+ asrrh_RegisterFile_updateRegister($param1, $param2);
17770
+ break a;
17771
+ case 6:
17772
+ asrrh_RegisterFile_setProgramCounter($param1);
17773
+ break a;
17774
+ case 7:
17775
+ asrrh_ControlAndStatusRegisterFile_updateRegister0($param1, $param2);
17776
+ break a;
17777
+ case 8:
17778
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
17779
+ asrrh_ControlAndStatusRegisterFile_settleCounters();
17780
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1), $param2, asrrh_RegisterFile_getProgramCounter() - 4 | 0);
17781
+ break a;
17782
+ case 9:
17783
+ asrrh_FloatingPointRegisterFile_updateRegisterLong($param1, $param2);
17784
+ break a;
17785
+ case 10:
17786
+ break;
17787
+ case 11:
17788
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
17789
+ $param1 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
17790
+ if ($param1 > 0)
17791
+ asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = $param1 - 1 | 0;
17792
+ else {
17793
+ $action = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(494));
17794
+ var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(495));
17795
+ asrrh_Register_setValueBackdoor($action, Long_sub($action.$getValueNoNotify(), Long_fromInt(1)));
17796
+ asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
17797
+ }
17798
+ break a;
17799
+ case 12:
17800
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
17801
+ asrrh_ControlAndStatusRegisterFile_settleCounters();
17802
+ $action = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1);
17803
+ if ($action !== null)
17804
+ $action.$setValue($param2);
17805
+ break a;
17806
+ case 13:
17807
+ break a;
17808
+ default:
17809
+ break a;
17810
+ }
17811
+ }
17612
17812
  };
17613
- var jm_BigInteger__init_ = (var_0, var_1) => {
17614
- let var_2 = new jm_BigInteger();
17615
- jm_BigInteger__init_4(var_2, var_0, var_1);
17616
- return var_2;
17813
+ var asrs_BackStepper_sameGroup = ($one, $other) => {
17814
+ asrs_BackStepper_$callClinit();
17815
+ if (!asrs_BackStepper$BackStep_isPoke($one) && !asrs_BackStepper$BackStep_isPoke($other))
17816
+ return $one.$ps !== $other.$ps ? 0 : 1;
17817
+ return 0;
17617
17818
  };
17618
- var jm_BigInteger__init_2 = ($this, $sign, $numberLength, $digits) => {
17619
- jm_BigInteger_$callClinit();
17620
- $this.$firstNonzeroDigit = -2;
17621
- $this.$sign0 = $sign;
17622
- $this.$numberLength = $numberLength;
17623
- $this.$digits = $digits;
17819
+ var asrs_BackStepper_pc = ($this) => {
17820
+ return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
17624
17821
  };
17625
- var jm_BigInteger__init_0 = (var_0, var_1, var_2) => {
17626
- let var_3 = new jm_BigInteger();
17627
- jm_BigInteger__init_2(var_3, var_0, var_1, var_2);
17628
- return var_3;
17822
+ var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
17823
+ let var$4;
17824
+ var$4 = $this.$backSteps;
17825
+ asrs_BackStepper$Action_$callClinit();
17826
+ asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
17827
+ return $value;
17629
17828
  };
17630
- var jm_BigInteger__init_3 = ($this, $sign, $val) => {
17631
- let var$3;
17632
- jm_BigInteger_$callClinit();
17633
- $this.$firstNonzeroDigit = -2;
17634
- $this.$sign0 = $sign;
17635
- if (Long_eq(Long_and($val, Long_create(0, 4294967295)), Long_ZERO)) {
17636
- $this.$numberLength = 1;
17637
- var$3 = $rt_createIntArray(1);
17638
- var$3.data[0] = Long_lo($val);
17639
- $this.$digits = var$3;
17640
- } else {
17641
- $this.$numberLength = 2;
17642
- $this.$digits = $rt_createIntArrayFromData([Long_lo($val), Long_hi($val)]);
17829
+ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
17830
+ let var$2;
17831
+ if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc)) {
17832
+ var$2 = $this.$backSteps;
17833
+ asrs_BackStepper$Action_$callClinit();
17834
+ asrs_BackStepper$BackstepStack_push0(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
17643
17835
  }
17644
17836
  };
17645
- var jm_BigInteger__init_1 = (var_0, var_1) => {
17646
- let var_2 = new jm_BigInteger();
17647
- jm_BigInteger__init_3(var_2, var_0, var_1);
17648
- return var_2;
17837
+ var asrs_BackStepper__clinit_ = () => {
17838
+ asrs_BackStepper_nextPokeGroup = -2;
17649
17839
  };
17650
- var jm_BigInteger_valueOf = ($val) => {
17651
- jm_BigInteger_$callClinit();
17652
- if (Long_lt($val, Long_ZERO)) {
17653
- if (Long_eq($val, Long_fromInt(-1)))
17654
- return jm_BigInteger_MINUS_ONE;
17655
- return jm_BigInteger__init_1(-1, Long_neg($val));
17840
+ var asr_JsBackStep = $rt_classWithoutFields();
17841
+ var asr_JsBackStep_of = ($backStep) => {
17842
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
17843
+ var$2 = $backStep.$action;
17844
+ var$3 = var$2 === null ? -1 : var$2.$ordinal0;
17845
+ var$4 = $backStep.$pc1;
17846
+ var$5 = $backStep.$param1;
17847
+ var$6 = $backStep.$param2;
17848
+ var$7 = Long_lo(var$6);
17849
+ asrs_BackStepper$Action_$callClinit();
17850
+ if (var$2 === asrs_BackStepper$Action_PC_RESTORE)
17851
+ var$6 = Long_fromInt(var$5);
17852
+ a: {
17853
+ var$8 = jl_Long_toString(var$6);
17854
+ switch ($backStep.$action.$ordinal0) {
17855
+ case 0:
17856
+ case 2:
17857
+ case 3:
17858
+ case 4:
17859
+ case 6:
17860
+ var$6 = Long_fromInt($backStep.$param3Int);
17861
+ break a;
17862
+ case 1:
17863
+ case 5:
17864
+ case 7:
17865
+ case 8:
17866
+ case 9:
17867
+ break;
17868
+ default:
17869
+ var$6 = Long_ZERO;
17870
+ break a;
17871
+ }
17872
+ var$6 = $backStep.$param3Long;
17656
17873
  }
17657
- if (Long_gt($val, Long_fromInt(10)))
17658
- return jm_BigInteger__init_1(1, $val);
17659
- return jm_BigInteger_SMALL_VALUES.data[Long_lo($val)];
17874
+ 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));
17660
17875
  };
17661
- var jm_BigInteger_abs = ($this) => {
17662
- if ($this.$sign0 < 0)
17663
- $this = jm_BigInteger__init_0(1, $this.$numberLength, $this.$digits);
17664
- return $this;
17876
+ var asr_JsBackStep_create$js_body$_2 = (var$1, var$2, var$3, var$4, var$5, var$6, var$7) => {
17877
+ return { action: var$1, pc: var$2, param1: var$3, param2: var$4, oldValue: var$5, newValue: var$6, isPoke: var$7 };
17665
17878
  };
17666
- var jm_BigInteger_negate = ($this) => {
17667
- let var$1;
17668
- var$1 = $this.$sign0;
17669
- return !var$1 ? $this : jm_BigInteger__init_0(-var$1 | 0, $this.$numberLength, $this.$digits);
17879
+ var asr_JsUndoGroup = $rt_classWithoutFields();
17880
+ var asr_JsUndoGroup_create$js_body$_3 = (var$1, var$2, var$3, var$4) => {
17881
+ return { kind: var$1, pc: var$2, steps: var$3, writes: var$4 };
17670
17882
  };
17671
- var jm_BigInteger_add = ($this, $val) => {
17672
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
17673
- a: {
17674
- var$2 = $this.$sign0;
17675
- var$3 = $val.$sign0;
17676
- if (var$2) {
17677
- if (!var$3)
17678
- $val = $this;
17679
- else {
17680
- var$4 = $this.$numberLength;
17681
- var$5 = $val.$numberLength;
17682
- if ((var$4 + var$5 | 0) == 2) {
17683
- var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
17684
- var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
17685
- if (var$2 != var$3)
17686
- $val = jm_BigInteger_valueOf(var$2 >= 0 ? Long_sub(var$6, var$7) : Long_sub(var$7, var$6));
17687
- else {
17688
- var$6 = Long_add(var$6, var$7);
17689
- var$8 = Long_lo(var$6);
17690
- var$4 = Long_hi(var$6);
17691
- $val = !var$4 ? jm_BigInteger__init_(var$2, var$8) : jm_BigInteger__init_0(var$2, 2, $rt_createIntArrayFromData([var$8, var$4]));
17692
- }
17693
- } else {
17694
- if (var$2 == var$3)
17695
- 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);
17696
- else {
17697
- var$8 = $rt_compare(var$4, var$5);
17698
- var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
17699
- if (!var$8) {
17700
- jm_BigInteger_$callClinit();
17701
- $val = jm_BigInteger_ZERO;
17702
- break a;
17703
- }
17704
- if (var$8 != 1) {
17705
- var$9 = jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
17706
- var$2 = var$3;
17707
- } else
17708
- var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
17709
- }
17710
- var$10 = var$9.data;
17711
- $val = jm_BigInteger__init_0(var$2, var$10.length, var$9);
17712
- jm_BigInteger_cutOffLeadingZeroes($val);
17883
+ var asr_JsRiscV$Body = $rt_classWithoutFields(0);
17884
+ function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0() {
17885
+ let a = this;
17886
+ jl_Object.call(a);
17887
+ a.$_05 = null;
17888
+ a.$_12 = 0;
17889
+ a.$_2 = null;
17890
+ }
17891
+ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run = (var$0) => {
17892
+ let var$1, var$2, var$3, var$4, $ptr, $tmp;
17893
+ $ptr = 0;
17894
+ if ($rt_resuming()) {
17895
+ let $thread = $rt_nativeThread();
17896
+ $ptr = $thread.pop();
17897
+ var$4 = $thread.pop();
17898
+ var$3 = $thread.pop();
17899
+ var$2 = $thread.pop();
17900
+ var$1 = $thread.pop();
17901
+ var$0 = $thread.pop();
17902
+ }
17903
+ main: while (true) {
17904
+ switch ($ptr) {
17905
+ case 0:
17906
+ var$1 = var$0.$_05;
17907
+ var$2 = var$0.$_12;
17908
+ var$3 = var$0.$_2;
17909
+ var$1 = var$1.$main;
17910
+ asr_RARS_requireAssembled(var$1);
17911
+ var$4 = var$1.$main0;
17912
+ $ptr = 1;
17913
+ case 1:
17914
+ $tmp = asr_RISCVprogram_simulate(var$4, var$2, var$3);
17915
+ if ($rt_suspending()) {
17916
+ break main;
17713
17917
  }
17714
- }
17918
+ var$4 = $tmp;
17919
+ var$1.$stopReason = var$4;
17920
+ return var$4.$ordinal0;
17921
+ default:
17922
+ $rt_invalidPointer();
17715
17923
  }
17716
17924
  }
17717
- return $val;
17925
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
17718
17926
  };
17719
- var jm_BigInteger_subtract = ($this, $val) => {
17720
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
17721
- a: {
17722
- var$2 = $this.$sign0;
17723
- var$3 = $val.$sign0;
17724
- if (var$3) {
17725
- if (!var$2)
17726
- $this = jm_BigInteger_negate($val);
17727
- else {
17728
- var$4 = $this.$numberLength;
17729
- var$5 = $val.$numberLength;
17730
- if ((var$4 + var$5 | 0) == 2) {
17731
- var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
17732
- var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
17733
- if (var$2 < 0)
17734
- var$6 = Long_neg(var$6);
17735
- if (var$3 < 0)
17736
- var$7 = Long_neg(var$7);
17737
- $this = jm_BigInteger_valueOf(Long_sub(var$6, var$7));
17738
- } else {
17739
- var$8 = $rt_compare(var$4, var$5);
17740
- var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
17741
- if (var$8 == -1) {
17742
- var$8 = -var$3 | 0;
17743
- 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);
17744
- } else if (var$2 != var$3) {
17745
- var$9 = jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
17746
- var$8 = var$2;
17747
- } else {
17748
- if (!var$8) {
17749
- jm_BigInteger_$callClinit();
17750
- $this = jm_BigInteger_ZERO;
17751
- break a;
17752
- }
17753
- var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
17754
- var$8 = var$2;
17755
- }
17756
- var$10 = var$9.data;
17757
- $this = jm_BigInteger__init_0(var$8, var$10.length, var$9);
17758
- jm_BigInteger_cutOffLeadingZeroes($this);
17927
+ function asr_JsRiscV$simulate$lambda$_12_0() {
17928
+ jl_Object.call(this);
17929
+ this.$_06 = null;
17930
+ }
17931
+ var asr_JsRiscV$simulate$lambda$_12_0_run = (var$0) => {
17932
+ let var$1, var$2, $ptr, $tmp;
17933
+ $ptr = 0;
17934
+ if ($rt_resuming()) {
17935
+ let $thread = $rt_nativeThread();
17936
+ $ptr = $thread.pop();
17937
+ var$2 = $thread.pop();
17938
+ var$1 = $thread.pop();
17939
+ var$0 = $thread.pop();
17940
+ }
17941
+ main: while (true) {
17942
+ switch ($ptr) {
17943
+ case 0:
17944
+ var$1 = var$0.$_06.$main;
17945
+ var$2 = -1;
17946
+ $ptr = 1;
17947
+ case 1:
17948
+ $tmp = asr_RARS_simulate(var$1, var$2);
17949
+ if ($rt_suspending()) {
17950
+ break main;
17759
17951
  }
17760
- }
17952
+ var$1 = $tmp;
17953
+ return var$1.$ordinal0;
17954
+ default:
17955
+ $rt_invalidPointer();
17761
17956
  }
17762
17957
  }
17763
- return $this;
17764
- };
17765
- var jm_BigInteger_shiftRight = ($this, $n) => {
17766
- if ($n && $this.$sign0)
17767
- return $n > 0 ? jm_BitLevel_shiftRight($this, $n) : jm_BitLevel_shiftLeft($this, -$n | 0);
17768
- return $this;
17769
- };
17770
- var jm_BigInteger_shiftLeft = ($this, $n) => {
17771
- if ($n && $this.$sign0)
17772
- return $n > 0 ? jm_BitLevel_shiftLeft($this, $n) : jm_BitLevel_shiftRight($this, -$n | 0);
17773
- return $this;
17958
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
17774
17959
  };
17775
- var jm_BigInteger_bitLength = ($this) => {
17776
- let var$1, var$2, var$3, var$4;
17777
- var$1 = $this.$sign0;
17778
- if (!var$1)
17779
- var$2 = 0;
17780
- else {
17781
- var$3 = $this.$numberLength;
17782
- var$4 = var$3 << 5;
17783
- var$2 = $this.$digits.data[var$3 - 1 | 0];
17784
- if (var$1 < 0 && jm_BigInteger_getFirstNonzeroDigit($this) == ($this.$numberLength - 1 | 0))
17785
- var$2 = var$2 + -1 | 0;
17960
+ function asr_JsCompilationResult() {
17961
+ let a = this;
17962
+ jl_Object.call(a);
17963
+ a.$report = null;
17964
+ a.$errors1 = null;
17965
+ }
17966
+ var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
17967
+ let var$2, var$3, var$4;
17968
+ $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
17969
+ $errorReport = ju_Collection_stream($errorReport.$messages);
17970
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
17971
+ var$2.$_019 = $this;
17972
+ $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
17973
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
17974
+ $errorReport = $errorReport;
17975
+ var$3 = ju_ArrayList__init_();
17976
+ var$4 = $errorReport;
17977
+ while (true) {
17978
+ $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
17979
+ $errorReport.$_024 = var$2;
17980
+ $errorReport.$_19 = var$3;
17981
+ if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
17982
+ break;
17983
+ }
17984
+ $this.$errors1 = var$3;
17985
+ };
17986
+ var asr_JsCompilationResult__init_ = (var_0) => {
17987
+ let var_1 = new asr_JsCompilationResult();
17988
+ asr_JsCompilationResult__init_0(var_1, var_0);
17989
+ return var_1;
17990
+ };
17991
+ var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
17992
+ let var$2;
17993
+ var$1 = ju_Collection_stream(var$1.$errors1);
17994
+ var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
17995
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
17996
+ };
17997
+ var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
17998
+ let var$2;
17999
+ var$1 = var$1.$errors1;
18000
+ var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
18001
+ return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
18002
+ };
18003
+ var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
18004
+ let var$2;
18005
+ var$1 = ju_Collection_stream(var$1.$errors1);
18006
+ var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
18007
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
18008
+ };
18009
+ var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
18010
+ return $rt_ustr(var$1.$report);
18011
+ };
18012
+ function asr_AssemblyException() {
18013
+ jl_Exception.call(this);
18014
+ this.$errs = null;
18015
+ }
18016
+ var asr_AssemblyException__init_0 = ($this, $errs) => {
18017
+ jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
18018
+ $this.$errs = $errs;
18019
+ };
18020
+ var asr_AssemblyException__init_ = (var_0) => {
18021
+ let var_1 = new asr_AssemblyException();
18022
+ asr_AssemblyException__init_0(var_1, var_0);
18023
+ return var_1;
18024
+ };
18025
+ var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
18026
+ var asrrh_FloatingPointRegisterFile_instance = null;
18027
+ var asrrh_FloatingPointRegisterFile_$callClinit = () => {
18028
+ asrrh_FloatingPointRegisterFile_$callClinit = $rt_eraseClinit(asrrh_FloatingPointRegisterFile);
18029
+ asrrh_FloatingPointRegisterFile__clinit_();
18030
+ };
18031
+ var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
18032
+ asrrh_FloatingPointRegisterFile_$callClinit();
18033
+ asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
18034
+ };
18035
+ var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
18036
+ let $lval;
18037
+ asrrh_FloatingPointRegisterFile_$callClinit();
18038
+ $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
18039
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18040
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
18041
+ else
18042
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval), $lval);
18043
+ };
18044
+ var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
18045
+ asrrh_FloatingPointRegisterFile_$callClinit();
18046
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18047
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
18048
+ else
18049
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val), $val);
18050
+ };
18051
+ var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
18052
+ let $lval;
18053
+ asrrh_FloatingPointRegisterFile_$callClinit();
18054
+ $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18055
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18056
+ return 2143289344;
18057
+ return Long_lo($lval);
18058
+ };
18059
+ var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
18060
+ asrrh_FloatingPointRegisterFile_$callClinit();
18061
+ return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18062
+ };
18063
+ var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
18064
+ let $lval;
18065
+ asrrh_FloatingPointRegisterFile_$callClinit();
18066
+ $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
18067
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18068
+ return 2143289344;
18069
+ return Long_lo($lval);
18070
+ };
18071
+ var asrrh_FloatingPointRegisterFile_getRegisters = () => {
18072
+ asrrh_FloatingPointRegisterFile_$callClinit();
18073
+ return asrrh_FloatingPointRegisterFile_instance.$regFile;
18074
+ };
18075
+ var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
18076
+ asrrh_FloatingPointRegisterFile_$callClinit();
18077
+ return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
18078
+ };
18079
+ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
18080
+ let var$1, var$2, var$3;
18081
+ var$1 = new asrrh_RegisterBlock();
18082
+ var$2 = $rt_createArray(asrrh_Register, 32);
18083
+ var$3 = var$2.data;
18084
+ var$3[0] = asrrh_Register__init_($rt_s(543), 0, Long_ZERO);
18085
+ var$3[1] = asrrh_Register__init_($rt_s(544), 1, Long_ZERO);
18086
+ var$3[2] = asrrh_Register__init_($rt_s(545), 2, Long_ZERO);
18087
+ var$3[3] = asrrh_Register__init_($rt_s(546), 3, Long_ZERO);
18088
+ var$3[4] = asrrh_Register__init_($rt_s(547), 4, Long_ZERO);
18089
+ var$3[5] = asrrh_Register__init_($rt_s(548), 5, Long_ZERO);
18090
+ var$3[6] = asrrh_Register__init_($rt_s(549), 6, Long_ZERO);
18091
+ var$3[7] = asrrh_Register__init_($rt_s(550), 7, Long_ZERO);
18092
+ var$3[8] = asrrh_Register__init_($rt_s(551), 8, Long_ZERO);
18093
+ var$3[9] = asrrh_Register__init_($rt_s(552), 9, Long_ZERO);
18094
+ var$3[10] = asrrh_Register__init_($rt_s(553), 10, Long_ZERO);
18095
+ var$3[11] = asrrh_Register__init_($rt_s(554), 11, Long_ZERO);
18096
+ var$3[12] = asrrh_Register__init_($rt_s(555), 12, Long_ZERO);
18097
+ var$3[13] = asrrh_Register__init_($rt_s(556), 13, Long_ZERO);
18098
+ var$3[14] = asrrh_Register__init_($rt_s(557), 14, Long_ZERO);
18099
+ var$3[15] = asrrh_Register__init_($rt_s(558), 15, Long_ZERO);
18100
+ var$3[16] = asrrh_Register__init_($rt_s(559), 16, Long_ZERO);
18101
+ var$3[17] = asrrh_Register__init_($rt_s(560), 17, Long_ZERO);
18102
+ var$3[18] = asrrh_Register__init_($rt_s(561), 18, Long_ZERO);
18103
+ var$3[19] = asrrh_Register__init_($rt_s(562), 19, Long_ZERO);
18104
+ var$3[20] = asrrh_Register__init_($rt_s(563), 20, Long_ZERO);
18105
+ var$3[21] = asrrh_Register__init_($rt_s(564), 21, Long_ZERO);
18106
+ var$3[22] = asrrh_Register__init_($rt_s(565), 22, Long_ZERO);
18107
+ var$3[23] = asrrh_Register__init_($rt_s(566), 23, Long_ZERO);
18108
+ var$3[24] = asrrh_Register__init_($rt_s(567), 24, Long_ZERO);
18109
+ var$3[25] = asrrh_Register__init_($rt_s(568), 25, Long_ZERO);
18110
+ var$3[26] = asrrh_Register__init_($rt_s(569), 26, Long_ZERO);
18111
+ var$3[27] = asrrh_Register__init_($rt_s(570), 27, Long_ZERO);
18112
+ var$3[28] = asrrh_Register__init_($rt_s(571), 28, Long_ZERO);
18113
+ var$3[29] = asrrh_Register__init_($rt_s(572), 29, Long_ZERO);
18114
+ var$3[30] = asrrh_Register__init_($rt_s(573), 30, Long_ZERO);
18115
+ var$3[31] = asrrh_Register__init_($rt_s(574), 31, Long_ZERO);
18116
+ asrrh_RegisterBlock__init_(var$1, 102, var$2);
18117
+ asrrh_FloatingPointRegisterFile_instance = var$1;
18118
+ };
18119
+ function asr_JsRiscV$simulateWithLimit$lambda$_13_0() {
18120
+ let a = this;
18121
+ jl_Object.call(a);
18122
+ a.$_022 = null;
18123
+ a.$_112 = 0;
18124
+ }
18125
+ var asr_JsRiscV$simulateWithLimit$lambda$_13_0_run = (var$0) => {
18126
+ let var$1, var$2, $ptr, $tmp;
18127
+ $ptr = 0;
18128
+ if ($rt_resuming()) {
18129
+ let $thread = $rt_nativeThread();
18130
+ $ptr = $thread.pop();
18131
+ var$2 = $thread.pop();
18132
+ var$1 = $thread.pop();
18133
+ var$0 = $thread.pop();
18134
+ }
18135
+ main: while (true) {
18136
+ switch ($ptr) {
18137
+ case 0:
18138
+ var$1 = var$0.$_022;
18139
+ var$2 = var$0.$_112;
18140
+ var$1 = var$1.$main;
18141
+ $ptr = 1;
18142
+ case 1:
18143
+ $tmp = asr_RARS_simulate(var$1, var$2);
18144
+ if ($rt_suspending()) {
18145
+ break main;
18146
+ }
18147
+ var$1 = $tmp;
18148
+ return var$1.$ordinal0;
18149
+ default:
18150
+ $rt_invalidPointer();
18151
+ }
18152
+ }
18153
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
18154
+ };
18155
+ function jm_BigInteger() {
18156
+ let a = this;
18157
+ jl_Number.call(a);
18158
+ a.$digits = null;
18159
+ a.$numberLength = 0;
18160
+ a.$sign0 = 0;
18161
+ a.$firstNonzeroDigit = 0;
18162
+ a.$hashCode1 = 0;
18163
+ }
18164
+ var jm_BigInteger_ZERO = null;
18165
+ var jm_BigInteger_ONE = null;
18166
+ var jm_BigInteger_TWO = null;
18167
+ var jm_BigInteger_TEN = null;
18168
+ var jm_BigInteger_MINUS_ONE = null;
18169
+ var jm_BigInteger_SMALL_VALUES = null;
18170
+ var jm_BigInteger_TWO_POWS = null;
18171
+ var jm_BigInteger_$callClinit = () => {
18172
+ jm_BigInteger_$callClinit = $rt_eraseClinit(jm_BigInteger);
18173
+ jm_BigInteger__clinit_();
18174
+ };
18175
+ var jm_BigInteger__init_4 = ($this, $sign, $value) => {
18176
+ let var$3;
18177
+ jm_BigInteger_$callClinit();
18178
+ $this.$firstNonzeroDigit = -2;
18179
+ $this.$sign0 = $sign;
18180
+ $this.$numberLength = 1;
18181
+ var$3 = $rt_createIntArray(1);
18182
+ var$3.data[0] = $value;
18183
+ $this.$digits = var$3;
18184
+ };
18185
+ var jm_BigInteger__init_ = (var_0, var_1) => {
18186
+ let var_2 = new jm_BigInteger();
18187
+ jm_BigInteger__init_4(var_2, var_0, var_1);
18188
+ return var_2;
18189
+ };
18190
+ var jm_BigInteger__init_2 = ($this, $sign, $numberLength, $digits) => {
18191
+ jm_BigInteger_$callClinit();
18192
+ $this.$firstNonzeroDigit = -2;
18193
+ $this.$sign0 = $sign;
18194
+ $this.$numberLength = $numberLength;
18195
+ $this.$digits = $digits;
18196
+ };
18197
+ var jm_BigInteger__init_0 = (var_0, var_1, var_2) => {
18198
+ let var_3 = new jm_BigInteger();
18199
+ jm_BigInteger__init_2(var_3, var_0, var_1, var_2);
18200
+ return var_3;
18201
+ };
18202
+ var jm_BigInteger__init_3 = ($this, $sign, $val) => {
18203
+ let var$3;
18204
+ jm_BigInteger_$callClinit();
18205
+ $this.$firstNonzeroDigit = -2;
18206
+ $this.$sign0 = $sign;
18207
+ if (Long_eq(Long_and($val, Long_create(0, 4294967295)), Long_ZERO)) {
18208
+ $this.$numberLength = 1;
18209
+ var$3 = $rt_createIntArray(1);
18210
+ var$3.data[0] = Long_lo($val);
18211
+ $this.$digits = var$3;
18212
+ } else {
18213
+ $this.$numberLength = 2;
18214
+ $this.$digits = $rt_createIntArrayFromData([Long_lo($val), Long_hi($val)]);
18215
+ }
18216
+ };
18217
+ var jm_BigInteger__init_1 = (var_0, var_1) => {
18218
+ let var_2 = new jm_BigInteger();
18219
+ jm_BigInteger__init_3(var_2, var_0, var_1);
18220
+ return var_2;
18221
+ };
18222
+ var jm_BigInteger_valueOf = ($val) => {
18223
+ jm_BigInteger_$callClinit();
18224
+ if (Long_lt($val, Long_ZERO)) {
18225
+ if (Long_eq($val, Long_fromInt(-1)))
18226
+ return jm_BigInteger_MINUS_ONE;
18227
+ return jm_BigInteger__init_1(-1, Long_neg($val));
18228
+ }
18229
+ if (Long_gt($val, Long_fromInt(10)))
18230
+ return jm_BigInteger__init_1(1, $val);
18231
+ return jm_BigInteger_SMALL_VALUES.data[Long_lo($val)];
18232
+ };
18233
+ var jm_BigInteger_abs = ($this) => {
18234
+ if ($this.$sign0 < 0)
18235
+ $this = jm_BigInteger__init_0(1, $this.$numberLength, $this.$digits);
18236
+ return $this;
18237
+ };
18238
+ var jm_BigInteger_negate = ($this) => {
18239
+ let var$1;
18240
+ var$1 = $this.$sign0;
18241
+ return !var$1 ? $this : jm_BigInteger__init_0(-var$1 | 0, $this.$numberLength, $this.$digits);
18242
+ };
18243
+ var jm_BigInteger_add = ($this, $val) => {
18244
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
18245
+ a: {
18246
+ var$2 = $this.$sign0;
18247
+ var$3 = $val.$sign0;
18248
+ if (var$2) {
18249
+ if (!var$3)
18250
+ $val = $this;
18251
+ else {
18252
+ var$4 = $this.$numberLength;
18253
+ var$5 = $val.$numberLength;
18254
+ if ((var$4 + var$5 | 0) == 2) {
18255
+ var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
18256
+ var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
18257
+ if (var$2 != var$3)
18258
+ $val = jm_BigInteger_valueOf(var$2 >= 0 ? Long_sub(var$6, var$7) : Long_sub(var$7, var$6));
18259
+ else {
18260
+ var$6 = Long_add(var$6, var$7);
18261
+ var$8 = Long_lo(var$6);
18262
+ var$4 = Long_hi(var$6);
18263
+ $val = !var$4 ? jm_BigInteger__init_(var$2, var$8) : jm_BigInteger__init_0(var$2, 2, $rt_createIntArrayFromData([var$8, var$4]));
18264
+ }
18265
+ } else {
18266
+ if (var$2 == var$3)
18267
+ 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);
18268
+ else {
18269
+ var$8 = $rt_compare(var$4, var$5);
18270
+ var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
18271
+ if (!var$8) {
18272
+ jm_BigInteger_$callClinit();
18273
+ $val = jm_BigInteger_ZERO;
18274
+ break a;
18275
+ }
18276
+ if (var$8 != 1) {
18277
+ var$9 = jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
18278
+ var$2 = var$3;
18279
+ } else
18280
+ var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
18281
+ }
18282
+ var$10 = var$9.data;
18283
+ $val = jm_BigInteger__init_0(var$2, var$10.length, var$9);
18284
+ jm_BigInteger_cutOffLeadingZeroes($val);
18285
+ }
18286
+ }
18287
+ }
18288
+ }
18289
+ return $val;
18290
+ };
18291
+ var jm_BigInteger_subtract = ($this, $val) => {
18292
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
18293
+ a: {
18294
+ var$2 = $this.$sign0;
18295
+ var$3 = $val.$sign0;
18296
+ if (var$3) {
18297
+ if (!var$2)
18298
+ $this = jm_BigInteger_negate($val);
18299
+ else {
18300
+ var$4 = $this.$numberLength;
18301
+ var$5 = $val.$numberLength;
18302
+ if ((var$4 + var$5 | 0) == 2) {
18303
+ var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
18304
+ var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
18305
+ if (var$2 < 0)
18306
+ var$6 = Long_neg(var$6);
18307
+ if (var$3 < 0)
18308
+ var$7 = Long_neg(var$7);
18309
+ $this = jm_BigInteger_valueOf(Long_sub(var$6, var$7));
18310
+ } else {
18311
+ var$8 = $rt_compare(var$4, var$5);
18312
+ var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
18313
+ if (var$8 == -1) {
18314
+ var$8 = -var$3 | 0;
18315
+ 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);
18316
+ } else if (var$2 != var$3) {
18317
+ var$9 = jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
18318
+ var$8 = var$2;
18319
+ } else {
18320
+ if (!var$8) {
18321
+ jm_BigInteger_$callClinit();
18322
+ $this = jm_BigInteger_ZERO;
18323
+ break a;
18324
+ }
18325
+ var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
18326
+ var$8 = var$2;
18327
+ }
18328
+ var$10 = var$9.data;
18329
+ $this = jm_BigInteger__init_0(var$8, var$10.length, var$9);
18330
+ jm_BigInteger_cutOffLeadingZeroes($this);
18331
+ }
18332
+ }
18333
+ }
18334
+ }
18335
+ return $this;
18336
+ };
18337
+ var jm_BigInteger_shiftRight = ($this, $n) => {
18338
+ if ($n && $this.$sign0)
18339
+ return $n > 0 ? jm_BitLevel_shiftRight($this, $n) : jm_BitLevel_shiftLeft($this, -$n | 0);
18340
+ return $this;
18341
+ };
18342
+ var jm_BigInteger_shiftLeft = ($this, $n) => {
18343
+ if ($n && $this.$sign0)
18344
+ return $n > 0 ? jm_BitLevel_shiftLeft($this, $n) : jm_BitLevel_shiftRight($this, -$n | 0);
18345
+ return $this;
18346
+ };
18347
+ var jm_BigInteger_bitLength = ($this) => {
18348
+ let var$1, var$2, var$3, var$4;
18349
+ var$1 = $this.$sign0;
18350
+ if (!var$1)
18351
+ var$2 = 0;
18352
+ else {
18353
+ var$3 = $this.$numberLength;
18354
+ var$4 = var$3 << 5;
18355
+ var$2 = $this.$digits.data[var$3 - 1 | 0];
18356
+ if (var$1 < 0 && jm_BigInteger_getFirstNonzeroDigit($this) == ($this.$numberLength - 1 | 0))
18357
+ var$2 = var$2 + -1 | 0;
17786
18358
  var$2 = var$4 - jl_Integer_numberOfLeadingZeros(var$2) | 0;
17787
18359
  }
17788
18360
  return var$2;
@@ -17793,7 +18365,7 @@ var jm_BigInteger_testBit = ($this, $n) => {
17793
18365
  return !($this.$digits.data[0] & 1) ? 0 : 1;
17794
18366
  if ($n < 0) {
17795
18367
  var$2 = new jl_ArithmeticException();
17796
- jl_Throwable__init_0(var$2, $rt_s(543));
18368
+ jl_Throwable__init_0(var$2, $rt_s(575));
17797
18369
  $rt_throw(var$2);
17798
18370
  }
17799
18371
  $intCount = $n >> 5;
@@ -17821,7 +18393,7 @@ var jm_BigInteger_intValueExact = ($this) => {
17821
18393
  if ($this.$numberLength <= 1 && jm_BigInteger_bitLength($this) <= 31)
17822
18394
  return $rt_imul($this.$sign0, $this.$digits.data[0]);
17823
18395
  var$1 = new jl_ArithmeticException();
17824
- jl_Throwable__init_0(var$1, $rt_s(544));
18396
+ jl_Throwable__init_0(var$1, $rt_s(576));
17825
18397
  $rt_throw(var$1);
17826
18398
  };
17827
18399
  var jm_BigInteger_longValue = ($this) => {
@@ -17839,7 +18411,7 @@ var jm_BigInteger_longValueExact = ($this) => {
17839
18411
  if ($this.$numberLength <= 2 && jm_BigInteger_bitLength($this) <= 63)
17840
18412
  return jm_BigInteger_longValue($this);
17841
18413
  var$1 = new jl_ArithmeticException();
17842
- jl_Throwable__init_0(var$1, $rt_s(545));
18414
+ jl_Throwable__init_0(var$1, $rt_s(577));
17843
18415
  $rt_throw(var$1);
17844
18416
  };
17845
18417
  var jm_BigInteger_compareTo = ($this, $val) => {
@@ -17987,730 +18559,44 @@ var jm_BigInteger__clinit_ = () => {
17987
18559
  $i = $i + 1 | 0;
17988
18560
  }
17989
18561
  };
17990
- var asr_JsRiscV$Body = $rt_classWithoutFields(0);
17991
- function asr_JsRiscV$simulate$lambda$_12_0() {
17992
- jl_Object.call(this);
17993
- this.$_06 = null;
17994
- }
17995
- var asr_JsRiscV$simulate$lambda$_12_0_run = (var$0) => {
17996
- let var$1, var$2, $ptr, $tmp;
17997
- $ptr = 0;
17998
- if ($rt_resuming()) {
17999
- let $thread = $rt_nativeThread();
18000
- $ptr = $thread.pop();
18001
- var$2 = $thread.pop();
18002
- var$1 = $thread.pop();
18003
- var$0 = $thread.pop();
18004
- }
18005
- main: while (true) {
18006
- switch ($ptr) {
18007
- case 0:
18008
- var$1 = var$0.$_06.$main;
18009
- var$2 = -1;
18010
- $ptr = 1;
18011
- case 1:
18012
- $tmp = asr_RARS_simulate(var$1, var$2);
18013
- if ($rt_suspending()) {
18014
- break main;
18015
- }
18016
- var$1 = $tmp;
18017
- return var$1.$ordinal0;
18018
- default:
18019
- $rt_invalidPointer();
18020
- }
18021
- }
18022
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
18562
+ var jl_Double = $rt_classWithoutFields(jl_Number);
18563
+ var jl_Double_TYPE = null;
18564
+ var jl_Double_$callClinit = () => {
18565
+ jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
18566
+ jl_Double__clinit_();
18023
18567
  };
18024
- var juf_ToIntFunction = $rt_classWithoutFields(0);
18025
- var asr_JsRiscV$getRegistersValues$lambda$_28_0 = $rt_classWithoutFields();
18026
- function asr_JsProgramStatement() {
18027
- let a = this;
18028
- jl_Object.call(a);
18029
- a.$sourceLine5 = 0;
18030
- a.$sourcePath2 = null;
18031
- a.$address2 = 0;
18032
- a.$binaryStatement0 = 0;
18033
- a.$source2 = null;
18034
- a.$assemblyStatement = null;
18035
- a.$machineStatement0 = null;
18036
- }
18037
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
18038
- let var$2, var$3, var$4, var$5, var$6;
18039
- $this.$sourceLine5 = $programStatement.$sourceLine1;
18040
- $this.$sourcePath2 = $programStatement.$sourcePath;
18041
- $this.$address2 = $programStatement.$textAddress0;
18042
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
18043
- $this.$source2 = $programStatement.$source;
18044
- var$2 = $programStatement.$basicStatementList;
18045
- var$3 = asr_Globals_getSettings();
18046
- asr_Settings$Bool_$callClinit();
18047
- var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
18048
- var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
18049
- var$3 = new jl_StringBuffer();
18050
- jl_AbstractStringBuilder__init_(var$3);
18051
- var$6 = ju_AbstractList_iterator(var$2.$list);
18052
- while (ju_AbstractList$1_hasNext(var$6)) {
18053
- a: {
18054
- var$2 = ju_AbstractList$1_next(var$6);
18055
- switch (var$2.$type3) {
18056
- case 0:
18568
+ var jl_Double_parseDouble = ($string) => {
18569
+ let $start, $end, var$4, var$5, $negative, $c, $mantissa, $exp, $hasOneDigit, $mantissaPos, $negativeExp, $numExp;
18570
+ jl_Double_$callClinit();
18571
+ if (jl_String_isEmpty($string)) {
18572
+ $string = new jl_NumberFormatException();
18573
+ jl_Throwable__init_($string);
18574
+ $rt_throw($string);
18575
+ }
18576
+ $start = 0;
18577
+ $end = $string.$nativeString.length;
18578
+ while (true) {
18579
+ if (jl_String_charAt($string, $start) > 32) {
18580
+ while (true) {
18581
+ var$4 = $end - 1 | 0;
18582
+ if (jl_String_charAt($string, var$4) > 32)
18057
18583
  break;
18058
- case 1:
18059
- if (var$4 == 10) {
18060
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
18061
- break a;
18062
- }
18063
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
18064
- break a;
18065
- case 2:
18066
- if (var$5 == 10) {
18067
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
18068
- break a;
18069
- }
18070
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
18071
- break a;
18072
- case 3:
18073
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
18074
- break a;
18075
- default:
18076
- break a;
18584
+ $end = $end + -1 | 0;
18077
18585
  }
18078
- jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
18079
- }
18080
- }
18081
- $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$3);
18082
- $this.$machineStatement0 = $programStatement.$machineStatement;
18083
- };
18084
- var asr_JsProgramStatement__init_ = (var_0) => {
18085
- let var_1 = new asr_JsProgramStatement();
18086
- asr_JsProgramStatement__init_0(var_1, var_0);
18087
- return var_1;
18088
- };
18089
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
18090
- return var$1.$sourceLine5;
18091
- };
18092
- var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
18093
- return $rt_ustr(var$1.$sourcePath2);
18094
- };
18095
- var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
18096
- return $rt_ustr(var$1.$assemblyStatement);
18097
- };
18098
- var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
18099
- return $rt_ustr(var$1.$source2);
18100
- };
18101
- var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
18102
- return var$1.$address2;
18103
- };
18104
- var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
18105
- return var$1.$binaryStatement0;
18106
- };
18107
- var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
18108
- return $rt_ustr(var$1.$machineStatement0);
18109
- };
18110
- function asr_JsRiscV$step$lambda$_10_0() {
18111
- jl_Object.call(this);
18112
- this.$_014 = null;
18113
- }
18114
- var asr_JsRiscV$step$lambda$_10_0_run = (var$0) => {
18115
- let var$1, var$2, var$3, $ptr, $tmp;
18116
- $ptr = 0;
18117
- if ($rt_resuming()) {
18118
- let $thread = $rt_nativeThread();
18119
- $ptr = $thread.pop();
18120
- var$3 = $thread.pop();
18121
- var$2 = $thread.pop();
18122
- var$1 = $thread.pop();
18123
- var$0 = $thread.pop();
18124
- }
18125
- main: while (true) {
18126
- switch ($ptr) {
18127
- case 0:
18128
- var$1 = var$0.$_014.$main;
18129
- asr_RARS_requireAssembled(var$1);
18130
- var$2 = var$1.$main0;
18131
- var$3 = 1;
18132
- $ptr = 1;
18133
- case 1:
18134
- $tmp = asr_RISCVprogram_simulate0(var$2, var$3);
18135
- if ($rt_suspending()) {
18136
- break main;
18137
- }
18138
- var$2 = $tmp;
18139
- var$1.$stopReason = var$2;
18140
- return var$2.$ordinal0;
18141
- default:
18142
- $rt_invalidPointer();
18143
- }
18144
- }
18145
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
18146
- };
18147
- function asr_JsStackFrame() {
18148
- let a = this;
18149
- jl_Object.call(a);
18150
- a.$pc2 = 0;
18151
- a.$toAddress1 = 0;
18152
- a.$sp = 0;
18153
- a.$fp = 0;
18154
- a.$registers0 = null;
18155
- }
18156
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
18157
- return var$1.$pc2;
18158
- };
18159
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
18160
- return var$1.$toAddress1;
18161
- };
18162
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
18163
- return otji_JS_wrap0(var$1.$registers0);
18164
- };
18165
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
18166
- return var$1.$sp;
18167
- };
18168
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
18169
- return var$1.$fp;
18170
- };
18171
- var ju_Observer = $rt_classWithoutFields(0);
18172
- function asr_JsMemoryObserver() {
18173
- let a = this;
18174
- jl_Object.call(a);
18175
- a.$handle = 0;
18176
- a.$startAddress = 0;
18177
- a.$endAddress = 0;
18178
- a.$onRead = null;
18179
- a.$onWrite = null;
18180
- a.$reportsLength = 0;
18181
- }
18182
- var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
18183
- $this.$handle = $handle;
18184
- $this.$startAddress = $startAddress;
18185
- $this.$endAddress = $endAddress;
18186
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
18187
- $onRead = null;
18188
- $this.$onRead = $onRead;
18189
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
18190
- $onWrite = null;
18191
- $this.$onWrite = $onWrite;
18192
- $this.$reportsLength = $reportsLength;
18193
- };
18194
- var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
18195
- let var_6 = new asr_JsMemoryObserver();
18196
- asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
18197
- return var_6;
18198
- };
18199
- var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
18200
- return var$1 === null || var$1 === void 0;
18201
- };
18202
- function asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0() {
18203
- let a = this;
18204
- jl_Object.call(a);
18205
- a.$_03 = null;
18206
- a.$_10 = null;
18207
- }
18208
- var asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run = (var$0) => {
18209
- let var$1, var$2, var$3, var$4, $ptr, $tmp;
18210
- $ptr = 0;
18211
- if ($rt_resuming()) {
18212
- let $thread = $rt_nativeThread();
18213
- $ptr = $thread.pop();
18214
- var$4 = $thread.pop();
18215
- var$3 = $thread.pop();
18216
- var$2 = $thread.pop();
18217
- var$1 = $thread.pop();
18218
- var$0 = $thread.pop();
18219
- }
18220
- main: while (true) {
18221
- switch ($ptr) {
18222
- case 0:
18223
- var$1 = var$0.$_03;
18224
- var$2 = var$0.$_10;
18225
- var$1 = var$1.$main;
18226
- asr_RARS_requireAssembled(var$1);
18227
- var$3 = var$1.$main0;
18228
- var$4 = -1;
18229
- $ptr = 1;
18230
- case 1:
18231
- $tmp = asr_RISCVprogram_simulate(var$3, var$4, var$2);
18232
- if ($rt_suspending()) {
18233
- break main;
18234
- }
18235
- var$3 = $tmp;
18236
- var$1.$stopReason = var$3;
18237
- return var$3.$ordinal0;
18238
- default:
18239
- $rt_invalidPointer();
18240
- }
18241
- }
18242
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
18243
- };
18244
- var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
18245
- var asrrh_FloatingPointRegisterFile_instance = null;
18246
- var asrrh_FloatingPointRegisterFile_$callClinit = () => {
18247
- asrrh_FloatingPointRegisterFile_$callClinit = $rt_eraseClinit(asrrh_FloatingPointRegisterFile);
18248
- asrrh_FloatingPointRegisterFile__clinit_();
18249
- };
18250
- var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
18251
- asrrh_FloatingPointRegisterFile_$callClinit();
18252
- asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
18253
- };
18254
- var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
18255
- let $lval;
18256
- asrrh_FloatingPointRegisterFile_$callClinit();
18257
- $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
18258
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18259
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
18260
- else
18261
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval), $lval);
18262
- };
18263
- var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
18264
- asrrh_FloatingPointRegisterFile_$callClinit();
18265
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
18266
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
18267
- else
18268
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val), $val);
18269
- };
18270
- var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
18271
- let $lval;
18272
- asrrh_FloatingPointRegisterFile_$callClinit();
18273
- $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18274
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18275
- return 2143289344;
18276
- return Long_lo($lval);
18277
- };
18278
- var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
18279
- asrrh_FloatingPointRegisterFile_$callClinit();
18280
- return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
18281
- };
18282
- var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
18283
- let $lval;
18284
- asrrh_FloatingPointRegisterFile_$callClinit();
18285
- $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
18286
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
18287
- return 2143289344;
18288
- return Long_lo($lval);
18289
- };
18290
- var asrrh_FloatingPointRegisterFile_getRegisters = () => {
18291
- asrrh_FloatingPointRegisterFile_$callClinit();
18292
- return asrrh_FloatingPointRegisterFile_instance.$regFile;
18293
- };
18294
- var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
18295
- asrrh_FloatingPointRegisterFile_$callClinit();
18296
- return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
18297
- };
18298
- var asrrh_FloatingPointRegisterFile__clinit_ = () => {
18299
- let var$1, var$2, var$3;
18300
- var$1 = new asrrh_RegisterBlock();
18301
- var$2 = $rt_createArray(asrrh_Register, 32);
18302
- var$3 = var$2.data;
18303
- var$3[0] = asrrh_Register__init_($rt_s(546), 0, Long_ZERO);
18304
- var$3[1] = asrrh_Register__init_($rt_s(547), 1, Long_ZERO);
18305
- var$3[2] = asrrh_Register__init_($rt_s(548), 2, Long_ZERO);
18306
- var$3[3] = asrrh_Register__init_($rt_s(549), 3, Long_ZERO);
18307
- var$3[4] = asrrh_Register__init_($rt_s(550), 4, Long_ZERO);
18308
- var$3[5] = asrrh_Register__init_($rt_s(551), 5, Long_ZERO);
18309
- var$3[6] = asrrh_Register__init_($rt_s(552), 6, Long_ZERO);
18310
- var$3[7] = asrrh_Register__init_($rt_s(553), 7, Long_ZERO);
18311
- var$3[8] = asrrh_Register__init_($rt_s(554), 8, Long_ZERO);
18312
- var$3[9] = asrrh_Register__init_($rt_s(555), 9, Long_ZERO);
18313
- var$3[10] = asrrh_Register__init_($rt_s(556), 10, Long_ZERO);
18314
- var$3[11] = asrrh_Register__init_($rt_s(557), 11, Long_ZERO);
18315
- var$3[12] = asrrh_Register__init_($rt_s(558), 12, Long_ZERO);
18316
- var$3[13] = asrrh_Register__init_($rt_s(559), 13, Long_ZERO);
18317
- var$3[14] = asrrh_Register__init_($rt_s(560), 14, Long_ZERO);
18318
- var$3[15] = asrrh_Register__init_($rt_s(561), 15, Long_ZERO);
18319
- var$3[16] = asrrh_Register__init_($rt_s(562), 16, Long_ZERO);
18320
- var$3[17] = asrrh_Register__init_($rt_s(563), 17, Long_ZERO);
18321
- var$3[18] = asrrh_Register__init_($rt_s(564), 18, Long_ZERO);
18322
- var$3[19] = asrrh_Register__init_($rt_s(565), 19, Long_ZERO);
18323
- var$3[20] = asrrh_Register__init_($rt_s(566), 20, Long_ZERO);
18324
- var$3[21] = asrrh_Register__init_($rt_s(567), 21, Long_ZERO);
18325
- var$3[22] = asrrh_Register__init_($rt_s(568), 22, Long_ZERO);
18326
- var$3[23] = asrrh_Register__init_($rt_s(569), 23, Long_ZERO);
18327
- var$3[24] = asrrh_Register__init_($rt_s(570), 24, Long_ZERO);
18328
- var$3[25] = asrrh_Register__init_($rt_s(571), 25, Long_ZERO);
18329
- var$3[26] = asrrh_Register__init_($rt_s(572), 26, Long_ZERO);
18330
- var$3[27] = asrrh_Register__init_($rt_s(573), 27, Long_ZERO);
18331
- var$3[28] = asrrh_Register__init_($rt_s(574), 28, Long_ZERO);
18332
- var$3[29] = asrrh_Register__init_($rt_s(575), 29, Long_ZERO);
18333
- var$3[30] = asrrh_Register__init_($rt_s(576), 30, Long_ZERO);
18334
- var$3[31] = asrrh_Register__init_($rt_s(577), 31, Long_ZERO);
18335
- asrrh_RegisterBlock__init_(var$1, 102, var$2);
18336
- asrrh_FloatingPointRegisterFile_instance = var$1;
18337
- };
18338
- function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0() {
18339
- let a = this;
18340
- jl_Object.call(a);
18341
- a.$_05 = null;
18342
- a.$_12 = 0;
18343
- a.$_2 = null;
18344
- }
18345
- var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run = (var$0) => {
18346
- let var$1, var$2, var$3, var$4, $ptr, $tmp;
18347
- $ptr = 0;
18348
- if ($rt_resuming()) {
18349
- let $thread = $rt_nativeThread();
18350
- $ptr = $thread.pop();
18351
- var$4 = $thread.pop();
18352
- var$3 = $thread.pop();
18353
- var$2 = $thread.pop();
18354
- var$1 = $thread.pop();
18355
- var$0 = $thread.pop();
18356
- }
18357
- main: while (true) {
18358
- switch ($ptr) {
18359
- case 0:
18360
- var$1 = var$0.$_05;
18361
- var$2 = var$0.$_12;
18362
- var$3 = var$0.$_2;
18363
- var$1 = var$1.$main;
18364
- asr_RARS_requireAssembled(var$1);
18365
- var$4 = var$1.$main0;
18366
- $ptr = 1;
18367
- case 1:
18368
- $tmp = asr_RISCVprogram_simulate(var$4, var$2, var$3);
18369
- if ($rt_suspending()) {
18370
- break main;
18371
- }
18372
- var$4 = $tmp;
18373
- var$1.$stopReason = var$4;
18374
- return var$4.$ordinal0;
18375
- default:
18376
- $rt_invalidPointer();
18377
- }
18378
- }
18379
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
18380
- };
18381
- function asr_JsCompilationResult() {
18382
- let a = this;
18383
- jl_Object.call(a);
18384
- a.$report = null;
18385
- a.$errors1 = null;
18386
- }
18387
- var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
18388
- let var$2, var$3, var$4;
18389
- $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
18390
- $errorReport = ju_Collection_stream($errorReport.$messages);
18391
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
18392
- var$2.$_019 = $this;
18393
- $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
18394
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
18395
- $errorReport = $errorReport;
18396
- var$3 = ju_ArrayList__init_();
18397
- var$4 = $errorReport;
18398
- while (true) {
18399
- $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
18400
- $errorReport.$_024 = var$2;
18401
- $errorReport.$_19 = var$3;
18402
- if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
18403
- break;
18404
- }
18405
- $this.$errors1 = var$3;
18406
- };
18407
- var asr_JsCompilationResult__init_ = (var_0) => {
18408
- let var_1 = new asr_JsCompilationResult();
18409
- asr_JsCompilationResult__init_0(var_1, var_0);
18410
- return var_1;
18411
- };
18412
- var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
18413
- let var$2;
18414
- var$1 = ju_Collection_stream(var$1.$errors1);
18415
- var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
18416
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
18417
- };
18418
- var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
18419
- let var$2;
18420
- var$1 = var$1.$errors1;
18421
- var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
18422
- return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
18423
- };
18424
- var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
18425
- let var$2;
18426
- var$1 = ju_Collection_stream(var$1.$errors1);
18427
- var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
18428
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
18429
- };
18430
- var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
18431
- return $rt_ustr(var$1.$report);
18432
- };
18433
- function asr_AssemblyException() {
18434
- jl_Exception.call(this);
18435
- this.$errs = null;
18436
- }
18437
- var asr_AssemblyException__init_0 = ($this, $errs) => {
18438
- jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
18439
- $this.$errs = $errs;
18440
- };
18441
- var asr_AssemblyException__init_ = (var_0) => {
18442
- let var_1 = new asr_AssemblyException();
18443
- asr_AssemblyException__init_0(var_1, var_0);
18444
- return var_1;
18445
- };
18446
- function asr_JsRiscV$simulateWithLimit$lambda$_13_0() {
18447
- let a = this;
18448
- jl_Object.call(a);
18449
- a.$_022 = null;
18450
- a.$_112 = 0;
18451
- }
18452
- var asr_JsRiscV$simulateWithLimit$lambda$_13_0_run = (var$0) => {
18453
- let var$1, var$2, $ptr, $tmp;
18454
- $ptr = 0;
18455
- if ($rt_resuming()) {
18456
- let $thread = $rt_nativeThread();
18457
- $ptr = $thread.pop();
18458
- var$2 = $thread.pop();
18459
- var$1 = $thread.pop();
18460
- var$0 = $thread.pop();
18461
- }
18462
- main: while (true) {
18463
- switch ($ptr) {
18464
- case 0:
18465
- var$1 = var$0.$_022;
18466
- var$2 = var$0.$_112;
18467
- var$1 = var$1.$main;
18468
- $ptr = 1;
18469
- case 1:
18470
- $tmp = asr_RARS_simulate(var$1, var$2);
18471
- if ($rt_suspending()) {
18472
- break main;
18473
- }
18474
- var$1 = $tmp;
18475
- return var$1.$ordinal0;
18476
- default:
18477
- $rt_invalidPointer();
18478
- }
18479
- }
18480
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
18481
- };
18482
- var otjc_JSArrayReader = $rt_classWithoutFields(0);
18483
- var otjc_JSArray = $rt_classWithoutFields();
18484
- var otjc_JSArray_of = ($items) => {
18485
- let var$2, $array, $i, var$5;
18486
- $items = $items.data;
18487
- var$2 = $items.length;
18488
- $array = new Array(var$2);
18489
- $i = 0;
18490
- while ($i < var$2) {
18491
- var$5 = $items[$i];
18492
- $array[$i] = otji_JSWrapper_javaToJs(var$5);
18493
- $i = $i + 1 | 0;
18494
- }
18495
- return $array;
18496
- };
18497
- var asr_JsBackStep = $rt_classWithoutFields();
18498
- var asr_JsBackStep_of = ($backStep) => {
18499
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
18500
- var$2 = $backStep.$action;
18501
- var$3 = var$2 === null ? -1 : var$2.$ordinal0;
18502
- var$4 = $backStep.$pc1;
18503
- var$5 = $backStep.$param1;
18504
- var$6 = $backStep.$param2;
18505
- var$7 = Long_lo(var$6);
18506
- asrs_BackStepper$Action_$callClinit();
18507
- if (var$2 === asrs_BackStepper$Action_PC_RESTORE)
18508
- var$6 = Long_fromInt(var$5);
18509
- a: {
18510
- var$8 = jl_Long_toString(var$6);
18511
- switch ($backStep.$action.$ordinal0) {
18512
- case 0:
18513
- case 2:
18514
- case 3:
18515
- case 4:
18516
- case 6:
18517
- var$6 = Long_fromInt($backStep.$param3Int);
18518
- break a;
18519
- case 1:
18520
- case 5:
18521
- case 7:
18522
- case 8:
18523
- case 9:
18524
- break;
18525
- default:
18526
- var$6 = Long_ZERO;
18527
- break a;
18528
- }
18529
- var$6 = $backStep.$param3Long;
18530
- }
18531
- 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));
18532
- };
18533
- var asr_JsBackStep_create$js_body$_2 = (var$1, var$2, var$3, var$4, var$5, var$6, var$7) => {
18534
- return { action: var$1, pc: var$2, param1: var$3, param2: var$4, oldValue: var$5, newValue: var$6, isPoke: var$7 };
18535
- };
18536
- function asrs_BackStepper() {
18537
- let a = this;
18538
- jl_Object.call(a);
18539
- a.$lastStatementPc = 0;
18540
- a.$lastStatement = null;
18541
- a.$engaged = 0;
18542
- a.$backSteps = null;
18543
- a.$pokeGroup = 0;
18544
- a.$pokeRestores = null;
18545
- }
18546
- var asrs_BackStepper_nextPokeGroup = 0;
18547
- var asrs_BackStepper_$callClinit = () => {
18548
- asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
18549
- asrs_BackStepper__clinit_();
18550
- };
18551
- var asrs_BackStepper_applyRestore = (var$1, var$2, var$3) => {
18552
- let var$4, var$5, var$6, var$7;
18553
- asrs_BackStepper_$callClinit();
18554
- a: {
18555
- switch (var$1.$ordinal0) {
18556
- case 0:
18557
- asr_Globals_$callClinit();
18558
- var$1 = asr_Globals_memory;
18559
- var$4 = Long_lo(var$3);
18560
- var$5 = asrrh_Memory_storeRawWord(var$1, var$2, var$4);
18561
- asrrh_Memory_notifyAnyObservers(var$1, 1, var$2, 4, var$4);
18562
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
18563
- var$6 = asr_Globals_program.$backStepper;
18564
- var$7 = var$6.$backSteps;
18565
- asrs_BackStepper$Action_$callClinit();
18566
- 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);
18567
- }
18568
- break a;
18569
- case 1:
18570
- asr_Globals_$callClinit();
18571
- asrrh_Memory_setDoubleWord(asr_Globals_memory, var$2, var$3);
18572
- break a;
18573
- case 2:
18574
- asr_Globals_$callClinit();
18575
- asrrh_Memory_setWord(asr_Globals_memory, var$2, Long_lo(var$3));
18576
- break a;
18577
- case 3:
18578
- asr_Globals_$callClinit();
18579
- asrrh_Memory_setHalf(asr_Globals_memory, var$2, Long_lo(var$3));
18580
- break a;
18581
- case 4:
18582
- asr_Globals_$callClinit();
18583
- asrrh_Memory_setByte(asr_Globals_memory, var$2, Long_lo(var$3));
18584
- break a;
18585
- case 5:
18586
- asrrh_RegisterFile_updateRegister(var$2, var$3);
18587
- break a;
18588
- case 6:
18589
- asrrh_RegisterFile_setProgramCounter(var$2);
18590
- break a;
18591
- case 7:
18592
- asrrh_ControlAndStatusRegisterFile_updateRegister0(var$2, var$3);
18593
- break a;
18594
- case 8:
18595
- asrrh_ControlAndStatusRegisterFile_$callClinit();
18596
- asrrh_ControlAndStatusRegisterFile_settleCounters();
18597
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, var$2), var$3);
18598
- break a;
18599
- case 9:
18600
- asrrh_FloatingPointRegisterFile_updateRegisterLong(var$2, var$3);
18601
- break a;
18602
- case 10:
18603
- break;
18604
- case 11:
18605
- asrrh_ControlAndStatusRegisterFile_$callClinit();
18606
- var$2 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
18607
- if (var$2 > 0)
18608
- asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = var$2 - 1 | 0;
18609
- else {
18610
- var$1 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(494));
18611
- var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(495));
18612
- asrrh_Register_setValueBackdoor(var$1, Long_sub(var$1.$getValueNoNotify(), Long_fromInt(1)));
18613
- asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
18614
- }
18615
- break a;
18616
- case 12:
18617
- asrrh_ControlAndStatusRegisterFile_$callClinit();
18618
- asrrh_ControlAndStatusRegisterFile_settleCounters();
18619
- var$1 = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, var$2);
18620
- if (var$1 !== null)
18621
- var$1.$setValue(var$3);
18622
- break a;
18623
- case 13:
18624
- break a;
18625
- default:
18626
- break a;
18627
- }
18628
- }
18629
- };
18630
- var asrs_BackStepper_sameGroup = ($one, $other) => {
18631
- asrs_BackStepper_$callClinit();
18632
- if (!asrs_BackStepper$BackStep_isPoke($one) && !asrs_BackStepper$BackStep_isPoke($other))
18633
- return $one.$ps !== $other.$ps ? 0 : 1;
18634
- return 0;
18635
- };
18636
- var asrs_BackStepper_pc = ($this) => {
18637
- return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
18638
- };
18639
- var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
18640
- let var$4;
18641
- var$4 = $this.$backSteps;
18642
- asrs_BackStepper$Action_$callClinit();
18643
- asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
18644
- return $value;
18645
- };
18646
- var asrs_BackStepper_addDoNothing = ($this, $pc) => {
18647
- let var$2;
18648
- if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc)) {
18649
- var$2 = $this.$backSteps;
18650
- asrs_BackStepper$Action_$callClinit();
18651
- asrs_BackStepper$BackstepStack_push0(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
18652
- }
18653
- };
18654
- var asrs_BackStepper__clinit_ = () => {
18655
- asrs_BackStepper_nextPokeGroup = -2;
18656
- };
18657
- var asr_JsUndoGroup = $rt_classWithoutFields();
18658
- var asr_JsUndoGroup_create$js_body$_3 = (var$1, var$2, var$3, var$4) => {
18659
- return { kind: var$1, pc: var$2, steps: var$3, writes: var$4 };
18660
- };
18661
- var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
18662
- function asr_JsRiscV$PokeRecord() {
18663
- let a = this;
18664
- jl_Object.call(a);
18665
- a.$group0 = 0;
18666
- a.$writes = null;
18667
- }
18668
- function asr_JsRiscV$PokeJournal() {
18669
- let a = this;
18670
- jl_Object.call(a);
18671
- a.$group1 = 0;
18672
- a.$registers = null;
18673
- a.$registersByName = null;
18674
- a.$memoryOldBytes = null;
18675
- }
18676
- var jl_Double = $rt_classWithoutFields(jl_Number);
18677
- var jl_Double_TYPE = null;
18678
- var jl_Double_$callClinit = () => {
18679
- jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
18680
- jl_Double__clinit_();
18681
- };
18682
- var jl_Double_parseDouble = (var$1) => {
18683
- let var$2, var$3, var$4, var$5, $negative, $c, $mantissa, $exp, $hasOneDigit, $mantissaPos, $negativeExp, $numExp;
18684
- jl_Double_$callClinit();
18685
- if (jl_String_isEmpty(var$1)) {
18686
- var$1 = new jl_NumberFormatException();
18687
- jl_Throwable__init_(var$1);
18688
- $rt_throw(var$1);
18689
- }
18690
- var$2 = 0;
18691
- var$3 = var$1.$nativeString.length;
18692
- while (true) {
18693
- if (jl_String_charAt(var$1, var$2) > 32) {
18694
- while (true) {
18695
- var$4 = var$3 - 1 | 0;
18696
- if (jl_String_charAt(var$1, var$4) > 32)
18697
- break;
18698
- var$3 = var$3 + -1 | 0;
18699
- }
18700
- 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;
18586
+ 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;
18701
18587
  $negative = 0;
18702
- if (jl_String_charAt(var$1, var$2) == 45) {
18703
- var$2 = var$2 + 1 | 0;
18588
+ if (jl_String_charAt($string, $start) == 45) {
18589
+ $start = $start + 1 | 0;
18704
18590
  $negative = 1;
18705
- } else if (jl_String_charAt(var$1, var$2) == 43)
18706
- var$2 = var$2 + 1 | 0;
18707
- if (var$2 == var$5) {
18708
- var$1 = new jl_NumberFormatException();
18709
- jl_Throwable__init_(var$1);
18710
- $rt_throw(var$1);
18591
+ } else if (jl_String_charAt($string, $start) == 43)
18592
+ $start = $start + 1 | 0;
18593
+ if ($start == var$5) {
18594
+ $string = new jl_NumberFormatException();
18595
+ jl_Throwable__init_($string);
18596
+ $rt_throw($string);
18711
18597
  }
18712
18598
  a: {
18713
- $c = jl_String_charAt(var$1, var$2);
18599
+ $c = jl_String_charAt($string, $start);
18714
18600
  $mantissa = Long_ZERO;
18715
18601
  $exp = -1;
18716
18602
  $hasOneDigit = 0;
@@ -18719,14 +18605,14 @@ var jl_Double_parseDouble = (var$1) => {
18719
18605
  $hasOneDigit = 1;
18720
18606
  if ($c >= 48 && $c <= 57) {
18721
18607
  b: {
18722
- while (var$2 < var$5) {
18723
- if (jl_String_charAt(var$1, var$2) != 48)
18608
+ while ($start < var$5) {
18609
+ if (jl_String_charAt($string, $start) != 48)
18724
18610
  break b;
18725
- var$2 = var$2 + 1 | 0;
18611
+ $start = $start + 1 | 0;
18726
18612
  }
18727
18613
  }
18728
- while (var$2 < var$5) {
18729
- var$4 = jl_String_charAt(var$1, var$2);
18614
+ while ($start < var$5) {
18615
+ var$4 = jl_String_charAt($string, $start);
18730
18616
  if (var$4 < 48)
18731
18617
  break a;
18732
18618
  if (var$4 > 57)
@@ -18736,77 +18622,77 @@ var jl_Double_parseDouble = (var$1) => {
18736
18622
  $mantissaPos = jl_Long_divideUnsigned($mantissaPos, Long_fromInt(10));
18737
18623
  }
18738
18624
  $exp = $exp + 1 | 0;
18739
- var$2 = var$2 + 1 | 0;
18625
+ $start = $start + 1 | 0;
18740
18626
  }
18741
18627
  } else {
18742
- if ($c == 73 && (var$3 - var$2 | 0) == 8 && jl_String_regionMatches(var$1, 0, var$2, $rt_s(578), 0, 8))
18628
+ if ($c == 73 && ($end - $start | 0) == 8 && jl_String_regionMatches($string, 0, $start, $rt_s(578), 0, 8))
18743
18629
  return !$negative ? Infinity : -Infinity;
18744
- if ($c == 78 && (var$3 - var$2 | 0) == 3 && jl_String_regionMatches(var$1, 0, var$2, $rt_s(579), 0, 3))
18630
+ if ($c == 78 && ($end - $start | 0) == 3 && jl_String_regionMatches($string, 0, $start, $rt_s(579), 0, 3))
18745
18631
  return NaN;
18746
- var$1 = new jl_NumberFormatException();
18747
- jl_Throwable__init_(var$1);
18748
- $rt_throw(var$1);
18632
+ $string = new jl_NumberFormatException();
18633
+ jl_Throwable__init_($string);
18634
+ $rt_throw($string);
18749
18635
  }
18750
18636
  }
18751
18637
  }
18752
- if (var$2 < var$5 && jl_String_charAt(var$1, var$2) == 46) {
18753
- var$2 = var$2 + 1 | 0;
18638
+ if ($start < var$5 && jl_String_charAt($string, $start) == 46) {
18639
+ $start = $start + 1 | 0;
18754
18640
  c: {
18755
18641
  while (true) {
18756
- if (var$2 >= var$5)
18642
+ if ($start >= var$5)
18757
18643
  break c;
18758
- var$3 = jl_String_charAt(var$1, var$2);
18759
- var$4 = $rt_compare(var$3, 48);
18644
+ $end = jl_String_charAt($string, $start);
18645
+ var$4 = $rt_compare($end, 48);
18760
18646
  if (var$4 < 0)
18761
18647
  break c;
18762
- if (var$3 > 57)
18648
+ if ($end > 57)
18763
18649
  break;
18764
18650
  if (Long_eq($mantissa, Long_ZERO) && !var$4)
18765
18651
  $exp = $exp + -1 | 0;
18766
18652
  else if (Long_gt($mantissaPos, Long_ZERO)) {
18767
- $mantissa = Long_add($mantissa, Long_mul($mantissaPos, Long_fromInt(var$3 - 48 | 0)));
18653
+ $mantissa = Long_add($mantissa, Long_mul($mantissaPos, Long_fromInt($end - 48 | 0)));
18768
18654
  $mantissaPos = jl_Long_divideUnsigned($mantissaPos, Long_fromInt(10));
18769
18655
  }
18770
- var$2 = var$2 + 1 | 0;
18656
+ $start = $start + 1 | 0;
18771
18657
  $hasOneDigit = 1;
18772
18658
  }
18773
18659
  }
18774
18660
  if (!$hasOneDigit) {
18775
- var$1 = new jl_NumberFormatException();
18776
- jl_IllegalArgumentException__init_(var$1);
18777
- $rt_throw(var$1);
18661
+ $string = new jl_NumberFormatException();
18662
+ jl_IllegalArgumentException__init_($string);
18663
+ $rt_throw($string);
18778
18664
  }
18779
18665
  }
18780
- if (var$2 < var$5) {
18781
- var$3 = jl_String_charAt(var$1, var$2);
18782
- if (var$3 != 101 && var$3 != 69)
18666
+ if ($start < var$5) {
18667
+ $end = jl_String_charAt($string, $start);
18668
+ if ($end != 101 && $end != 69)
18783
18669
  $rt_throw(jl_NumberFormatException__init_());
18784
- var$3 = var$2 + 1 | 0;
18670
+ $end = $start + 1 | 0;
18785
18671
  $negativeExp = 0;
18786
- if (var$3 == var$5)
18672
+ if ($end == var$5)
18787
18673
  $rt_throw(jl_NumberFormatException__init_());
18788
- if (jl_String_charAt(var$1, var$3) == 45) {
18789
- var$3 = var$3 + 1 | 0;
18674
+ if (jl_String_charAt($string, $end) == 45) {
18675
+ $end = $end + 1 | 0;
18790
18676
  $negativeExp = 1;
18791
- } else if (jl_String_charAt(var$1, var$3) == 43)
18792
- var$3 = var$3 + 1 | 0;
18677
+ } else if (jl_String_charAt($string, $end) == 43)
18678
+ $end = $end + 1 | 0;
18793
18679
  $numExp = 0;
18794
- var$2 = 0;
18680
+ $start = 0;
18795
18681
  d: {
18796
18682
  while (true) {
18797
- if (var$3 >= var$5)
18683
+ if ($end >= var$5)
18798
18684
  break d;
18799
- $c = jl_String_charAt(var$1, var$3);
18685
+ $c = jl_String_charAt($string, $end);
18800
18686
  if ($c < 48)
18801
18687
  break d;
18802
18688
  if ($c > 57)
18803
18689
  break;
18804
18690
  $numExp = (10 * $numExp | 0) + ($c - 48 | 0) | 0;
18805
- var$2 = 1;
18806
- var$3 = var$3 + 1 | 0;
18691
+ $start = 1;
18692
+ $end = $end + 1 | 0;
18807
18693
  }
18808
18694
  }
18809
- if (!var$2)
18695
+ if (!$start)
18810
18696
  $rt_throw(jl_NumberFormatException__init_());
18811
18697
  if ($negativeExp)
18812
18698
  $numExp = -$numExp | 0;
@@ -18814,13 +18700,13 @@ var jl_Double_parseDouble = (var$1) => {
18814
18700
  }
18815
18701
  return otcit_DoubleSynthesizer_synthesizeDouble($mantissa, $exp, $negative);
18816
18702
  }
18817
- var$2 = var$2 + 1 | 0;
18818
- if (var$2 == var$3)
18703
+ $start = $start + 1 | 0;
18704
+ if ($start == $end)
18819
18705
  break;
18820
18706
  }
18821
- var$1 = new jl_NumberFormatException();
18822
- jl_Throwable__init_(var$1);
18823
- $rt_throw(var$1);
18707
+ $string = new jl_NumberFormatException();
18708
+ jl_Throwable__init_($string);
18709
+ $rt_throw($string);
18824
18710
  };
18825
18711
  var jl_Double_isInfinite = ($v) => {
18826
18712
  jl_Double_$callClinit();
@@ -18844,6 +18730,124 @@ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1_apply = (var$0, var$1
18844
18730
  asr_JsRiscV_$callClinit();
18845
18731
  return $rt_createArray(asr_JsProgramStatement, var$1);
18846
18732
  };
18733
+ var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
18734
+ function asr_JsRiscV$PokeRecord() {
18735
+ let a = this;
18736
+ jl_Object.call(a);
18737
+ a.$group0 = 0;
18738
+ a.$writes = null;
18739
+ }
18740
+ function asr_JsRiscV$PokeJournal() {
18741
+ let a = this;
18742
+ jl_Object.call(a);
18743
+ a.$group1 = 0;
18744
+ a.$registers = null;
18745
+ a.$registersByName = null;
18746
+ a.$memoryOldBytes = null;
18747
+ }
18748
+ function asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0() {
18749
+ let a = this;
18750
+ jl_Object.call(a);
18751
+ a.$_03 = null;
18752
+ a.$_10 = null;
18753
+ }
18754
+ var asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run = (var$0) => {
18755
+ let var$1, var$2, var$3, var$4, $ptr, $tmp;
18756
+ $ptr = 0;
18757
+ if ($rt_resuming()) {
18758
+ let $thread = $rt_nativeThread();
18759
+ $ptr = $thread.pop();
18760
+ var$4 = $thread.pop();
18761
+ var$3 = $thread.pop();
18762
+ var$2 = $thread.pop();
18763
+ var$1 = $thread.pop();
18764
+ var$0 = $thread.pop();
18765
+ }
18766
+ main: while (true) {
18767
+ switch ($ptr) {
18768
+ case 0:
18769
+ var$1 = var$0.$_03;
18770
+ var$2 = var$0.$_10;
18771
+ var$1 = var$1.$main;
18772
+ asr_RARS_requireAssembled(var$1);
18773
+ var$3 = var$1.$main0;
18774
+ var$4 = -1;
18775
+ $ptr = 1;
18776
+ case 1:
18777
+ $tmp = asr_RISCVprogram_simulate(var$3, var$4, var$2);
18778
+ if ($rt_suspending()) {
18779
+ break main;
18780
+ }
18781
+ var$3 = $tmp;
18782
+ var$1.$stopReason = var$3;
18783
+ return var$3.$ordinal0;
18784
+ default:
18785
+ $rt_invalidPointer();
18786
+ }
18787
+ }
18788
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
18789
+ };
18790
+ function asr_JsStackFrame() {
18791
+ let a = this;
18792
+ jl_Object.call(a);
18793
+ a.$pc2 = 0;
18794
+ a.$toAddress1 = 0;
18795
+ a.$sp = 0;
18796
+ a.$fp = 0;
18797
+ a.$registers0 = null;
18798
+ }
18799
+ var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
18800
+ return var$1.$pc2;
18801
+ };
18802
+ var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
18803
+ return var$1.$toAddress1;
18804
+ };
18805
+ var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
18806
+ return otji_JS_wrap0(var$1.$registers0);
18807
+ };
18808
+ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
18809
+ return var$1.$sp;
18810
+ };
18811
+ var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
18812
+ return var$1.$fp;
18813
+ };
18814
+ function asr_JsRiscV$step$lambda$_10_0() {
18815
+ jl_Object.call(this);
18816
+ this.$_014 = null;
18817
+ }
18818
+ var asr_JsRiscV$step$lambda$_10_0_run = (var$0) => {
18819
+ let var$1, var$2, var$3, $ptr, $tmp;
18820
+ $ptr = 0;
18821
+ if ($rt_resuming()) {
18822
+ let $thread = $rt_nativeThread();
18823
+ $ptr = $thread.pop();
18824
+ var$3 = $thread.pop();
18825
+ var$2 = $thread.pop();
18826
+ var$1 = $thread.pop();
18827
+ var$0 = $thread.pop();
18828
+ }
18829
+ main: while (true) {
18830
+ switch ($ptr) {
18831
+ case 0:
18832
+ var$1 = var$0.$_014.$main;
18833
+ asr_RARS_requireAssembled(var$1);
18834
+ var$2 = var$1.$main0;
18835
+ var$3 = 1;
18836
+ $ptr = 1;
18837
+ case 1:
18838
+ $tmp = asr_RISCVprogram_simulate0(var$2, var$3);
18839
+ if ($rt_suspending()) {
18840
+ break main;
18841
+ }
18842
+ var$2 = $tmp;
18843
+ var$1.$stopReason = var$2;
18844
+ return var$2.$ordinal0;
18845
+ default:
18846
+ $rt_invalidPointer();
18847
+ }
18848
+ }
18849
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
18850
+ };
18847
18851
  function asr_JsRiscVTokenizedLine() {
18848
18852
  let a = this;
18849
18853
  jl_Object.call(a);
@@ -19666,86 +19670,6 @@ function jur_CharClass$16() {
19666
19670
  var jur_CharClass$16_contains = ($this, $ch) => {
19667
19671
  return $this.$val$curAlt6 ^ $this.$val$nb.$contains1($ch) && jur_CharClass_contains($this.$val$clazz7, $ch) ? 0 : 1;
19668
19672
  };
19669
- function asrrh_Register() {
19670
- let a = this;
19671
- ju_Observable.call(a);
19672
- a.$name = null;
19673
- a.$number = 0;
19674
- a.$resetValue0 = Long_ZERO;
19675
- a.$value4 = Long_ZERO;
19676
- }
19677
- var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
19678
- ju_Observable__init_($this);
19679
- $this.$name = $n;
19680
- $this.$number = $num;
19681
- $this.$value4 = $val;
19682
- $this.$resetValue0 = $val;
19683
- };
19684
- var asrrh_Register__init_ = (var_0, var_1, var_2) => {
19685
- let var_3 = new asrrh_Register();
19686
- asrrh_Register__init_0(var_3, var_0, var_1, var_2);
19687
- return var_3;
19688
- };
19689
- var asrrh_Register_getName = ($this) => {
19690
- return $this.$name;
19691
- };
19692
- var asrrh_Register_getValue = ($this) => {
19693
- asrrh_Register_notifyAnyObservers($this, 0);
19694
- return $this.$value4;
19695
- };
19696
- var asrrh_Register_getValueNoNotify = ($this) => {
19697
- return $this.$value4;
19698
- };
19699
- var asrrh_Register_getNumber = ($this) => {
19700
- return $this.$number;
19701
- };
19702
- var asrrh_Register_setValue = ($this, $val) => {
19703
- let $old;
19704
- $old = $this.$value4;
19705
- $this.$value4 = $val;
19706
- asrrh_Register_notifyAnyObservers($this, 1);
19707
- return $old;
19708
- };
19709
- var asrrh_Register_setValueBackdoor = ($this, $val) => {
19710
- let $old;
19711
- $old = $this.$value4;
19712
- $this.$value4 = $val;
19713
- return $old;
19714
- };
19715
- var asrrh_Register_resetValue = ($this) => {
19716
- jl_Object_monitorEnterSync($this);
19717
- try {
19718
- $this.$value4 = $this.$resetValue0;
19719
- } finally {
19720
- jl_Object_monitorExitSync($this);
19721
- }
19722
- };
19723
- var asrrh_Register_changeResetValue = ($this, $reset) => {
19724
- jl_Object_monitorEnterSync($this);
19725
- try {
19726
- $this.$resetValue0 = $reset;
19727
- } finally {
19728
- jl_Object_monitorExitSync($this);
19729
- }
19730
- };
19731
- var asrrh_Register_notifyAnyObservers = ($this, $type) => {
19732
- let var$2, var$3, var$4;
19733
- var$2 = $this;
19734
- if (ju_Observable_countObservers(var$2) > 0) {
19735
- ju_Observable_setChanged(var$2);
19736
- var$3 = new asrrh_RegisterAccessNotice();
19737
- var$4 = $this.$name;
19738
- asrrh_AccessNotice__init_(var$3, $type);
19739
- var$3.$registerName = var$4;
19740
- ju_Observable_notifyObservers(var$2, var$3);
19741
- }
19742
- };
19743
- function asr_JsRiscV$PokeRegisterWrite() {
19744
- let a = this;
19745
- jl_Object.call(a);
19746
- a.$register = null;
19747
- a.$oldValue = Long_ZERO;
19748
- }
19749
19673
  function asr_RISCVprogram() {
19750
19674
  let a = this;
19751
19675
  jl_Object.call(a);
@@ -19893,75 +19817,79 @@ var asr_RISCVprogram_createMacroPool = ($this) => {
19893
19817
  var asr_RISCVprogram_getLocalMacroPool = ($this) => {
19894
19818
  return $this.$macroPool;
19895
19819
  };
19896
- var otjc_JSPromise$Executor = $rt_classWithoutFields(0);
19897
- function asr_JsRiscV$run$lambda$_9_0() {
19820
+ function asrrh_Register() {
19898
19821
  let a = this;
19899
- jl_Object.call(a);
19900
- a.$_017 = null;
19901
- a.$_17 = null;
19822
+ ju_Observable.call(a);
19823
+ a.$name = null;
19824
+ a.$number = 0;
19825
+ a.$resetValue0 = Long_ZERO;
19826
+ a.$value4 = Long_ZERO;
19902
19827
  }
19903
- var asr_JsRiscV$run$lambda$_9_0__init_0 = (var$0, var$1, var$2) => {
19904
- var$0.$_017 = var$1;
19905
- var$0.$_17 = var$2;
19828
+ var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
19829
+ ju_Observable__init_($this);
19830
+ $this.$name = $n;
19831
+ $this.$number = $num;
19832
+ $this.$value4 = $val;
19833
+ $this.$resetValue0 = $val;
19906
19834
  };
19907
- var asr_JsRiscV$run$lambda$_9_0__init_ = (var_0, var_1) => {
19908
- let var_2 = new asr_JsRiscV$run$lambda$_9_0();
19909
- asr_JsRiscV$run$lambda$_9_0__init_0(var_2, var_0, var_1);
19910
- return var_2;
19835
+ var asrrh_Register__init_ = (var_0, var_1, var_2) => {
19836
+ let var_3 = new asrrh_Register();
19837
+ asrrh_Register__init_0(var_3, var_0, var_1, var_2);
19838
+ return var_3;
19911
19839
  };
19912
- var asr_JsRiscV$run$lambda$_9_0_onExecute$exported$0 = (var$1, var$2, var$3) => {
19913
- let var$4, var$5;
19914
- var$2 = otji_JS_functionAsObject(var$2, "accept");
19915
- var$3 = otji_JS_functionAsObject(var$3, "accept");
19916
- var$1 = var$1;
19917
- var$4 = var$1.$_017;
19918
- var$1 = var$1.$_17;
19919
- var$5 = new asr_JsRiscV$lambda$run$2$lambda$_75_0();
19920
- var$5.$_011 = var$4;
19921
- var$5.$_16 = var$1;
19922
- var$5.$_21 = var$3;
19923
- var$5.$_30 = var$2;
19924
- asr_JsRiscV_$callClinit();
19925
- ju_ArrayDeque_add(asr_JsRiscV_tasks, var$5);
19926
- if (asr_JsRiscV_workerStarted) {
19927
- var$1 = asr_JsRiscV_unpark;
19928
- if (var$1 !== null) {
19929
- asr_JsRiscV_unpark = null;
19930
- var$1.accept(null);
19931
- }
19932
- } else {
19933
- asr_JsRiscV_workerStarted = 1;
19934
- var$1 = new asr_JsRiscV$submit$lambda$_8_0();
19935
- var$2 = new otjc_JSPromise$runAsync$lambda$_15_0();
19936
- var$2.$_01 = var$1;
19937
- new Promise(otji_JS_function(otji_JSWrapper_unwrap(var$2), "onExecute"));
19840
+ var asrrh_Register_getName = ($this) => {
19841
+ return $this.$name;
19842
+ };
19843
+ var asrrh_Register_getValue = ($this) => {
19844
+ asrrh_Register_notifyAnyObservers($this, 0);
19845
+ return $this.$value4;
19846
+ };
19847
+ var asrrh_Register_getValueNoNotify = ($this) => {
19848
+ return $this.$value4;
19849
+ };
19850
+ var asrrh_Register_getNumber = ($this) => {
19851
+ return $this.$number;
19852
+ };
19853
+ var asrrh_Register_setValue = ($this, $val) => {
19854
+ let $old;
19855
+ $old = $this.$value4;
19856
+ $this.$value4 = $val;
19857
+ asrrh_Register_notifyAnyObservers($this, 1);
19858
+ return $old;
19859
+ };
19860
+ var asrrh_Register_setValueBackdoor = ($this, $val) => {
19861
+ let $old;
19862
+ $old = $this.$value4;
19863
+ $this.$value4 = $val;
19864
+ return $old;
19865
+ };
19866
+ var asrrh_Register_resetValue = ($this) => {
19867
+ jl_Object_monitorEnterSync($this);
19868
+ try {
19869
+ $this.$value4 = $this.$resetValue0;
19870
+ } finally {
19871
+ jl_Object_monitorExitSync($this);
19938
19872
  }
19939
19873
  };
19940
- var otjc_JSPromise = $rt_classWithoutFields();
19941
- var otjc_JSPromise_await$static = ($this) => {
19942
- let $ptr, $tmp;
19943
- $ptr = 0;
19944
- if ($rt_resuming()) {
19945
- let $thread = $rt_nativeThread();
19946
- $ptr = $thread.pop();
19947
- $this = $thread.pop();
19874
+ var asrrh_Register_changeResetValue = ($this, $reset) => {
19875
+ jl_Object_monitorEnterSync($this);
19876
+ try {
19877
+ $this.$resetValue0 = $reset;
19878
+ } finally {
19879
+ jl_Object_monitorExitSync($this);
19948
19880
  }
19949
- main: while (true) {
19950
- switch ($ptr) {
19951
- case 0:
19952
- $ptr = 1;
19953
- case 1:
19954
- $tmp = otjc_JSPromiseHelper_await$_asyncCall_$($this);
19955
- if ($rt_suspending()) {
19956
- break main;
19957
- }
19958
- $this = $tmp;
19959
- return $this;
19960
- default:
19961
- $rt_invalidPointer();
19962
- }
19881
+ };
19882
+ var asrrh_Register_notifyAnyObservers = ($this, $type) => {
19883
+ let var$2, var$3, var$4;
19884
+ var$2 = $this;
19885
+ if (ju_Observable_countObservers(var$2) > 0) {
19886
+ ju_Observable_setChanged(var$2);
19887
+ var$3 = new asrrh_RegisterAccessNotice();
19888
+ var$4 = $this.$name;
19889
+ asrrh_AccessNotice__init_(var$3, $type);
19890
+ var$3.$registerName = var$4;
19891
+ ju_Observable_notifyObservers(var$2, var$3);
19963
19892
  }
19964
- $rt_nativeThread().push($this, $ptr);
19965
19893
  };
19966
19894
  var jl_AutoCloseable = $rt_classWithoutFields(0);
19967
19895
  var jus_BaseStream = $rt_classWithoutFields(0);
@@ -20032,6 +19960,128 @@ function jusi_ArrayStreamImpl() {
20032
19960
  a.$end1 = 0;
20033
19961
  a.$size3 = 0;
20034
19962
  }
19963
+ function asrs_BackStepper$BackstepStack() {
19964
+ let a = this;
19965
+ jl_Object.call(a);
19966
+ a.$capacity = 0;
19967
+ a.$size1 = 0;
19968
+ a.$top = 0;
19969
+ a.$stack = null;
19970
+ a.$this$04 = null;
19971
+ }
19972
+ var asrs_BackStepper$BackstepStack_getStack = ($this) => {
19973
+ let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
19974
+ var$1 = $this.$size1;
19975
+ $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
19976
+ var$3 = $usedStack.data;
19977
+ $i = 0;
19978
+ while ($i < var$1) {
19979
+ var$5 = $this.$stack.data;
19980
+ var$6 = $this.$top - $i | 0;
19981
+ var$7 = $this.$capacity;
19982
+ var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
19983
+ $i = $i + 1 | 0;
19984
+ }
19985
+ return $usedStack;
19986
+ };
19987
+ var asrs_BackStepper$BackstepStack_empty = ($this) => {
19988
+ return $this.$size1 ? 0 : 1;
19989
+ };
19990
+ var asrs_BackStepper$BackstepStack_advance = ($this) => {
19991
+ let $next, var$2;
19992
+ $next = $this.$top + 1 | 0;
19993
+ var$2 = $this.$capacity;
19994
+ if ($next == var$2)
19995
+ $next = 0;
19996
+ $this.$top = $next;
19997
+ $next = $this.$size1;
19998
+ if ($next < var$2)
19999
+ $this.$size1 = $next + 1 | 0;
20000
+ };
20001
+ var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
20002
+ let var$7, $step, var$9, $$je;
20003
+ var$7 = $this.$this$04;
20004
+ if (var$7.$pokeGroup) {
20005
+ var$7 = var$7.$pokeRestores;
20006
+ $step = new asrs_BackStepper$PokeRestore();
20007
+ $step.$action0 = $act;
20008
+ $step.$param10 = $parm1;
20009
+ $step.$param20 = $parm2;
20010
+ ju_ArrayList_add(var$7, $step);
20011
+ return;
20012
+ }
20013
+ asrs_BackStepper$BackstepStack_advance($this);
20014
+ $step = $this.$stack.data[$this.$top];
20015
+ $step.$action = $act;
20016
+ $step.$pc1 = $programCounter;
20017
+ $step.$pokeGroup0 = 0;
20018
+ $step.$pokeRestores0 = null;
20019
+ $act = $step.$this$01;
20020
+ if ($programCounter == $act.$lastStatementPc)
20021
+ var$9 = $act.$lastStatement;
20022
+ else {
20023
+ a: {
20024
+ var$9 = null;
20025
+ if (asrrh_Memory_wordAligned($programCounter)) {
20026
+ if (!asrrh_Memory_inTextSegment($programCounter)) {
20027
+ $act = asr_Globals_getSettings();
20028
+ asr_Settings$Bool_$callClinit();
20029
+ if (!asr_Settings_getBooleanSetting($act, asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED))
20030
+ break a;
20031
+ }
20032
+ try {
20033
+ asr_Globals_$callClinit();
20034
+ var$9 = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
20035
+ break a;
20036
+ } catch ($$e) {
20037
+ $$je = $rt_wrapException($$e);
20038
+ if ($$je instanceof jl_Exception) {
20039
+ var$9 = null;
20040
+ break a;
20041
+ } else {
20042
+ throw $$e;
20043
+ }
20044
+ }
20045
+ }
20046
+ }
20047
+ $act = $step.$this$01;
20048
+ $act.$lastStatementPc = $programCounter;
20049
+ $act.$lastStatement = var$9;
20050
+ }
20051
+ if (var$9 === null)
20052
+ $step.$pc1 = -1;
20053
+ $step.$ps = var$9;
20054
+ $step.$param1 = $parm1;
20055
+ $step.$param2 = $parm2;
20056
+ $step.$param3Int = $wroteInt;
20057
+ $step.$param3Long = $wroteLong;
20058
+ };
20059
+ var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter, $parm1, $parm2) => {
20060
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
20061
+ };
20062
+ var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter) => {
20063
+ asrs_BackStepper$BackstepStack_push1($this, $act, $programCounter, 0, Long_ZERO);
20064
+ };
20065
+ var asrs_BackStepper$BackstepStack_peek = ($this) => {
20066
+ return $this.$stack.data[$this.$top];
20067
+ };
20068
+ function asrs_BackStepper$BackStep() {
20069
+ let a = this;
20070
+ jl_Object.call(a);
20071
+ a.$action = null;
20072
+ a.$pc1 = 0;
20073
+ a.$ps = null;
20074
+ a.$param1 = 0;
20075
+ a.$param2 = Long_ZERO;
20076
+ a.$param3Int = 0;
20077
+ a.$param3Long = Long_ZERO;
20078
+ a.$pokeGroup0 = 0;
20079
+ a.$pokeRestores0 = null;
20080
+ a.$this$01 = null;
20081
+ }
20082
+ var asrs_BackStepper$BackStep_isPoke = ($this) => {
20083
+ return !$this.$pokeGroup0 ? 0 : 1;
20084
+ };
20035
20085
  function jl_Long() {
20036
20086
  jl_Number.call(this);
20037
20087
  this.$value2 = Long_ZERO;
@@ -20311,179 +20361,6 @@ var jl_Long_compareTo = ($this, var$1) => {
20311
20361
  var jl_Long__clinit_ = () => {
20312
20362
  jl_Long_TYPE = $rt_cls($rt_longcls);
20313
20363
  };
20314
- function asrrh_AddressErrorException() {
20315
- let a = this;
20316
- jl_Exception.call(a);
20317
- a.$address1 = 0;
20318
- a.$type0 = 0;
20319
- }
20320
- var asrrh_AddressErrorException__init_0 = ($this, $message, $exceptType, $addr) => {
20321
- let var$4, var$5;
20322
- var$4 = asru_Binary_intToHexString($addr);
20323
- var$5 = new jl_StringBuilder();
20324
- jl_AbstractStringBuilder__init_(var$5);
20325
- jl_StringBuilder_append(jl_StringBuilder_append(var$5, $message), var$4);
20326
- jl_Throwable__init_0($this, jl_AbstractStringBuilder_toString(var$5));
20327
- $this.$address1 = $addr;
20328
- $this.$type0 = $exceptType;
20329
- };
20330
- var asrrh_AddressErrorException__init_ = (var_0, var_1, var_2) => {
20331
- let var_3 = new asrrh_AddressErrorException();
20332
- asrrh_AddressErrorException__init_0(var_3, var_0, var_1, var_2);
20333
- return var_3;
20334
- };
20335
- var asrrh_AddressErrorException_getAddress = ($this) => {
20336
- return $this.$address1;
20337
- };
20338
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
20339
- jl_Object.call(this);
20340
- this.$_019 = null;
20341
- }
20342
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
20343
- let var$2, var$3, var$4;
20344
- var$1 = var$1;
20345
- var$2 = var$0.$_019;
20346
- var$3 = new asr_JsCompilationResult$JsCompilationError();
20347
- var$3.$this$017 = var$2;
20348
- var$3.$isWarning0 = var$1.$isWarning;
20349
- var$3.$message2 = var$1.$message0;
20350
- var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
20351
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
20352
- var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
20353
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
20354
- var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
20355
- var$3.$sourcePath3 = var$1.$sourcePath0;
20356
- var$3.$sourceLine6 = var$1.$sourceLine0;
20357
- var$3.$sourceColumn0 = var$1.$sourceColumn;
20358
- return var$3;
20359
- };
20360
- var juf_Supplier = $rt_classWithoutFields(0);
20361
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
20362
- var juf_BiConsumer = $rt_classWithoutFields(0);
20363
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
20364
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
20365
- function asrs_BackStepper$BackstepStack() {
20366
- let a = this;
20367
- jl_Object.call(a);
20368
- a.$capacity = 0;
20369
- a.$size1 = 0;
20370
- a.$top = 0;
20371
- a.$stack = null;
20372
- a.$this$04 = null;
20373
- }
20374
- var asrs_BackStepper$BackstepStack_getStack = ($this) => {
20375
- let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
20376
- var$1 = $this.$size1;
20377
- $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
20378
- var$3 = $usedStack.data;
20379
- $i = 0;
20380
- while ($i < var$1) {
20381
- var$5 = $this.$stack.data;
20382
- var$6 = $this.$top - $i | 0;
20383
- var$7 = $this.$capacity;
20384
- var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
20385
- $i = $i + 1 | 0;
20386
- }
20387
- return $usedStack;
20388
- };
20389
- var asrs_BackStepper$BackstepStack_empty = ($this) => {
20390
- return $this.$size1 ? 0 : 1;
20391
- };
20392
- var asrs_BackStepper$BackstepStack_advance = ($this) => {
20393
- let $next, var$2;
20394
- $next = $this.$top + 1 | 0;
20395
- var$2 = $this.$capacity;
20396
- if ($next == var$2)
20397
- $next = 0;
20398
- $this.$top = $next;
20399
- $next = $this.$size1;
20400
- if ($next < var$2)
20401
- $this.$size1 = $next + 1 | 0;
20402
- };
20403
- var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
20404
- let var$7, $step, var$9, $$je;
20405
- var$7 = $this.$this$04;
20406
- if (var$7.$pokeGroup) {
20407
- var$7 = var$7.$pokeRestores;
20408
- $step = new asrs_BackStepper$PokeRestore();
20409
- $step.$action0 = $act;
20410
- $step.$param10 = $parm1;
20411
- $step.$param20 = $parm2;
20412
- ju_ArrayList_add(var$7, $step);
20413
- return;
20414
- }
20415
- asrs_BackStepper$BackstepStack_advance($this);
20416
- $step = $this.$stack.data[$this.$top];
20417
- $step.$action = $act;
20418
- $step.$pc1 = $programCounter;
20419
- $step.$pokeGroup0 = 0;
20420
- $step.$pokeRestores0 = null;
20421
- $act = $step.$this$01;
20422
- if ($programCounter == $act.$lastStatementPc)
20423
- var$9 = $act.$lastStatement;
20424
- else {
20425
- a: {
20426
- var$9 = null;
20427
- if (asrrh_Memory_wordAligned($programCounter)) {
20428
- if (!asrrh_Memory_inTextSegment($programCounter)) {
20429
- $act = asr_Globals_getSettings();
20430
- asr_Settings$Bool_$callClinit();
20431
- if (!asr_Settings_getBooleanSetting($act, asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED))
20432
- break a;
20433
- }
20434
- try {
20435
- asr_Globals_$callClinit();
20436
- var$9 = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
20437
- break a;
20438
- } catch ($$e) {
20439
- $$je = $rt_wrapException($$e);
20440
- if ($$je instanceof jl_Exception) {
20441
- var$9 = null;
20442
- break a;
20443
- } else {
20444
- throw $$e;
20445
- }
20446
- }
20447
- }
20448
- }
20449
- $act = $step.$this$01;
20450
- $act.$lastStatementPc = $programCounter;
20451
- $act.$lastStatement = var$9;
20452
- }
20453
- if (var$9 === null)
20454
- $step.$pc1 = -1;
20455
- $step.$ps = var$9;
20456
- $step.$param1 = $parm1;
20457
- $step.$param2 = $parm2;
20458
- $step.$param3Int = $wroteInt;
20459
- $step.$param3Long = $wroteLong;
20460
- };
20461
- var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter, $parm1, $parm2) => {
20462
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
20463
- };
20464
- var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter) => {
20465
- asrs_BackStepper$BackstepStack_push1($this, $act, $programCounter, 0, Long_ZERO);
20466
- };
20467
- var asrs_BackStepper$BackstepStack_peek = ($this) => {
20468
- return $this.$stack.data[$this.$top];
20469
- };
20470
- function asrs_BackStepper$BackStep() {
20471
- let a = this;
20472
- jl_Object.call(a);
20473
- a.$action = null;
20474
- a.$pc1 = 0;
20475
- a.$ps = null;
20476
- a.$param1 = 0;
20477
- a.$param2 = Long_ZERO;
20478
- a.$param3Int = 0;
20479
- a.$param3Long = Long_ZERO;
20480
- a.$pokeGroup0 = 0;
20481
- a.$pokeRestores0 = null;
20482
- a.$this$01 = null;
20483
- }
20484
- var asrs_BackStepper$BackStep_isPoke = ($this) => {
20485
- return !$this.$pokeGroup0 ? 0 : 1;
20486
- };
20487
20364
  var otjc_JSObjects = $rt_classWithoutFields();
20488
20365
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
20489
20366
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -20520,6 +20397,109 @@ var otji_JSWrapper$Helper__clinit_ = () => {
20520
20397
  otji_JSWrapper$Helper_numberFinalizationRegistry = var$1;
20521
20398
  };
20522
20399
  var otjc_JSUndefined = $rt_classWithoutFields();
20400
+ var otjc_JSPromise$Executor = $rt_classWithoutFields(0);
20401
+ function asr_JsRiscV$run$lambda$_9_0() {
20402
+ let a = this;
20403
+ jl_Object.call(a);
20404
+ a.$_017 = null;
20405
+ a.$_17 = null;
20406
+ }
20407
+ var asr_JsRiscV$run$lambda$_9_0__init_0 = (var$0, var$1, var$2) => {
20408
+ var$0.$_017 = var$1;
20409
+ var$0.$_17 = var$2;
20410
+ };
20411
+ var asr_JsRiscV$run$lambda$_9_0__init_ = (var_0, var_1) => {
20412
+ let var_2 = new asr_JsRiscV$run$lambda$_9_0();
20413
+ asr_JsRiscV$run$lambda$_9_0__init_0(var_2, var_0, var_1);
20414
+ return var_2;
20415
+ };
20416
+ var asr_JsRiscV$run$lambda$_9_0_onExecute$exported$0 = (var$1, var$2, var$3) => {
20417
+ let var$4, var$5;
20418
+ var$2 = otji_JS_functionAsObject(var$2, "accept");
20419
+ var$3 = otji_JS_functionAsObject(var$3, "accept");
20420
+ var$1 = var$1;
20421
+ var$4 = var$1.$_017;
20422
+ var$1 = var$1.$_17;
20423
+ var$5 = new asr_JsRiscV$lambda$run$2$lambda$_75_0();
20424
+ var$5.$_011 = var$4;
20425
+ var$5.$_16 = var$1;
20426
+ var$5.$_21 = var$3;
20427
+ var$5.$_30 = var$2;
20428
+ asr_JsRiscV_$callClinit();
20429
+ ju_ArrayDeque_add(asr_JsRiscV_tasks, var$5);
20430
+ if (asr_JsRiscV_workerStarted) {
20431
+ var$1 = asr_JsRiscV_unpark;
20432
+ if (var$1 !== null) {
20433
+ asr_JsRiscV_unpark = null;
20434
+ var$1.accept(null);
20435
+ }
20436
+ } else {
20437
+ asr_JsRiscV_workerStarted = 1;
20438
+ var$1 = new asr_JsRiscV$submit$lambda$_8_0();
20439
+ var$2 = new otjc_JSPromise$runAsync$lambda$_15_0();
20440
+ var$2.$_01 = var$1;
20441
+ new Promise(otji_JS_function(otji_JSWrapper_unwrap(var$2), "onExecute"));
20442
+ }
20443
+ };
20444
+ var otjc_JSPromise = $rt_classWithoutFields();
20445
+ var otjc_JSPromise_await$static = ($this) => {
20446
+ let $ptr, $tmp;
20447
+ $ptr = 0;
20448
+ if ($rt_resuming()) {
20449
+ let $thread = $rt_nativeThread();
20450
+ $ptr = $thread.pop();
20451
+ $this = $thread.pop();
20452
+ }
20453
+ main: while (true) {
20454
+ switch ($ptr) {
20455
+ case 0:
20456
+ $ptr = 1;
20457
+ case 1:
20458
+ $tmp = otjc_JSPromiseHelper_await$_asyncCall_$($this);
20459
+ if ($rt_suspending()) {
20460
+ break main;
20461
+ }
20462
+ $this = $tmp;
20463
+ return $this;
20464
+ default:
20465
+ $rt_invalidPointer();
20466
+ }
20467
+ }
20468
+ $rt_nativeThread().push($this, $ptr);
20469
+ };
20470
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
20471
+ jl_Object.call(this);
20472
+ this.$_019 = null;
20473
+ }
20474
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
20475
+ let var$2, var$3, var$4;
20476
+ var$1 = var$1;
20477
+ var$2 = var$0.$_019;
20478
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
20479
+ var$3.$this$017 = var$2;
20480
+ var$3.$isWarning0 = var$1.$isWarning;
20481
+ var$3.$message2 = var$1.$message0;
20482
+ var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
20483
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
20484
+ var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
20485
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
20486
+ var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
20487
+ var$3.$sourcePath3 = var$1.$sourcePath0;
20488
+ var$3.$sourceLine6 = var$1.$sourceLine0;
20489
+ var$3.$sourceColumn0 = var$1.$sourceColumn;
20490
+ return var$3;
20491
+ };
20492
+ var juf_Supplier = $rt_classWithoutFields(0);
20493
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
20494
+ var juf_BiConsumer = $rt_classWithoutFields(0);
20495
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
20496
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
20497
+ function asr_JsRiscV$PokeRegisterWrite() {
20498
+ let a = this;
20499
+ jl_Object.call(a);
20500
+ a.$register = null;
20501
+ a.$oldValue = Long_ZERO;
20502
+ }
20523
20503
  var asr_JsPokeWrite = $rt_classWithoutFields();
20524
20504
  var asr_JsPokeWrite_toNumberArray = ($values) => {
20525
20505
  let var$2, $array, $i, var$5;
@@ -20540,6 +20520,30 @@ var asr_JsPokeWrite_createRegister$js_body$_4 = (var$1, var$2, var$3) => {
20540
20520
  var asr_JsPokeWrite_createMemory$js_body$_5 = (var$1, var$2, var$3) => {
20541
20521
  return { type: "memory", address: var$1, old: var$2, new: var$3 };
20542
20522
  };
20523
+ function asrrh_AddressErrorException() {
20524
+ let a = this;
20525
+ jl_Exception.call(a);
20526
+ a.$address1 = 0;
20527
+ a.$type0 = 0;
20528
+ }
20529
+ var asrrh_AddressErrorException__init_0 = ($this, var$1, var$2, var$3) => {
20530
+ let var$4, var$5;
20531
+ var$4 = asru_Binary_intToHexString(var$3);
20532
+ var$5 = new jl_StringBuilder();
20533
+ jl_AbstractStringBuilder__init_(var$5);
20534
+ jl_StringBuilder_append(jl_StringBuilder_append(var$5, var$1), var$4);
20535
+ jl_Throwable__init_0($this, jl_AbstractStringBuilder_toString(var$5));
20536
+ $this.$address1 = var$3;
20537
+ $this.$type0 = var$2;
20538
+ };
20539
+ var asrrh_AddressErrorException__init_ = (var_0, var_1, var_2) => {
20540
+ let var_3 = new asrrh_AddressErrorException();
20541
+ asrrh_AddressErrorException__init_0(var_3, var_0, var_1, var_2);
20542
+ return var_3;
20543
+ };
20544
+ var asrrh_AddressErrorException_getAddress = ($this) => {
20545
+ return $this.$address1;
20546
+ };
20543
20547
  var asra_TokenTypes = $rt_classWithoutFields(jl_Enum);
20544
20548
  var asra_TokenTypes_COMMENT = null;
20545
20549
  var asra_TokenTypes_DIRECTIVE = null;
@@ -25562,15 +25566,6 @@ var asrrh_RegisterBlock_resetRegisters = ($this) => {
25562
25566
  var$3 = var$3 + 1 | 0;
25563
25567
  }
25564
25568
  };
25565
- function asrrh_StackFrame() {
25566
- let a = this;
25567
- jl_Object.call(a);
25568
- a.$pc3 = 0;
25569
- a.$toAddress0 = 0;
25570
- a.$sp0 = 0;
25571
- a.$fp0 = 0;
25572
- a.$registers1 = null;
25573
- }
25574
25569
  function asr_ErrorList() {
25575
25570
  let a = this;
25576
25571
  jl_Object.call(a);
@@ -25656,6 +25651,15 @@ var asr_ErrorList_generateReport = ($this, $isWarning) => {
25656
25651
  }
25657
25652
  return jl_AbstractStringBuilder_toString($report);
25658
25653
  };
25654
+ function asrrh_StackFrame() {
25655
+ let a = this;
25656
+ jl_Object.call(a);
25657
+ a.$pc3 = 0;
25658
+ a.$toAddress0 = 0;
25659
+ a.$sp0 = 0;
25660
+ a.$fp0 = 0;
25661
+ a.$registers1 = null;
25662
+ }
25659
25663
  function asra_Token() {
25660
25664
  let a = this;
25661
25665
  jl_Object.call(a);
@@ -26379,7 +26383,7 @@ var asrrs_SyscallMessageDialogFloat_simulate = ($this, $statement) => {
26379
26383
  $message = asrrs_NullString_get($statement);
26380
26384
  var$3 = $this.$io7;
26381
26385
  asrrh_FloatingPointRegisterFile_$callClinit();
26382
- $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(557))));
26386
+ $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(554))));
26383
26387
  var$4 = new jl_StringBuilder();
26384
26388
  jl_AbstractStringBuilder__init_(var$4);
26385
26389
  jl_StringBuilder_append(jl_StringBuilder_append(var$4, $message), $statement);
@@ -26736,7 +26740,7 @@ var asrrs_SyscallPrintFloat_simulate = ($this, $statement) => {
26736
26740
  main: while (true) {
26737
26741
  switch ($ptr) {
26738
26742
  case 0:
26739
- $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(556))));
26743
+ $statement = jl_Float_toString($rt_intBitsToFloat(asrrh_FloatingPointRegisterFile_getValue0($rt_s(553))));
26740
26744
  $ptr = 1;
26741
26745
  case 1:
26742
26746
  asru_SystemIO_printString($statement);
@@ -28321,6 +28325,40 @@ var jur_BackReferencedSingleSet_findBack = ($this, $stringIndex, $startSearch, $
28321
28325
  var jur_BackReferencedSingleSet_processBackRefReplacement = ($this) => {
28322
28326
  return null;
28323
28327
  };
28328
+ var jus_IntStream = $rt_classWithoutFields(0);
28329
+ var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
28330
+ function jusi_MappingToIntStreamImpl() {
28331
+ let a = this;
28332
+ jusi_SimpleIntStreamImpl.call(a);
28333
+ a.$source0 = null;
28334
+ a.$mapper0 = null;
28335
+ }
28336
+ var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
28337
+ let var$2, var$3, var$4, var$5, var$6;
28338
+ var$2 = $this.$source0;
28339
+ var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
28340
+ var$3.$_025 = $this;
28341
+ var$3.$_110 = $consumer;
28342
+ $consumer = var$2;
28343
+ a: {
28344
+ while (true) {
28345
+ var$4 = $consumer.$index1;
28346
+ if (var$4 >= $consumer.$end1)
28347
+ break a;
28348
+ var$5 = $consumer.$array8.data;
28349
+ $consumer.$index1 = var$4 + 1 | 0;
28350
+ var$2 = var$5[var$4];
28351
+ var$6 = var$3.$_110;
28352
+ var$2 = var$2;
28353
+ asr_JsRiscV_$callClinit();
28354
+ if (var$6.$test0(Long_lo(var$2.$getValue())))
28355
+ continue;
28356
+ else
28357
+ break;
28358
+ }
28359
+ }
28360
+ return $consumer.$index1 >= $consumer.$end1 ? 0 : 1;
28361
+ };
28324
28362
  var jm_Conversion = $rt_classWithoutFields();
28325
28363
  var jm_Conversion_digitFitInInt = null;
28326
28364
  var jm_Conversion_bigRadices = null;
@@ -28516,40 +28554,6 @@ var jm_Conversion__clinit_ = () => {
28516
28554
  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]);
28517
28555
  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]);
28518
28556
  };
28519
- var jus_IntStream = $rt_classWithoutFields(0);
28520
- var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
28521
- function jusi_MappingToIntStreamImpl() {
28522
- let a = this;
28523
- jusi_SimpleIntStreamImpl.call(a);
28524
- a.$source0 = null;
28525
- a.$mapper0 = null;
28526
- }
28527
- var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
28528
- let var$2, var$3, var$4, var$5, var$6;
28529
- var$2 = $this.$source0;
28530
- var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
28531
- var$3.$_025 = $this;
28532
- var$3.$_110 = $consumer;
28533
- $consumer = var$2;
28534
- a: {
28535
- while (true) {
28536
- var$4 = $consumer.$index1;
28537
- if (var$4 >= $consumer.$end1)
28538
- break a;
28539
- var$5 = $consumer.$array8.data;
28540
- $consumer.$index1 = var$4 + 1 | 0;
28541
- var$2 = var$5[var$4];
28542
- var$6 = var$3.$_110;
28543
- var$2 = var$2;
28544
- asr_JsRiscV_$callClinit();
28545
- if (var$6.$test0(Long_lo(var$2.$getValue())))
28546
- continue;
28547
- else
28548
- break;
28549
- }
28550
- }
28551
- return $consumer.$index1 >= $consumer.$end1 ? 0 : 1;
28552
- };
28553
28557
  function ju_AbstractList$1() {
28554
28558
  let a = this;
28555
28559
  jl_Object.call(a);
@@ -28874,6 +28878,13 @@ var asrs_Simulator$Reason__clinit_ = () => {
28874
28878
  var$3[6] = var$1;
28875
28879
  asrs_Simulator$Reason_$VALUES = var$2;
28876
28880
  };
28881
+ var juf_Predicate = $rt_classWithoutFields(0);
28882
+ function asr_RARS$getStatementsAtSourceLocation$lambda$_6_0() {
28883
+ let a = this;
28884
+ jl_Object.call(a);
28885
+ a.$_08 = null;
28886
+ a.$_14 = 0;
28887
+ }
28877
28888
  var asrrh_Stack = $rt_classWithoutFields();
28878
28889
  var asrrh_Stack_callStack = null;
28879
28890
  var asrrh_Stack_$callClinit = () => {
@@ -28887,13 +28898,6 @@ var asrrh_Stack_getCallStack = () => {
28887
28898
  var asrrh_Stack__clinit_ = () => {
28888
28899
  asrrh_Stack_callStack = ju_ArrayList__init_();
28889
28900
  };
28890
- var juf_Predicate = $rt_classWithoutFields(0);
28891
- function asr_RARS$getStatementsAtSourceLocation$lambda$_6_0() {
28892
- let a = this;
28893
- jl_Object.call(a);
28894
- a.$_08 = null;
28895
- a.$_14 = 0;
28896
- }
28897
28901
  var asrrh_InterruptController = $rt_classWithoutFields();
28898
28902
  var asrrh_InterruptController_lock = null;
28899
28903
  var asrrh_InterruptController_externalPending0 = 0;
@@ -35741,6 +35745,13 @@ var otcit_DoubleAnalyzer$Result__init_0 = () => {
35741
35745
  otcit_DoubleAnalyzer$Result__init_(var_0);
35742
35746
  return var_0;
35743
35747
  };
35748
+ function asrs_BackStepper$PokeRestore() {
35749
+ let a = this;
35750
+ jl_Object.call(a);
35751
+ a.$action0 = null;
35752
+ a.$param10 = 0;
35753
+ a.$param20 = Long_ZERO;
35754
+ }
35744
35755
  var asrs_BackStepper$Action = $rt_classWithoutFields(jl_Enum);
35745
35756
  var asrs_BackStepper$Action_MEMORY_RESTORE_RAW_WORD = null;
35746
35757
  var asrs_BackStepper$Action_MEMORY_RESTORE_DOUBLE_WORD = null;
@@ -35805,13 +35816,6 @@ var asrs_BackStepper$Action__clinit_ = () => {
35805
35816
  var$3[13] = var$1;
35806
35817
  asrs_BackStepper$Action_$VALUES = var$2;
35807
35818
  };
35808
- function asrs_BackStepper$PokeRestore() {
35809
- let a = this;
35810
- jl_Object.call(a);
35811
- a.$action0 = null;
35812
- a.$param10 = 0;
35813
- a.$param20 = Long_ZERO;
35814
- }
35815
35819
  var jusi_SimpleStreamImpl$toArray$lambda$_20_0 = $rt_classWithoutFields();
35816
35820
  var jusi_SimpleStreamImpl$toArray$lambda$_20_0_apply = (var$0, var$1) => {
35817
35821
  return $rt_createArray(jl_Object, var$1);
@@ -37776,16 +37780,16 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
37776
37780
  return 0;
37777
37781
  };
37778
37782
  var asrs_Simulator$SimThread_run = ($this) => {
37779
- 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;
37783
+ 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;
37780
37784
  $ptr = 0;
37781
37785
  if ($rt_resuming()) {
37782
37786
  let $thread = $rt_nativeThread();
37783
37787
  $ptr = $thread.pop();
37784
- $se = $thread.pop();
37788
+ var$25 = $thread.pop();
37785
37789
  $instruction = $thread.pop();
37786
37790
  $tmp_0 = $thread.pop();
37787
37791
  $e = $thread.pop();
37788
- var$21 = $thread.pop();
37792
+ $se = $thread.pop();
37789
37793
  var$20 = $thread.pop();
37790
37794
  var$19 = $thread.pop();
37791
37795
  $pendingTrap = $thread.pop();
@@ -37871,12 +37875,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
37871
37875
  return;
37872
37876
  }
37873
37877
  }
37874
- $IE = asrrh_RegisterFile_getProgramCounter();
37875
- $this.$pc0 = $IE;
37876
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
37878
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
37879
+ asrrh_RegisterFile_incrementPC();
37877
37880
  d: {
37878
37881
  try {
37879
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
37882
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
37880
37883
  break d;
37881
37884
  } catch ($$e) {
37882
37885
  $$je = $rt_wrapException($$e);
@@ -37896,7 +37899,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
37896
37899
  }
37897
37900
  continue c;
37898
37901
  }
37899
- if (var$21 === null) {
37902
+ if ($se === null) {
37900
37903
  asrs_Simulator$Reason_$callClinit();
37901
37904
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
37902
37905
  return;
@@ -37907,15 +37910,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
37907
37910
  try {
37908
37911
  h: {
37909
37912
  try {
37910
- $instruction = asr_ProgramStatement_getInstruction(var$21);
37913
+ $instruction = asr_ProgramStatement_getInstruction($se);
37911
37914
  if ($instruction !== null)
37912
37915
  break h;
37913
- $instruction = new asr_SimulationException();
37914
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
37915
- $e = jl_StringBuilder__init_();
37916
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
37917
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
37918
- $rt_throw($instruction);
37916
+ $e = new asr_SimulationException();
37917
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
37918
+ var$25 = jl_StringBuilder__init_();
37919
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
37920
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
37921
+ $rt_throw($e);
37919
37922
  } catch ($$e) {
37920
37923
  $$je = $rt_wrapException($$e);
37921
37924
  if ($$je instanceof asr_BreakpointException) {
@@ -37975,7 +37978,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
37975
37978
  $timeSampleCountdown = $timeSampleCountdown + -1 | 0;
37976
37979
  if ($timeSampleCountdown <= 0) {
37977
37980
  $timeSampleCountdown = 64;
37978
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis());
37981
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis(), $this.$pc0);
37979
37982
  }
37980
37983
  if ($ebreak)
37981
37984
  break b;
@@ -37996,13 +37999,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
37996
37999
  asrs_Simulator$SimThread_stopExecution($this, 0, asrs_Simulator$Reason_BREAKPOINT);
37997
38000
  return;
37998
38001
  }
37999
- if ($e.$message === null) {
38000
- asrs_Simulator$Reason_$callClinit();
38001
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38002
- } else {
38002
+ if ($e.$message !== null) {
38003
38003
  asrs_Simulator$Reason_$callClinit();
38004
38004
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
38005
38005
  $this.$pe = $e;
38006
+ } else {
38007
+ asrs_Simulator$Reason_$callClinit();
38008
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38009
+ if ($backStepping)
38010
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
38006
38011
  }
38007
38012
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
38008
38013
  return;
@@ -38015,7 +38020,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38015
38020
  m: {
38016
38021
  n: {
38017
38022
  try {
38018
- $instruction.$simulate2(var$21);
38023
+ $instruction.$simulate2($se);
38019
38024
  if ($rt_suspending()) {
38020
38025
  break main;
38021
38026
  }
@@ -38040,14 +38045,14 @@ var asrs_Simulator$SimThread_run = ($this) => {
38040
38045
  }
38041
38046
  }
38042
38047
  }
38043
- $pendingTrap = $this.$pc0;
38044
- $pendingTrap = asrrh_InterruptController_registerSynchronousTrap($se, $pendingTrap);
38045
- if (!$pendingTrap) {
38048
+ var$20 = $this.$pc0;
38049
+ var$20 = asrrh_InterruptController_registerSynchronousTrap($se, var$20);
38050
+ if (!var$20) {
38046
38051
  $this.$pe = $se;
38047
- $pendingTrap = 1;
38052
+ var$20 = 1;
38048
38053
  asrs_Simulator$Reason_$callClinit();
38049
38054
  $instruction = asrs_Simulator$Reason_EXCEPTION;
38050
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38055
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38051
38056
  return;
38052
38057
  }
38053
38058
  break j;
@@ -38055,48 +38060,49 @@ var asrs_Simulator$SimThread_run = ($this) => {
38055
38060
  break k;
38056
38061
  }
38057
38062
  if ($backStepping) {
38058
- $pendingTrap = $this.$pc0;
38059
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38063
+ var$20 = $this.$pc0;
38064
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38060
38065
  }
38061
38066
  $ebreak = 1;
38062
38067
  break k;
38063
38068
  }
38064
38069
  if ($backStepping) {
38065
- $pendingTrap = $this.$pc0;
38066
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38070
+ var$20 = $this.$pc0;
38071
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38067
38072
  }
38068
38073
  $waiting = 1;
38069
38074
  }
38070
- $pendingTrap = $this.$pc0;
38071
- asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, $pendingTrap);
38072
- $pendingTrap = -1;
38073
- $timeSampleCountdown = $timeSampleCountdown + $pendingTrap | 0;
38075
+ var$20 = $this.$pc0;
38076
+ asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, var$20);
38077
+ var$20 = -1;
38078
+ $timeSampleCountdown = $timeSampleCountdown + var$20 | 0;
38074
38079
  if ($timeSampleCountdown <= 0) {
38075
38080
  $timeSampleCountdown = 64;
38076
38081
  var$19 = jl_System_currentTimeMillis();
38077
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19);
38082
+ var$20 = $this.$pc0;
38083
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19, var$20);
38078
38084
  }
38079
38085
  o: {
38080
38086
  if (!$ebreak) {
38081
38087
  var$8 = $this.$breakPoints;
38082
38088
  if (var$8 === null)
38083
38089
  break o;
38084
- $pendingTrap = asrrh_RegisterFile_getProgramCounter();
38085
- $pendingTrap = ju_Arrays_binarySearch(var$8, $pendingTrap);
38086
- if ($pendingTrap < 0)
38090
+ var$20 = asrrh_RegisterFile_getProgramCounter();
38091
+ var$20 = ju_Arrays_binarySearch(var$8, var$20);
38092
+ if (var$20 < 0)
38087
38093
  break o;
38088
38094
  }
38089
- $pendingTrap = 0;
38095
+ var$20 = 0;
38090
38096
  asrs_Simulator$Reason_$callClinit();
38091
38097
  $instruction = asrs_Simulator$Reason_BREAKPOINT;
38092
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38098
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38093
38099
  return;
38094
38100
  }
38095
38101
  if ($waiting) {
38096
- $pendingTrap = asrrh_InterruptController_externalPending();
38097
- if (!$pendingTrap) {
38098
- $pendingTrap = asrrh_InterruptController_timerPending();
38099
- if (!$pendingTrap) {
38102
+ var$20 = asrrh_InterruptController_externalPending();
38103
+ if (!var$20) {
38104
+ var$20 = asrrh_InterruptController_timerPending();
38105
+ if (!var$20) {
38100
38106
  $ptr = 2;
38101
38107
  continue main;
38102
38108
  }
@@ -38146,12 +38152,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
38146
38152
  return;
38147
38153
  }
38148
38154
  }
38149
- $IE = asrrh_RegisterFile_getProgramCounter();
38150
- $this.$pc0 = $IE;
38151
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
38155
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
38156
+ asrrh_RegisterFile_incrementPC();
38152
38157
  r: {
38153
38158
  try {
38154
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
38159
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
38155
38160
  break r;
38156
38161
  } catch ($$e) {
38157
38162
  $$je = $rt_wrapException($$e);
@@ -38171,7 +38176,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38171
38176
  }
38172
38177
  continue q;
38173
38178
  }
38174
- if (var$21 === null) {
38179
+ if ($se === null) {
38175
38180
  asrs_Simulator$Reason_$callClinit();
38176
38181
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
38177
38182
  return;
@@ -38182,15 +38187,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38182
38187
  try {
38183
38188
  v: {
38184
38189
  try {
38185
- $instruction = asr_ProgramStatement_getInstruction(var$21);
38190
+ $instruction = asr_ProgramStatement_getInstruction($se);
38186
38191
  if ($instruction !== null)
38187
38192
  break v;
38188
- $instruction = new asr_SimulationException();
38189
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
38190
- $e = jl_StringBuilder__init_();
38191
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
38192
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
38193
- $rt_throw($instruction);
38193
+ $e = new asr_SimulationException();
38194
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
38195
+ var$25 = jl_StringBuilder__init_();
38196
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
38197
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
38198
+ $rt_throw($e);
38194
38199
  } catch ($$e) {
38195
38200
  $$je = $rt_wrapException($$e);
38196
38201
  if ($$je instanceof asr_BreakpointException) {
@@ -38224,14 +38229,14 @@ var asrs_Simulator$SimThread_run = ($this) => {
38224
38229
  $$je = $rt_wrapException($$e);
38225
38230
  if ($$je instanceof asr_SimulationException) {
38226
38231
  $se = $$je;
38227
- $pendingTrap = $this.$pc0;
38228
- $pendingTrap = asrrh_InterruptController_registerSynchronousTrap($se, $pendingTrap);
38229
- if (!$pendingTrap) {
38232
+ var$20 = $this.$pc0;
38233
+ var$20 = asrrh_InterruptController_registerSynchronousTrap($se, var$20);
38234
+ if (!var$20) {
38230
38235
  $this.$pe = $se;
38231
- $pendingTrap = 1;
38236
+ var$20 = 1;
38232
38237
  asrs_Simulator$Reason_$callClinit();
38233
38238
  $instruction = asrs_Simulator$Reason_EXCEPTION;
38234
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38239
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38235
38240
  return;
38236
38241
  }
38237
38242
  continue q;
@@ -38241,42 +38246,43 @@ var asrs_Simulator$SimThread_run = ($this) => {
38241
38246
  }
38242
38247
  }
38243
38248
  if ($backStepping) {
38244
- $pendingTrap = $this.$pc0;
38245
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38249
+ var$20 = $this.$pc0;
38250
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38246
38251
  }
38247
38252
  $ebreak = 1;
38248
38253
  break s;
38249
38254
  }
38250
38255
  if ($backStepping) {
38251
- $pendingTrap = $this.$pc0;
38252
- asrs_BackStepper_addDoNothing($backStepper, $pendingTrap);
38256
+ var$20 = $this.$pc0;
38257
+ asrs_BackStepper_addDoNothing($backStepper, var$20);
38253
38258
  }
38254
38259
  $waiting = 1;
38255
38260
  }
38256
- $pendingTrap = $this.$pc0;
38257
- asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, $pendingTrap);
38258
- $pendingTrap = -1;
38259
- $timeSampleCountdown = $timeSampleCountdown + $pendingTrap | 0;
38261
+ var$20 = $this.$pc0;
38262
+ asrrh_ControlAndStatusRegisterFile_incrementCounters($backStepping, var$20);
38263
+ var$20 = -1;
38264
+ $timeSampleCountdown = $timeSampleCountdown + var$20 | 0;
38260
38265
  if ($timeSampleCountdown <= 0) {
38261
38266
  $timeSampleCountdown = 64;
38262
38267
  var$19 = jl_System_currentTimeMillis();
38263
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19);
38268
+ var$20 = $this.$pc0;
38269
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, var$19, var$20);
38264
38270
  }
38265
38271
  if ($ebreak)
38266
38272
  break p;
38267
38273
  var$8 = $this.$breakPoints;
38268
38274
  if (var$8 !== null) {
38269
- $pendingTrap = asrrh_RegisterFile_getProgramCounter();
38270
- $pendingTrap = ju_Arrays_binarySearch(var$8, $pendingTrap);
38271
- if ($pendingTrap >= 0)
38275
+ var$20 = asrrh_RegisterFile_getProgramCounter();
38276
+ var$20 = ju_Arrays_binarySearch(var$8, var$20);
38277
+ if (var$20 >= 0)
38272
38278
  break p;
38273
38279
  }
38274
38280
  if (!$waiting)
38275
38281
  continue;
38276
- $pendingTrap = asrrh_InterruptController_externalPending();
38277
- if (!$pendingTrap) {
38278
- $pendingTrap = asrrh_InterruptController_timerPending();
38279
- if (!$pendingTrap) {
38282
+ var$20 = asrrh_InterruptController_externalPending();
38283
+ if (!var$20) {
38284
+ var$20 = asrrh_InterruptController_timerPending();
38285
+ if (!var$20) {
38280
38286
  $ptr = 2;
38281
38287
  continue main;
38282
38288
  }
@@ -38285,19 +38291,21 @@ var asrs_Simulator$SimThread_run = ($this) => {
38285
38291
  }
38286
38292
  return;
38287
38293
  }
38288
- $pendingTrap = 0;
38294
+ var$20 = 0;
38289
38295
  asrs_Simulator$Reason_$callClinit();
38290
38296
  $instruction = asrs_Simulator$Reason_BREAKPOINT;
38291
- asrs_Simulator$SimThread_stopExecution($this, $pendingTrap, $instruction);
38297
+ asrs_Simulator$SimThread_stopExecution($this, var$20, $instruction);
38292
38298
  return;
38293
38299
  }
38294
- if ($e.$message === null) {
38295
- asrs_Simulator$Reason_$callClinit();
38296
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38297
- } else {
38300
+ if ($e.$message !== null) {
38298
38301
  asrs_Simulator$Reason_$callClinit();
38299
38302
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
38300
38303
  $this.$pe = $e;
38304
+ } else {
38305
+ asrs_Simulator$Reason_$callClinit();
38306
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38307
+ if ($backStepping)
38308
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
38301
38309
  }
38302
38310
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
38303
38311
  return;
@@ -38375,12 +38383,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
38375
38383
  return;
38376
38384
  }
38377
38385
  }
38378
- $IE = asrrh_RegisterFile_getProgramCounter();
38379
- $this.$pc0 = $IE;
38380
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
38386
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
38387
+ asrrh_RegisterFile_incrementPC();
38381
38388
  z: {
38382
38389
  try {
38383
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
38390
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
38384
38391
  break z;
38385
38392
  } catch ($$e) {
38386
38393
  $$je = $rt_wrapException($$e);
@@ -38400,7 +38407,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38400
38407
  }
38401
38408
  continue c;
38402
38409
  }
38403
- if (var$21 === null) {
38410
+ if ($se === null) {
38404
38411
  asrs_Simulator$Reason_$callClinit();
38405
38412
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
38406
38413
  return;
@@ -38411,15 +38418,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38411
38418
  try {
38412
38419
  bb: {
38413
38420
  try {
38414
- $instruction = asr_ProgramStatement_getInstruction(var$21);
38421
+ $instruction = asr_ProgramStatement_getInstruction($se);
38415
38422
  if ($instruction !== null)
38416
38423
  break bb;
38417
- $instruction = new asr_SimulationException();
38418
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
38419
- $e = jl_StringBuilder__init_();
38420
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
38421
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
38422
- $rt_throw($instruction);
38424
+ $e = new asr_SimulationException();
38425
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
38426
+ var$25 = jl_StringBuilder__init_();
38427
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
38428
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
38429
+ $rt_throw($e);
38423
38430
  } catch ($$e) {
38424
38431
  $$je = $rt_wrapException($$e);
38425
38432
  if ($$je instanceof asr_BreakpointException) {
@@ -38479,7 +38486,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38479
38486
  $timeSampleCountdown = $timeSampleCountdown + -1 | 0;
38480
38487
  if ($timeSampleCountdown <= 0) {
38481
38488
  $timeSampleCountdown = 64;
38482
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis());
38489
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis(), $this.$pc0);
38483
38490
  }
38484
38491
  if ($ebreak)
38485
38492
  break n;
@@ -38503,13 +38510,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38503
38510
  asrs_Simulator$SimThread_stopExecution($this, 0, asrs_Simulator$Reason_BREAKPOINT);
38504
38511
  return;
38505
38512
  }
38506
- if ($e.$message === null) {
38507
- asrs_Simulator$Reason_$callClinit();
38508
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38509
- } else {
38513
+ if ($e.$message !== null) {
38510
38514
  asrs_Simulator$Reason_$callClinit();
38511
38515
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
38512
38516
  $this.$pe = $e;
38517
+ } else {
38518
+ asrs_Simulator$Reason_$callClinit();
38519
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38520
+ if ($backStepping)
38521
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
38513
38522
  }
38514
38523
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
38515
38524
  return;
@@ -38586,12 +38595,11 @@ var asrs_Simulator$SimThread_run = ($this) => {
38586
38595
  return;
38587
38596
  }
38588
38597
  }
38589
- $IE = asrrh_RegisterFile_getProgramCounter();
38590
- $this.$pc0 = $IE;
38591
- asrrh_RegisterFile_programCounterValue = asrrh_RegisterFile_programCounterValue + 4 | 0;
38598
+ $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
38599
+ asrrh_RegisterFile_incrementPC();
38592
38600
  bd: {
38593
38601
  try {
38594
- var$21 = asrrh_Memory_getStatement(asr_Globals_memory, $IE);
38602
+ $se = asrrh_Memory_getStatement(asr_Globals_memory, $this.$pc0);
38595
38603
  break bd;
38596
38604
  } catch ($$e) {
38597
38605
  $$je = $rt_wrapException($$e);
@@ -38611,7 +38619,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38611
38619
  }
38612
38620
  continue bc;
38613
38621
  }
38614
- if (var$21 === null) {
38622
+ if ($se === null) {
38615
38623
  asrs_Simulator$Reason_$callClinit();
38616
38624
  asrs_Simulator$SimThread_stopExecution($this, 1, asrs_Simulator$Reason_CLIFF_TERMINATION);
38617
38625
  return;
@@ -38622,15 +38630,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38622
38630
  try {
38623
38631
  be: {
38624
38632
  try {
38625
- $instruction = asr_ProgramStatement_getInstruction(var$21);
38633
+ $instruction = asr_ProgramStatement_getInstruction($se);
38626
38634
  if ($instruction !== null)
38627
38635
  break be;
38628
- $instruction = new asr_SimulationException();
38629
- $se = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement(var$21));
38630
- $e = jl_StringBuilder__init_();
38631
- jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append($e, $rt_s(1880)), $se), var$12);
38632
- asr_SimulationException__init_4($instruction, var$21, jl_StringBuilder_toString($e), 2);
38633
- $rt_throw($instruction);
38636
+ $e = new asr_SimulationException();
38637
+ $tmp_0 = asru_Binary_intToHexString(asr_ProgramStatement_getBinaryStatement($se));
38638
+ var$25 = jl_StringBuilder__init_();
38639
+ jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(var$25, $rt_s(1880)), $tmp_0), var$12);
38640
+ asr_SimulationException__init_4($e, $se, jl_StringBuilder_toString(var$25), 2);
38641
+ $rt_throw($e);
38634
38642
  } catch ($$e) {
38635
38643
  $$je = $rt_wrapException($$e);
38636
38644
  if ($$je instanceof asr_BreakpointException) {
@@ -38690,7 +38698,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38690
38698
  $timeSampleCountdown = $timeSampleCountdown + -1 | 0;
38691
38699
  if ($timeSampleCountdown <= 0) {
38692
38700
  $timeSampleCountdown = 64;
38693
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis());
38701
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($timeRegister, jl_System_currentTimeMillis(), $this.$pc0);
38694
38702
  }
38695
38703
  if ($ebreak)
38696
38704
  break b;
@@ -38715,13 +38723,15 @@ var asrs_Simulator$SimThread_run = ($this) => {
38715
38723
  asrs_Simulator$SimThread_stopExecution($this, 0, asrs_Simulator$Reason_BREAKPOINT);
38716
38724
  return;
38717
38725
  }
38718
- if ($e.$message === null) {
38719
- asrs_Simulator$Reason_$callClinit();
38720
- $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38721
- } else {
38726
+ if ($e.$message !== null) {
38722
38727
  asrs_Simulator$Reason_$callClinit();
38723
38728
  $this.$constructReturnReason = asrs_Simulator$Reason_EXCEPTION;
38724
38729
  $this.$pe = $e;
38730
+ } else {
38731
+ asrs_Simulator$Reason_$callClinit();
38732
+ $this.$constructReturnReason = asrs_Simulator$Reason_NORMAL_TERMINATION;
38733
+ if ($backStepping)
38734
+ asrs_BackStepper_addDoNothing($backStepper, $this.$pc0);
38725
38735
  }
38726
38736
  asrs_Simulator$SimThread_stopExecution($this, 1, $this.$constructReturnReason);
38727
38737
  return;
@@ -38729,7 +38739,7 @@ var asrs_Simulator$SimThread_run = ($this) => {
38729
38739
  $rt_invalidPointer();
38730
38740
  }
38731
38741
  }
38732
- $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);
38742
+ $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);
38733
38743
  };
38734
38744
  var asrs_Simulator$SimThread__clinit_ = () => {
38735
38745
  asrs_Simulator$SimThread_$assertionsDisabled = 0;
@@ -43840,47 +43850,48 @@ $rt_metadata([
43840
43850
  0,
43841
43851
  0,
43842
43852
  0,
43843
- asrrh_ControlAndStatusRegisterFile,
43844
- 0,
43853
+ asr_JsProgramStatement,
43854
+ "JsProgramStatement",
43855
+ 11,
43845
43856
  jl_Object,
43846
43857
  [],
43847
43858
  1,
43848
43859
  0,
43849
- () => asrrh_ControlAndStatusRegisterFile_$callClinit(),
43850
43860
  0,
43851
- asrrh_RegisterFile,
43861
+ 0,
43862
+ ju_Observer,
43852
43863
  0,
43853
43864
  jl_Object,
43854
43865
  [],
43855
- 1,
43866
+ 1537,
43856
43867
  0,
43857
- () => asrrh_RegisterFile_$callClinit(),
43858
43868
  0,
43859
- jm_BigInteger,
43860
- "BigInteger",
43861
- 18,
43862
- jl_Number,
43863
- [jl_Comparable, ji_Serializable],
43864
- 1,
43865
- 0,
43866
- () => jm_BigInteger_$callClinit(),
43867
- ["$hashCode", $rt_wrapFunction0(jm_BigInteger_hashCode), "$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString), "$compareTo0", $rt_wrapFunction1(jm_BigInteger_compareTo0)],
43868
- asr_JsRiscV$Body,
43869
43869
  0,
43870
+ asr_JsMemoryObserver,
43871
+ "JsMemoryObserver",
43872
+ 11,
43870
43873
  jl_Object,
43871
- [],
43872
- 1536,
43874
+ [ju_Observer],
43873
43875
  0,
43874
43876
  0,
43875
43877
  0,
43876
- asr_JsRiscV$simulate$lambda$_12_0,
43878
+ 0,
43879
+ asrrh_ControlAndStatusRegisterFile,
43877
43880
  0,
43878
43881
  jl_Object,
43879
- [asr_JsRiscV$Body],
43882
+ [],
43880
43883
  1,
43881
43884
  0,
43885
+ () => asrrh_ControlAndStatusRegisterFile_$callClinit(),
43886
+ 0,
43887
+ asrrh_RegisterFile,
43882
43888
  0,
43883
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_12_0_run)]
43889
+ jl_Object,
43890
+ [],
43891
+ 1,
43892
+ 0,
43893
+ () => asrrh_RegisterFile_$callClinit(),
43894
+ 0
43884
43895
  ]);
43885
43896
  $rt_metadata([
43886
43897
  juf_ToIntFunction,
@@ -43899,73 +43910,70 @@ $rt_metadata([
43899
43910
  0,
43900
43911
  0,
43901
43912
  0,
43902
- asr_JsProgramStatement,
43903
- "JsProgramStatement",
43904
- 11,
43913
+ otjc_JSArrayReader,
43914
+ 0,
43905
43915
  jl_Object,
43906
- [],
43907
- 1,
43916
+ [otj_JSObject],
43917
+ 1537,
43908
43918
  0,
43909
43919
  0,
43910
43920
  0,
43911
- asr_JsRiscV$step$lambda$_10_0,
43921
+ otjc_JSArray,
43912
43922
  0,
43913
43923
  jl_Object,
43914
- [asr_JsRiscV$Body],
43924
+ [otjc_JSArrayReader],
43915
43925
  1,
43916
43926
  0,
43917
43927
  0,
43918
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_10_0_run)],
43919
- asr_JsStackFrame,
43920
- "JsStackFrame",
43921
- 11,
43928
+ 0,
43929
+ asrs_BackStepper,
43930
+ 0,
43922
43931
  jl_Object,
43923
43932
  [],
43924
43933
  1,
43925
43934
  0,
43935
+ () => asrs_BackStepper_$callClinit(),
43926
43936
  0,
43927
- 0,
43928
- ju_Observer,
43937
+ asr_JsBackStep,
43929
43938
  0,
43930
43939
  jl_Object,
43931
43940
  [],
43932
- 1537,
43941
+ 17,
43933
43942
  0,
43934
43943
  0,
43935
43944
  0,
43936
- asr_JsMemoryObserver,
43937
- "JsMemoryObserver",
43938
- 11,
43939
- jl_Object,
43940
- [ju_Observer],
43945
+ asr_JsUndoGroup,
43941
43946
  0,
43947
+ jl_Object,
43948
+ [],
43949
+ 17,
43942
43950
  0,
43943
43951
  0,
43944
43952
  0,
43945
- asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0,
43953
+ asr_JsRiscV$Body,
43946
43954
  0,
43947
43955
  jl_Object,
43948
- [asr_JsRiscV$Body],
43949
- 1,
43956
+ [],
43957
+ 1536,
43950
43958
  0,
43951
43959
  0,
43952
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run)],
43953
- asrrh_FloatingPointRegisterFile,
43960
+ 0,
43961
+ asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0,
43954
43962
  0,
43955
43963
  jl_Object,
43956
- [],
43964
+ [asr_JsRiscV$Body],
43957
43965
  1,
43958
43966
  0,
43959
- () => asrrh_FloatingPointRegisterFile_$callClinit(),
43960
43967
  0,
43961
- asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0,
43968
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run)],
43969
+ asr_JsRiscV$simulate$lambda$_12_0,
43962
43970
  0,
43963
43971
  jl_Object,
43964
43972
  [asr_JsRiscV$Body],
43965
43973
  1,
43966
43974
  0,
43967
43975
  0,
43968
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_17_0_run)],
43976
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_12_0_run)],
43969
43977
  asr_JsCompilationResult,
43970
43978
  "JsCompilationResult",
43971
43979
  11,
@@ -43984,54 +43992,55 @@ $rt_metadata([
43984
43992
  0,
43985
43993
  0,
43986
43994
  0,
43987
- asr_JsRiscV$simulateWithLimit$lambda$_13_0,
43995
+ asrrh_FloatingPointRegisterFile,
43988
43996
  0,
43989
43997
  jl_Object,
43990
- [asr_JsRiscV$Body],
43998
+ [],
43991
43999
  1,
43992
44000
  0,
44001
+ () => asrrh_FloatingPointRegisterFile_$callClinit(),
43993
44002
  0,
43994
- ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithLimit$lambda$_13_0_run)],
43995
- otjc_JSArrayReader,
43996
- 0,
43997
- jl_Object,
43998
- [otj_JSObject],
43999
- 1537,
44000
- 0,
44001
- 0,
44002
- 0,
44003
- otjc_JSArray,
44003
+ asr_JsRiscV$simulateWithLimit$lambda$_13_0,
44004
44004
  0,
44005
44005
  jl_Object,
44006
- [otjc_JSArrayReader],
44006
+ [asr_JsRiscV$Body],
44007
44007
  1,
44008
44008
  0,
44009
44009
  0,
44010
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithLimit$lambda$_13_0_run)],
44011
+ jm_BigInteger,
44012
+ "BigInteger",
44013
+ 18,
44014
+ jl_Number,
44015
+ [jl_Comparable, ji_Serializable],
44016
+ 1,
44010
44017
  0,
44011
- asr_JsBackStep,
44012
- 0,
44013
- jl_Object,
44014
- [],
44015
- 17,
44018
+ () => jm_BigInteger_$callClinit(),
44019
+ ["$hashCode", $rt_wrapFunction0(jm_BigInteger_hashCode), "$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString), "$compareTo0", $rt_wrapFunction1(jm_BigInteger_compareTo0)],
44020
+ jl_Double,
44016
44021
  0,
44022
+ jl_Number,
44023
+ [jl_Comparable],
44024
+ 1,
44017
44025
  0,
44026
+ () => jl_Double_$callClinit(),
44018
44027
  0,
44019
- asrs_BackStepper,
44028
+ asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0,
44020
44029
  0,
44021
44030
  jl_Object,
44022
- [],
44031
+ [juf_Function],
44023
44032
  1,
44024
44033
  0,
44025
- () => asrs_BackStepper_$callClinit(),
44026
44034
  0,
44027
- asr_JsUndoGroup,
44035
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0_apply)],
44036
+ asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1,
44028
44037
  0,
44029
44038
  jl_Object,
44030
- [],
44031
- 17,
44032
- 0,
44039
+ [juf_IntFunction],
44040
+ 1,
44033
44041
  0,
44034
44042
  0,
44043
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1_apply)],
44035
44044
  jl_IllegalStateException,
44036
44045
  "IllegalStateException",
44037
44046
  19,
@@ -44058,30 +44067,31 @@ $rt_metadata([
44058
44067
  0,
44059
44068
  0,
44060
44069
  0,
44061
- jl_Double,
44070
+ asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0,
44062
44071
  0,
44063
- jl_Number,
44064
- [jl_Comparable],
44072
+ jl_Object,
44073
+ [asr_JsRiscV$Body],
44065
44074
  1,
44066
44075
  0,
44067
- () => jl_Double_$callClinit(),
44068
- 0,
44069
- asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0,
44070
44076
  0,
44077
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_16_0_run)],
44078
+ asr_JsStackFrame,
44079
+ "JsStackFrame",
44080
+ 11,
44071
44081
  jl_Object,
44072
- [juf_Function],
44082
+ [],
44073
44083
  1,
44074
44084
  0,
44075
44085
  0,
44076
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_0_apply)],
44077
- asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1,
44086
+ 0,
44087
+ asr_JsRiscV$step$lambda$_10_0,
44078
44088
  0,
44079
44089
  jl_Object,
44080
- [juf_IntFunction],
44090
+ [asr_JsRiscV$Body],
44081
44091
  1,
44082
44092
  0,
44083
44093
  0,
44084
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_63_1_apply)],
44094
+ ["$run1", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_10_0_run)],
44085
44095
  asr_JsRiscVTokenizedLine,
44086
44096
  "JsRiscVTokenizedLine",
44087
44097
  11,
@@ -44366,24 +44376,6 @@ $rt_metadata([
44366
44376
  0,
44367
44377
  0,
44368
44378
  ["$contains1", $rt_wrapFunction1(jur_CharClass$16_contains)],
44369
- asrrh_Register,
44370
- "Register",
44371
- 8,
44372
- ju_Observable,
44373
- [],
44374
- 1,
44375
- 0,
44376
- 0,
44377
- ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
44378
- asr_JsRiscV$PokeRegisterWrite,
44379
- "JsRiscV$PokeRegisterWrite",
44380
- 11,
44381
- jl_Object,
44382
- [],
44383
- 16,
44384
- 0,
44385
- 0,
44386
- 0,
44387
44379
  asr_RISCVprogram,
44388
44380
  "RISCVprogram",
44389
44381
  2,
@@ -44393,31 +44385,15 @@ $rt_metadata([
44393
44385
  0,
44394
44386
  0,
44395
44387
  0,
44396
- otjc_JSPromise$Executor,
44397
- 0,
44398
- jl_Object,
44399
- [otj_JSObject],
44400
- 1537,
44401
- 0,
44402
- 0,
44403
- 0,
44404
- asr_JsRiscV$run$lambda$_9_0,
44405
- "JsRiscV$run$lambda$_9_0",
44406
- 11,
44407
- jl_Object,
44408
- [otjc_JSPromise$Executor],
44409
- 1,
44410
- 0,
44411
- 0,
44412
- 0,
44413
- otjc_JSPromise,
44414
- 0,
44415
- jl_Object,
44416
- [otj_JSObject],
44388
+ asrrh_Register,
44389
+ "Register",
44390
+ 8,
44391
+ ju_Observable,
44392
+ [],
44417
44393
  1,
44418
44394
  0,
44419
44395
  0,
44420
- 0,
44396
+ ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
44421
44397
  jl_AutoCloseable,
44422
44398
  0,
44423
44399
  jl_Object,
@@ -44458,6 +44434,22 @@ $rt_metadata([
44458
44434
  0,
44459
44435
  0,
44460
44436
  0,
44437
+ asrs_BackStepper$BackstepStack,
44438
+ 0,
44439
+ jl_Object,
44440
+ [],
44441
+ 1,
44442
+ 0,
44443
+ 0,
44444
+ 0,
44445
+ asrs_BackStepper$BackStep,
44446
+ 0,
44447
+ jl_Object,
44448
+ [],
44449
+ 1,
44450
+ 0,
44451
+ 0,
44452
+ 0,
44461
44453
  jl_Long,
44462
44454
  "Long",
44463
44455
  19,
@@ -44467,103 +44459,112 @@ $rt_metadata([
44467
44459
  0,
44468
44460
  () => jl_Long_$callClinit(),
44469
44461
  ["$toString", $rt_wrapFunction0(jl_Long_toString0), "$hashCode", $rt_wrapFunction0(jl_Long_hashCode), "$equals", $rt_wrapFunction1(jl_Long_equals), "$compareTo0", $rt_wrapFunction1(jl_Long_compareTo)],
44470
- asrrh_AddressErrorException,
44471
- "AddressErrorException",
44472
- 8,
44473
- jl_Exception,
44474
- [],
44475
- 1,
44476
- 0,
44477
- 0,
44478
- 0,
44479
- asr_JsCompilationResult$_init_$lambda$_0_0,
44462
+ otjc_JSObjects,
44480
44463
  0,
44481
44464
  jl_Object,
44482
- [juf_Function],
44483
- 1,
44465
+ [],
44466
+ 17,
44484
44467
  0,
44485
44468
  0,
44486
- ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
44487
- juf_Supplier,
44469
+ 0,
44470
+ otji_JSWrapper$Helper,
44488
44471
  0,
44489
44472
  jl_Object,
44490
44473
  [],
44491
- 1537,
44492
44474
  0,
44493
44475
  0,
44476
+ () => otji_JSWrapper$Helper_$callClinit(),
44494
44477
  0,
44495
- asr_JsCompilationResult$_init_$lambda$_0_1,
44478
+ otjc_JSUndefined,
44496
44479
  0,
44497
44480
  jl_Object,
44498
- [juf_Supplier],
44481
+ [otj_JSObject],
44499
44482
  1,
44500
44483
  0,
44501
44484
  0,
44502
44485
  0,
44503
- juf_BiConsumer,
44486
+ otjc_JSPromise$Executor,
44504
44487
  0,
44505
44488
  jl_Object,
44506
- [],
44489
+ [otj_JSObject],
44507
44490
  1537,
44508
44491
  0,
44509
44492
  0,
44510
44493
  0,
44511
- asr_JsCompilationResult$_init_$lambda$_0_2,
44512
- 0,
44494
+ asr_JsRiscV$run$lambda$_9_0,
44495
+ "JsRiscV$run$lambda$_9_0",
44496
+ 11,
44513
44497
  jl_Object,
44514
- [juf_BiConsumer],
44498
+ [otjc_JSPromise$Executor],
44515
44499
  1,
44516
44500
  0,
44517
44501
  0,
44518
44502
  0,
44519
- asr_JsCompilationResult$_init_$lambda$_0_3,
44503
+ otjc_JSPromise,
44520
44504
  0,
44521
44505
  jl_Object,
44522
- [juf_BiConsumer],
44506
+ [otj_JSObject],
44523
44507
  1,
44524
44508
  0,
44525
44509
  0,
44526
44510
  0,
44527
- asrs_BackStepper$BackstepStack,
44511
+ asr_JsCompilationResult$_init_$lambda$_0_0,
44528
44512
  0,
44529
44513
  jl_Object,
44530
- [],
44514
+ [juf_Function],
44531
44515
  1,
44532
44516
  0,
44533
44517
  0,
44534
- 0,
44535
- asrs_BackStepper$BackStep,
44518
+ ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
44519
+ juf_Supplier,
44536
44520
  0,
44537
44521
  jl_Object,
44538
44522
  [],
44523
+ 1537,
44524
+ 0,
44525
+ 0,
44526
+ 0,
44527
+ asr_JsCompilationResult$_init_$lambda$_0_1,
44528
+ 0,
44529
+ jl_Object,
44530
+ [juf_Supplier],
44539
44531
  1,
44540
44532
  0,
44541
44533
  0,
44542
44534
  0,
44543
- otjc_JSObjects,
44535
+ juf_BiConsumer,
44544
44536
  0,
44545
44537
  jl_Object,
44546
44538
  [],
44547
- 17,
44539
+ 1537,
44548
44540
  0,
44549
44541
  0,
44550
44542
  0,
44551
- otji_JSWrapper$Helper,
44543
+ asr_JsCompilationResult$_init_$lambda$_0_2,
44552
44544
  0,
44553
44545
  jl_Object,
44554
- [],
44546
+ [juf_BiConsumer],
44547
+ 1,
44555
44548
  0,
44556
44549
  0,
44557
- () => otji_JSWrapper$Helper_$callClinit(),
44558
44550
  0,
44559
- otjc_JSUndefined,
44551
+ asr_JsCompilationResult$_init_$lambda$_0_3,
44560
44552
  0,
44561
44553
  jl_Object,
44562
- [otj_JSObject],
44554
+ [juf_BiConsumer],
44563
44555
  1,
44564
44556
  0,
44565
44557
  0,
44566
44558
  0,
44559
+ asr_JsRiscV$PokeRegisterWrite,
44560
+ "JsRiscV$PokeRegisterWrite",
44561
+ 11,
44562
+ jl_Object,
44563
+ [],
44564
+ 16,
44565
+ 0,
44566
+ 0,
44567
+ 0,
44567
44568
  asr_JsPokeWrite,
44568
44569
  0,
44569
44570
  jl_Object,
@@ -44572,6 +44573,15 @@ $rt_metadata([
44572
44573
  0,
44573
44574
  0,
44574
44575
  0,
44576
+ asrrh_AddressErrorException,
44577
+ "AddressErrorException",
44578
+ 8,
44579
+ jl_Exception,
44580
+ [],
44581
+ 1,
44582
+ 0,
44583
+ 0,
44584
+ 0,
44575
44585
  asra_TokenTypes,
44576
44586
  0,
44577
44587
  jl_Enum,
@@ -46587,17 +46597,17 @@ $rt_metadata([
46587
46597
  0,
46588
46598
  0,
46589
46599
  0,
46590
- asrrh_StackFrame,
46591
- "StackFrame",
46592
- 8,
46600
+ asr_ErrorList,
46601
+ 0,
46593
46602
  jl_Object,
46594
46603
  [],
46595
46604
  1,
46596
46605
  0,
46597
46606
  0,
46598
46607
  0,
46599
- asr_ErrorList,
46600
- 0,
46608
+ asrrh_StackFrame,
46609
+ "StackFrame",
46610
+ 8,
46601
46611
  jl_Object,
46602
46612
  [],
46603
46613
  1,
@@ -47114,14 +47124,6 @@ $rt_metadata([
47114
47124
  0,
47115
47125
  0,
47116
47126
  ["$find0", $rt_wrapFunction3(jur_BackReferencedSingleSet_find), "$findBack", $rt_wrapFunction4(jur_BackReferencedSingleSet_findBack), "$processBackRefReplacement", $rt_wrapFunction0(jur_BackReferencedSingleSet_processBackRefReplacement)],
47117
- jm_Conversion,
47118
- 0,
47119
- jl_Object,
47120
- [],
47121
- 0,
47122
- 0,
47123
- () => jm_Conversion_$callClinit(),
47124
- 0,
47125
47127
  jus_IntStream,
47126
47128
  0,
47127
47129
  jl_Object,
@@ -47146,6 +47148,14 @@ $rt_metadata([
47146
47148
  0,
47147
47149
  0,
47148
47150
  0,
47151
+ jm_Conversion,
47152
+ 0,
47153
+ jl_Object,
47154
+ [],
47155
+ 0,
47156
+ 0,
47157
+ () => jm_Conversion_$callClinit(),
47158
+ 0,
47149
47159
  ju_AbstractList$1,
47150
47160
  0,
47151
47161
  jl_Object,
@@ -47178,14 +47188,6 @@ $rt_metadata([
47178
47188
  0,
47179
47189
  () => asrs_Simulator$Reason_$callClinit(),
47180
47190
  0,
47181
- asrrh_Stack,
47182
- 0,
47183
- jl_Object,
47184
- [],
47185
- 1,
47186
- 0,
47187
- () => asrrh_Stack_$callClinit(),
47188
- 0,
47189
47191
  juf_Predicate,
47190
47192
  0,
47191
47193
  jl_Object,
@@ -47202,6 +47204,14 @@ $rt_metadata([
47202
47204
  0,
47203
47205
  0,
47204
47206
  0,
47207
+ asrrh_Stack,
47208
+ 0,
47209
+ jl_Object,
47210
+ [],
47211
+ 1,
47212
+ 0,
47213
+ () => asrrh_Stack_$callClinit(),
47214
+ 0,
47205
47215
  asrrh_InterruptController,
47206
47216
  0,
47207
47217
  jl_Object,
@@ -47867,14 +47877,6 @@ $rt_metadata([
47867
47877
  0,
47868
47878
  0,
47869
47879
  0,
47870
- asrs_BackStepper$Action,
47871
- 0,
47872
- jl_Enum,
47873
- [],
47874
- 65552,
47875
- 0,
47876
- () => asrs_BackStepper$Action_$callClinit(),
47877
- 0,
47878
47880
  asrs_BackStepper$PokeRestore,
47879
47881
  "BackStepper$PokeRestore",
47880
47882
  3,
@@ -47884,6 +47886,14 @@ $rt_metadata([
47884
47886
  0,
47885
47887
  0,
47886
47888
  0,
47889
+ asrs_BackStepper$Action,
47890
+ 0,
47891
+ jl_Enum,
47892
+ [],
47893
+ 65552,
47894
+ 0,
47895
+ () => asrs_BackStepper$Action_$callClinit(),
47896
+ 0,
47887
47897
  jusi_SimpleStreamImpl$toArray$lambda$_20_0,
47888
47898
  0,
47889
47899
  jl_Object,
@@ -49703,9 +49713,6 @@ $rt_stringPool([
49703
49713
  "t5",
49704
49714
  "t6",
49705
49715
  "pc",
49706
- "Negative bit address",
49707
- "BigInteger out of int range",
49708
- "BigInteger out of long range",
49709
49716
  "ft0",
49710
49717
  "ft1",
49711
49718
  "ft2",
@@ -49738,6 +49745,9 @@ $rt_stringPool([
49738
49745
  "ft9",
49739
49746
  "ft10",
49740
49747
  "ft11",
49748
+ "Negative bit address",
49749
+ "BigInteger out of int range",
49750
+ "BigInteger out of long range",
49741
49751
  "Infinity",
49742
49752
  "NaN",
49743
49753
  " , ",
@@ -51175,6 +51185,19 @@ var $rt_jso_marker = Symbol("jsoClass");
51175
51185
  Object.defineProperty(c, "sourcePath", {
51176
51186
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSourcePath$exported$1)
51177
51187
  });
51188
+ c = asr_JsCompilationResult.prototype;
51189
+ Object.defineProperty(c, "hasErrors", {
51190
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
51191
+ });
51192
+ Object.defineProperty(c, "hasWarnings", {
51193
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
51194
+ });
51195
+ Object.defineProperty(c, "report", {
51196
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
51197
+ });
51198
+ Object.defineProperty(c, "errors", {
51199
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
51200
+ });
51178
51201
  c = asr_JsStackFrame.prototype;
51179
51202
  Object.defineProperty(c, "pc", {
51180
51203
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -51191,19 +51214,6 @@ var $rt_jso_marker = Symbol("jsoClass");
51191
51214
  Object.defineProperty(c, "toAddress", {
51192
51215
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
51193
51216
  });
51194
- c = asr_JsCompilationResult.prototype;
51195
- Object.defineProperty(c, "hasErrors", {
51196
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
51197
- });
51198
- Object.defineProperty(c, "hasWarnings", {
51199
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
51200
- });
51201
- Object.defineProperty(c, "report", {
51202
- get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
51203
- });
51204
- Object.defineProperty(c, "errors", {
51205
- get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
51206
- });
51207
51217
  c = asr_JsRiscVTokenizedLine.prototype;
51208
51218
  Object.defineProperty(c, "sourceLine", {
51209
51219
  get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getSourceLine$exported$0)
@@ -51281,18 +51291,18 @@ function $rt_export_class_JsRISCVIO_55() {
51281
51291
  return asr_JsRISCVIO__init_$exported$0();
51282
51292
  }
51283
51293
  $rt_export_class_JsRISCVIO_55.prototype = asr_JsRISCVIO.prototype;
51284
- function $rt_export_class_JsProgramStatement_251() {
51294
+ function $rt_export_class_JsProgramStatement_244() {
51285
51295
  throw new Error("Can't instantiate this class directly");
51286
51296
  }
51287
- $rt_export_class_JsProgramStatement_251.prototype = asr_JsProgramStatement.prototype;
51288
- function $rt_export_class_JsStackFrame_253() {
51289
- throw new Error("Can't instantiate this class directly");
51290
- }
51291
- $rt_export_class_JsStackFrame_253.prototype = asr_JsStackFrame.prototype;
51297
+ $rt_export_class_JsProgramStatement_244.prototype = asr_JsProgramStatement.prototype;
51292
51298
  function $rt_export_class_JsCompilationResult_259() {
51293
51299
  throw new Error("Can't instantiate this class directly");
51294
51300
  }
51295
51301
  $rt_export_class_JsCompilationResult_259.prototype = asr_JsCompilationResult.prototype;
51302
+ function $rt_export_class_JsStackFrame_271() {
51303
+ throw new Error("Can't instantiate this class directly");
51304
+ }
51305
+ $rt_export_class_JsStackFrame_271.prototype = asr_JsStackFrame.prototype;
51296
51306
  function $rt_export_class_JsRiscVTokenizedLine_273() {
51297
51307
  throw new Error("Can't instantiate this class directly");
51298
51308
  }