@specy/risc-v 4.2.1 → 4.2.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 +1040 -1032
  2. package/dist/index.mjs +1040 -1032
  3. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -22961,20 +22961,252 @@ var otci_Base46_decode = ($seq) => {
22961
22961
  $result = -$result | 0;
22962
22962
  return $result;
22963
22963
  };
22964
- var asr_JsRiscV$Body = $rt_classWithoutFields(0);
22965
- function asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0() {
22964
+ var ju_Observer = $rt_classWithoutFields(0);
22965
+ function asr_JsMemoryObserver() {
22966
22966
  let a = this;
22967
22967
  jl_Object.call(a);
22968
- a.$_02 = null;
22969
- a.$_1 = null;
22968
+ a.$handle = 0;
22969
+ a.$startAddress = 0;
22970
+ a.$endAddress = 0;
22971
+ a.$onRead = null;
22972
+ a.$onWrite = null;
22973
+ a.$reportsLength = 0;
22970
22974
  }
22971
- var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
22972
- let var$1, var$2, var$3, $ptr, $tmp;
22975
+ var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
22976
+ $this.$handle = $handle;
22977
+ $this.$startAddress = $startAddress;
22978
+ $this.$endAddress = $endAddress;
22979
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
22980
+ $onRead = null;
22981
+ $this.$onRead = $onRead;
22982
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
22983
+ $onWrite = null;
22984
+ $this.$onWrite = $onWrite;
22985
+ $this.$reportsLength = $reportsLength;
22986
+ };
22987
+ var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
22988
+ let var_6 = new asr_JsMemoryObserver();
22989
+ asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
22990
+ return var_6;
22991
+ };
22992
+ var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
22993
+ return var$1 === null || var$1 === void 0;
22994
+ };
22995
+ var asr_JsMemoryObserver_describe$js_body$_5 = (var$1) => {
22996
+ return var$1 instanceof Error ? var$1.message || String(var$1) : String(var$1);
22997
+ };
22998
+ var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
22999
+ function asr_JsRiscV$PokeRecord() {
23000
+ let a = this;
23001
+ jl_Object.call(a);
23002
+ a.$group1 = 0;
23003
+ a.$writes = null;
23004
+ }
23005
+ function asr_JsRiscV$PokeJournal() {
23006
+ let a = this;
23007
+ jl_Object.call(a);
23008
+ a.$group3 = 0;
23009
+ a.$registers = null;
23010
+ a.$registersByName = null;
23011
+ a.$memoryOldBytes = null;
23012
+ }
23013
+ function asrs_BackStepper() {
23014
+ let a = this;
23015
+ jl_Object.call(a);
23016
+ a.$instructionSerial = Long_ZERO;
23017
+ a.$pokeSerial = Long_ZERO;
23018
+ a.$instructionPc = 0;
23019
+ a.$instructionDiscarded = 0;
23020
+ a.$engaged = 0;
23021
+ a.$backSteps = null;
23022
+ a.$pokeGroup = 0;
23023
+ a.$pokeRestores = null;
23024
+ }
23025
+ var asrs_BackStepper_nextSerial = Long_ZERO;
23026
+ var asrs_BackStepper_nextPokeGroup = 0;
23027
+ var asrs_BackStepper_$callClinit = () => {
23028
+ asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
23029
+ asrs_BackStepper__clinit_();
23030
+ };
23031
+ var asrs_BackStepper_allocateSerial = () => {
23032
+ let var$1, var$2;
23033
+ asrs_BackStepper_$callClinit();
23034
+ var$1 = asrs_BackStepper_nextSerial;
23035
+ if (Long_ne(var$1, Long_create(4294967295, 2147483647))) {
23036
+ asrs_BackStepper_nextSerial = Long_add(var$1, Long_fromInt(1));
23037
+ return var$1;
23038
+ }
23039
+ var$2 = new jl_IllegalStateException();
23040
+ jl_Throwable__init_(var$2, $rt_s(937));
23041
+ $rt_throw(var$2);
23042
+ };
23043
+ var asrs_BackStepper_beginInstruction = ($this, $pc, $recording) => {
23044
+ let var$3;
23045
+ if (Long_eq($this.$instructionSerial, Long_ZERO) && !(!$this.$pokeGroup ? 0 : 1)) {
23046
+ $this.$instructionSerial = asrs_BackStepper_allocateSerial();
23047
+ $this.$instructionPc = $pc;
23048
+ $pc = $recording && $this.$engaged && $this.$backSteps.$capacity ? 0 : 1;
23049
+ $this.$instructionDiscarded = $pc;
23050
+ if ($pc)
23051
+ asrs_BackStepper_clearHistory($this);
23052
+ return;
23053
+ }
23054
+ var$3 = new jl_IllegalStateException();
23055
+ jl_Throwable__init_(var$3, $rt_s(938));
23056
+ $rt_throw(var$3);
23057
+ };
23058
+ var asrs_BackStepper_endInstruction = ($this) => {
23059
+ let var$1, $$je;
23060
+ a: {
23061
+ try {
23062
+ if (!$this.$instructionDiscarded)
23063
+ asrs_BackStepper_addDoNothing($this, $this.$instructionPc);
23064
+ } catch ($$e) {
23065
+ $$je = $rt_wrapException($$e);
23066
+ var$1 = $$je;
23067
+ break a;
23068
+ }
23069
+ $this.$instructionSerial = Long_ZERO;
23070
+ return;
23071
+ }
23072
+ $this.$instructionSerial = Long_ZERO;
23073
+ $rt_throw(var$1);
23074
+ };
23075
+ var asrs_BackStepper_getCurrentInstructionSerial = ($this) => {
23076
+ return $this.$instructionSerial;
23077
+ };
23078
+ var asrs_BackStepper_clearHistory = ($this) => {
23079
+ let var$1;
23080
+ var$1 = $this.$backSteps;
23081
+ var$1.$size2 = 0;
23082
+ var$1.$top = -1;
23083
+ };
23084
+ var asrs_BackStepper_applyRestore = ($action, $param1, $param2) => {
23085
+ let var$4, var$5, var$6, var$7;
23086
+ asrs_BackStepper_$callClinit();
23087
+ a: {
23088
+ switch ($action.$ordinal0) {
23089
+ case 0:
23090
+ asr_Globals_$callClinit();
23091
+ $action = asr_Globals_memory;
23092
+ var$4 = Long_lo($param2);
23093
+ var$5 = asrrh_Memory_storeRawWord($action, $param1, var$4);
23094
+ asrrh_Memory_notifyAnyObservers($action, 1, $param1, 4, var$4);
23095
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
23096
+ var$6 = asr_Globals_program.$backStepper;
23097
+ var$7 = var$6.$backSteps;
23098
+ asrs_BackStepper$Action_$callClinit();
23099
+ 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);
23100
+ }
23101
+ break a;
23102
+ case 1:
23103
+ asr_Globals_$callClinit();
23104
+ asrrh_Memory_setDoubleWord(asr_Globals_memory, $param1, $param2);
23105
+ break a;
23106
+ case 2:
23107
+ asr_Globals_$callClinit();
23108
+ asrrh_Memory_setWord(asr_Globals_memory, $param1, Long_lo($param2));
23109
+ break a;
23110
+ case 3:
23111
+ asr_Globals_$callClinit();
23112
+ asrrh_Memory_setHalf(asr_Globals_memory, $param1, Long_lo($param2));
23113
+ break a;
23114
+ case 4:
23115
+ asr_Globals_$callClinit();
23116
+ asrrh_Memory_setByte(asr_Globals_memory, $param1, Long_lo($param2));
23117
+ break a;
23118
+ case 5:
23119
+ asrrh_RegisterFile_updateRegister($param1, $param2);
23120
+ break a;
23121
+ case 6:
23122
+ asrrh_RegisterFile_setProgramCounter($param1);
23123
+ break a;
23124
+ case 7:
23125
+ asrrh_ControlAndStatusRegisterFile_updateRegister0($param1, $param2);
23126
+ break a;
23127
+ case 8:
23128
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($param1, $param2);
23129
+ break a;
23130
+ case 9:
23131
+ asrrh_FloatingPointRegisterFile_updateRegisterLong($param1, $param2);
23132
+ break a;
23133
+ case 10:
23134
+ break;
23135
+ case 11:
23136
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
23137
+ $param1 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
23138
+ if ($param1 > 0)
23139
+ asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = $param1 - 1 | 0;
23140
+ else {
23141
+ $action = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(658));
23142
+ var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(659));
23143
+ asrrh_Register_setValueBackdoor($action, Long_sub($action.$getValueNoNotify(), Long_fromInt(1)));
23144
+ asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
23145
+ }
23146
+ break a;
23147
+ case 12:
23148
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
23149
+ asrrh_ControlAndStatusRegisterFile_settleCounters();
23150
+ $action = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1);
23151
+ if ($action !== null)
23152
+ $action.$setValue($param2);
23153
+ break a;
23154
+ case 13:
23155
+ case 15:
23156
+ break a;
23157
+ case 14:
23158
+ $param1 = !$param1 ? 0 : 1;
23159
+ var$4 = Long_lo($param2);
23160
+ asrs_ProgramExit_exited = $param1;
23161
+ asr_Globals_$callClinit();
23162
+ asr_Globals_exitCode = var$4;
23163
+ break a;
23164
+ case 16:
23165
+ asrrh_Memory_$callClinit();
23166
+ asrrh_Memory_heapAddress = $param1;
23167
+ break a;
23168
+ default:
23169
+ break a;
23170
+ }
23171
+ }
23172
+ };
23173
+ var asrs_BackStepper_sameGroup = ($one, $other) => {
23174
+ asrs_BackStepper_$callClinit();
23175
+ return Long_ne($one.$serial, $other.$serial) ? 0 : 1;
23176
+ };
23177
+ var asrs_BackStepper_pc = ($this) => {
23178
+ return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
23179
+ };
23180
+ var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
23181
+ let var$4;
23182
+ var$4 = $this.$backSteps;
23183
+ asrs_BackStepper$Action_$callClinit();
23184
+ asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
23185
+ return $value;
23186
+ };
23187
+ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
23188
+ let var$2;
23189
+ if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && Long_eq(asrs_BackStepper$BackstepStack_peek($this.$backSteps).$serial, $this.$instructionSerial))) {
23190
+ var$2 = $this.$backSteps;
23191
+ asrs_BackStepper$Action_$callClinit();
23192
+ asrs_BackStepper$BackstepStack_push1(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
23193
+ }
23194
+ };
23195
+ var asrs_BackStepper__clinit_ = () => {
23196
+ asrs_BackStepper_nextSerial = Long_fromInt(1);
23197
+ asrs_BackStepper_nextPokeGroup = -2;
23198
+ };
23199
+ var asr_JsRiscV$Body = $rt_classWithoutFields(0);
23200
+ function asr_JsRiscV$step$lambda$_24_0() {
23201
+ jl_Object.call(this);
23202
+ this.$_010 = null;
23203
+ }
23204
+ var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23205
+ let var$1, var$2, $ptr, $tmp;
22973
23206
  $ptr = 0;
22974
23207
  if ($rt_resuming()) {
22975
23208
  let $thread = $rt_nativeThread();
22976
23209
  $ptr = $thread.pop();
22977
- var$3 = $thread.pop();
22978
23210
  var$2 = $thread.pop();
22979
23211
  var$1 = $thread.pop();
22980
23212
  var$0 = $thread.pop();
@@ -22982,15 +23214,12 @@ var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
22982
23214
  main: while (true) {
22983
23215
  switch ($ptr) {
22984
23216
  case 0:
22985
- var$1 = var$0.$_02;
22986
- var$2 = var$0.$_1;
22987
- var$1 = var$1.$main;
22988
- var$3 = new asr_RARS$simulate$lambda$_17_0();
22989
- var$3.$_038 = var$1;
22990
- var$3.$_124 = var$2;
23217
+ var$1 = var$0.$_010.$main;
23218
+ var$2 = new asr_RARS$step$lambda$_23_0();
23219
+ var$2.$_035 = var$1;
22991
23220
  $ptr = 1;
22992
23221
  case 1:
22993
- $tmp = asr_RARS_run(var$1, var$3);
23222
+ $tmp = asr_RARS_run(var$1, var$2);
22994
23223
  if ($rt_suspending()) {
22995
23224
  break main;
22996
23225
  }
@@ -23000,9 +23229,8 @@ var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
23000
23229
  $rt_invalidPointer();
23001
23230
  }
23002
23231
  }
23003
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
23232
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
23004
23233
  };
23005
- var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
23006
23234
  var asra_MemoryLayoutFacts = $rt_classWithoutFields();
23007
23235
  var asra_MemoryLayoutFacts_items = null;
23008
23236
  var asra_MemoryLayoutFacts_sections = null;
@@ -23075,214 +23303,16 @@ var asra_MemoryLayoutFacts__clinit_ = () => {
23075
23303
  asra_MemoryLayoutFacts_names = ju_ArrayList__init_();
23076
23304
  asra_MemoryLayoutFacts_symbols = ju_ArrayList__init_();
23077
23305
  };
23078
- function asr_JsProgramStatement() {
23079
- let a = this;
23080
- jl_Object.call(a);
23081
- a.$sourceLine5 = 0;
23082
- a.$sourcePath2 = null;
23083
- a.$address4 = 0;
23084
- a.$binaryStatement0 = 0;
23085
- a.$source2 = null;
23086
- a.$assemblyStatement = null;
23087
- a.$machineStatement0 = null;
23088
- }
23089
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
23090
- let var$2, var$3, var$4, var$5, var$6;
23091
- $this.$sourceLine5 = $programStatement.$sourceLine1;
23092
- $this.$sourcePath2 = $programStatement.$sourcePath0;
23093
- $this.$address4 = $programStatement.$textAddress0;
23094
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
23095
- $this.$source2 = $programStatement.$source;
23096
- var$2 = $programStatement.$basicStatementList;
23097
- if (var$2 === null) {
23098
- var$2 = $programStatement.$basicAssemblyStatement;
23099
- if (var$2 === null)
23100
- var$2 = $rt_s(2);
23101
- } else {
23102
- var$3 = asr_Globals_getSettings();
23103
- asr_Settings$Bool_$callClinit();
23104
- var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23105
- var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23106
- var$3 = new jl_StringBuffer();
23107
- jl_AbstractStringBuilder__init_(var$3);
23108
- var$6 = ju_AbstractList_iterator(var$2.$list);
23109
- while (ju_AbstractList$1_hasNext(var$6)) {
23110
- a: {
23111
- var$2 = ju_AbstractList$1_next(var$6);
23112
- switch (var$2.$type4) {
23113
- case 0:
23114
- break;
23115
- case 1:
23116
- if (var$4 == 10) {
23117
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23118
- break a;
23119
- }
23120
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23121
- break a;
23122
- case 2:
23123
- if (var$5 == 10) {
23124
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23125
- break a;
23126
- }
23127
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23128
- break a;
23129
- case 3:
23130
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23131
- break a;
23132
- default:
23133
- break a;
23134
- }
23135
- jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
23136
- }
23137
- }
23138
- var$2 = jl_AbstractStringBuilder_toString(var$3);
23139
- }
23140
- $this.$assemblyStatement = var$2;
23141
- $this.$machineStatement0 = $programStatement.$machineStatement;
23142
- };
23143
- var asr_JsProgramStatement__init_ = (var_0) => {
23144
- let var_1 = new asr_JsProgramStatement();
23145
- asr_JsProgramStatement__init_0(var_1, var_0);
23146
- return var_1;
23147
- };
23148
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
23149
- return var$1.$sourceLine5;
23150
- };
23151
- var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
23152
- return $rt_ustr(var$1.$sourcePath2);
23153
- };
23154
- var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
23155
- return $rt_ustr(var$1.$assemblyStatement);
23156
- };
23157
- var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
23158
- return $rt_ustr(var$1.$source2);
23159
- };
23160
- var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
23161
- return var$1.$address4;
23162
- };
23163
- var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
23164
- return var$1.$binaryStatement0;
23165
- };
23166
- var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
23167
- return $rt_ustr(var$1.$machineStatement0);
23168
- };
23169
- function asr_JsRiscV$PokeRecord() {
23170
- let a = this;
23171
- jl_Object.call(a);
23172
- a.$group1 = 0;
23173
- a.$writes = null;
23174
- }
23175
- function asr_JsRiscV$PokeJournal() {
23176
- let a = this;
23177
- jl_Object.call(a);
23178
- a.$group3 = 0;
23179
- a.$registers = null;
23180
- a.$registersByName = null;
23181
- a.$memoryOldBytes = null;
23182
- }
23183
- var ju_Observer = $rt_classWithoutFields(0);
23184
- function asr_JsMemoryObserver() {
23185
- let a = this;
23186
- jl_Object.call(a);
23187
- a.$handle = 0;
23188
- a.$startAddress = 0;
23189
- a.$endAddress = 0;
23190
- a.$onRead = null;
23191
- a.$onWrite = null;
23192
- a.$reportsLength = 0;
23193
- }
23194
- var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
23195
- $this.$handle = $handle;
23196
- $this.$startAddress = $startAddress;
23197
- $this.$endAddress = $endAddress;
23198
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
23199
- $onRead = null;
23200
- $this.$onRead = $onRead;
23201
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
23202
- $onWrite = null;
23203
- $this.$onWrite = $onWrite;
23204
- $this.$reportsLength = $reportsLength;
23205
- };
23206
- var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
23207
- let var_6 = new asr_JsMemoryObserver();
23208
- asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
23209
- return var_6;
23210
- };
23211
- var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
23212
- return var$1 === null || var$1 === void 0;
23213
- };
23214
- var asr_JsMemoryObserver_describe$js_body$_5 = (var$1) => {
23215
- return var$1 instanceof Error ? var$1.message || String(var$1) : String(var$1);
23216
- };
23217
- function asr_JsCompilationResult() {
23218
- let a = this;
23219
- jl_Object.call(a);
23220
- a.$report = null;
23221
- a.$errors3 = null;
23222
- }
23223
- var asr_JsCompilationResult__init_0 = ($this, var$1) => {
23224
- let var$2, var$3, var$4;
23225
- $this.$report = asr_ErrorList_generateErrorAndWarningReport(var$1);
23226
- var$1 = ju_Collection_stream(var$1.$messages);
23227
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
23228
- var$2.$_030 = $this;
23229
- var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
23230
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
23231
- var$1 = var$1;
23232
- var$3 = ju_ArrayList__init_();
23233
- var$4 = var$1;
23234
- while (true) {
23235
- var$1 = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
23236
- var$1.$_040 = var$2;
23237
- var$1.$_118 = var$3;
23238
- if (!jusi_WrappingStreamImpl_next(var$4, var$1))
23239
- break;
23240
- }
23241
- $this.$errors3 = var$3;
23242
- };
23243
- var asr_JsCompilationResult__init_ = (var_0) => {
23244
- let var_1 = new asr_JsCompilationResult();
23245
- asr_JsCompilationResult__init_0(var_1, var_0);
23246
- return var_1;
23247
- };
23248
- var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
23249
- let var$2;
23250
- var$1 = ju_Collection_stream(var$1.$errors3);
23251
- var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
23252
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
23253
- };
23254
- var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
23255
- let var$2;
23256
- var$1 = var$1.$errors3;
23257
- var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
23258
- return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
23259
- };
23260
- var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
23261
- let var$2;
23262
- var$1 = ju_Collection_stream(var$1.$errors3);
23263
- var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
23264
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
23265
- };
23266
- var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
23267
- return $rt_ustr(var$1.$report);
23268
- };
23269
- var juf_ToIntFunction = $rt_classWithoutFields(0);
23270
- var asr_JsRiscV$getRegistersValues$lambda$_43_0 = $rt_classWithoutFields();
23271
- function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0() {
23272
- let a = this;
23273
- jl_Object.call(a);
23274
- a.$_033 = null;
23275
- a.$_120 = 0;
23276
- a.$_24 = null;
23306
+ function asr_JsRiscV$simulate$lambda$_27_0() {
23307
+ jl_Object.call(this);
23308
+ this.$_027 = null;
23277
23309
  }
23278
- var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
23279
- let var$1, var$2, var$3, var$4, $ptr, $tmp;
23310
+ var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
23311
+ let var$1, var$2, $ptr, $tmp;
23280
23312
  $ptr = 0;
23281
23313
  if ($rt_resuming()) {
23282
23314
  let $thread = $rt_nativeThread();
23283
23315
  $ptr = $thread.pop();
23284
- var$4 = $thread.pop();
23285
- var$3 = $thread.pop();
23286
23316
  var$2 = $thread.pop();
23287
23317
  var$1 = $thread.pop();
23288
23318
  var$0 = $thread.pop();
@@ -23290,17 +23320,11 @@ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
23290
23320
  main: while (true) {
23291
23321
  switch ($ptr) {
23292
23322
  case 0:
23293
- var$1 = var$0.$_033;
23294
- var$2 = var$0.$_120;
23295
- var$3 = var$0.$_24;
23296
- var$1 = var$1.$main;
23297
- var$4 = new asr_RARS$simulate$lambda$_18_0();
23298
- var$4.$_025 = var$1;
23299
- var$4.$_113 = var$2;
23300
- var$4.$_23 = var$3;
23323
+ var$1 = var$0.$_027.$main;
23324
+ var$2 = -1;
23301
23325
  $ptr = 1;
23302
23326
  case 1:
23303
- $tmp = asr_RARS_run(var$1, var$4);
23327
+ $tmp = asr_RARS_simulate(var$1, var$2);
23304
23328
  if ($rt_suspending()) {
23305
23329
  break main;
23306
23330
  }
@@ -23310,18 +23334,21 @@ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
23310
23334
  $rt_invalidPointer();
23311
23335
  }
23312
23336
  }
23313
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
23337
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
23314
23338
  };
23315
- function asr_JsRiscV$step$lambda$_24_0() {
23316
- jl_Object.call(this);
23317
- this.$_010 = null;
23339
+ function asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0() {
23340
+ let a = this;
23341
+ jl_Object.call(a);
23342
+ a.$_02 = null;
23343
+ a.$_1 = null;
23318
23344
  }
23319
- var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23320
- let var$1, var$2, $ptr, $tmp;
23345
+ var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
23346
+ let var$1, var$2, var$3, $ptr, $tmp;
23321
23347
  $ptr = 0;
23322
23348
  if ($rt_resuming()) {
23323
23349
  let $thread = $rt_nativeThread();
23324
23350
  $ptr = $thread.pop();
23351
+ var$3 = $thread.pop();
23325
23352
  var$2 = $thread.pop();
23326
23353
  var$1 = $thread.pop();
23327
23354
  var$0 = $thread.pop();
@@ -23329,12 +23356,15 @@ var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23329
23356
  main: while (true) {
23330
23357
  switch ($ptr) {
23331
23358
  case 0:
23332
- var$1 = var$0.$_010.$main;
23333
- var$2 = new asr_RARS$step$lambda$_23_0();
23334
- var$2.$_035 = var$1;
23359
+ var$1 = var$0.$_02;
23360
+ var$2 = var$0.$_1;
23361
+ var$1 = var$1.$main;
23362
+ var$3 = new asr_RARS$simulate$lambda$_17_0();
23363
+ var$3.$_038 = var$1;
23364
+ var$3.$_124 = var$2;
23335
23365
  $ptr = 1;
23336
23366
  case 1:
23337
- $tmp = asr_RARS_run(var$1, var$2);
23367
+ $tmp = asr_RARS_run(var$1, var$3);
23338
23368
  if ($rt_suspending()) {
23339
23369
  break main;
23340
23370
  }
@@ -23344,7 +23374,7 @@ var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23344
23374
  $rt_invalidPointer();
23345
23375
  }
23346
23376
  }
23347
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
23377
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
23348
23378
  };
23349
23379
  function jl_Long() {
23350
23380
  jl_Number.call(this);
@@ -23427,7 +23457,7 @@ var jl_Long_parseLongImpl = ($s, $beginIndex, $endIndex, $radix) => {
23427
23457
  }
23428
23458
  if (Long_gt($value, $maxValue)) {
23429
23459
  $s = new jl_NumberFormatException();
23430
- jl_Throwable__init_($s, $rt_s(937));
23460
+ jl_Throwable__init_($s, $rt_s(939));
23431
23461
  $rt_throw($s);
23432
23462
  }
23433
23463
  $value = Long_add(Long_mul(var$8, $value), Long_fromInt($digit));
@@ -23438,7 +23468,7 @@ var jl_Long_parseLongImpl = ($s, $beginIndex, $endIndex, $radix) => {
23438
23468
  $s = jl_String_valueOf(jl_String_substring($s, $beginIndex, $endIndex));
23439
23469
  var$12 = new jl_StringBuilder();
23440
23470
  jl_AbstractStringBuilder__init_(var$12);
23441
- jl_StringBuilder_append(jl_StringBuilder_append(var$12, $rt_s(938)), $s);
23471
+ jl_StringBuilder_append(jl_StringBuilder_append(var$12, $rt_s(940)), $s);
23442
23472
  jl_Throwable__init_(var$11, jl_AbstractStringBuilder_toString(var$12));
23443
23473
  $rt_throw(var$11);
23444
23474
  }
@@ -23460,7 +23490,7 @@ var jl_Long_decode = ($nm) => {
23460
23490
  jl_Long_$callClinit();
23461
23491
  if (jl_String_isEmpty($nm)) {
23462
23492
  $nm = new jl_NumberFormatException();
23463
- jl_Throwable__init_($nm, $rt_s(939));
23493
+ jl_Throwable__init_($nm, $rt_s(941));
23464
23494
  $rt_throw($nm);
23465
23495
  }
23466
23496
  $index = 0;
@@ -23473,7 +23503,7 @@ var jl_Long_decode = ($nm) => {
23473
23503
  }
23474
23504
  if ($index >= $nm.$nativeString.length) {
23475
23505
  $nm = new jl_NumberFormatException();
23476
- jl_Throwable__init_($nm, $rt_s(940));
23506
+ jl_Throwable__init_($nm, $rt_s(942));
23477
23507
  $rt_throw($nm);
23478
23508
  }
23479
23509
  $radix = 10;
@@ -23493,7 +23523,7 @@ var jl_Long_decode = ($nm) => {
23493
23523
  }
23494
23524
  if ($index >= $nm.$nativeString.length) {
23495
23525
  $nm = new jl_NumberFormatException();
23496
- jl_Throwable__init_($nm, $rt_s(940));
23526
+ jl_Throwable__init_($nm, $rt_s(942));
23497
23527
  $rt_throw($nm);
23498
23528
  }
23499
23529
  $value = Long_ZERO;
@@ -23509,7 +23539,7 @@ var jl_Long_decode = ($nm) => {
23509
23539
  break a;
23510
23540
  if (Long_gt($value, $maxValue)) {
23511
23541
  $nm = new jl_NumberFormatException();
23512
- jl_Throwable__init_($nm, $rt_s(937));
23542
+ jl_Throwable__init_($nm, $rt_s(939));
23513
23543
  $rt_throw($nm);
23514
23544
  }
23515
23545
  $value = Long_add(Long_mul($value, var$6), Long_fromInt($digit));
@@ -23517,7 +23547,7 @@ var jl_Long_decode = ($nm) => {
23517
23547
  if ($negaive && Long_eq($value, Long_create(0, 2147483648)) && var$8 == $nm.$nativeString.length)
23518
23548
  return jl_Long_valueOf(Long_create(0, 2147483648));
23519
23549
  $nm = new jl_NumberFormatException();
23520
- jl_Throwable__init_($nm, $rt_s(941));
23550
+ jl_Throwable__init_($nm, $rt_s(943));
23521
23551
  $rt_throw($nm);
23522
23552
  }
23523
23553
  $index = var$8;
@@ -23527,7 +23557,7 @@ var jl_Long_decode = ($nm) => {
23527
23557
  return jl_Long_valueOf($value);
23528
23558
  }
23529
23559
  $nm = new jl_NumberFormatException();
23530
- jl_Throwable__init_($nm, $rt_s(940));
23560
+ jl_Throwable__init_($nm, $rt_s(942));
23531
23561
  $rt_throw($nm);
23532
23562
  };
23533
23563
  var jl_Long_decodeDigit = ($c) => {
@@ -23629,6 +23659,123 @@ var jl_Long_compareTo = ($this, var$1) => {
23629
23659
  var jl_Long__clinit_ = () => {
23630
23660
  jl_Long_TYPE = $rt_cls($rt_longcls);
23631
23661
  };
23662
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
23663
+ var asr_JsRiscV$getRegistersValues$lambda$_43_0 = $rt_classWithoutFields();
23664
+ function asr_JsProgramStatement() {
23665
+ let a = this;
23666
+ jl_Object.call(a);
23667
+ a.$sourceLine5 = 0;
23668
+ a.$sourcePath2 = null;
23669
+ a.$address4 = 0;
23670
+ a.$binaryStatement0 = 0;
23671
+ a.$source2 = null;
23672
+ a.$assemblyStatement = null;
23673
+ a.$machineStatement0 = null;
23674
+ }
23675
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
23676
+ let var$2, var$3, var$4, var$5, var$6;
23677
+ $this.$sourceLine5 = $programStatement.$sourceLine1;
23678
+ $this.$sourcePath2 = $programStatement.$sourcePath0;
23679
+ $this.$address4 = $programStatement.$textAddress0;
23680
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
23681
+ $this.$source2 = $programStatement.$source;
23682
+ var$2 = $programStatement.$basicStatementList;
23683
+ if (var$2 === null) {
23684
+ var$2 = $programStatement.$basicAssemblyStatement;
23685
+ if (var$2 === null)
23686
+ var$2 = $rt_s(2);
23687
+ } else {
23688
+ var$3 = asr_Globals_getSettings();
23689
+ asr_Settings$Bool_$callClinit();
23690
+ var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23691
+ var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23692
+ var$3 = new jl_StringBuffer();
23693
+ jl_AbstractStringBuilder__init_(var$3);
23694
+ var$6 = ju_AbstractList_iterator(var$2.$list);
23695
+ while (ju_AbstractList$1_hasNext(var$6)) {
23696
+ a: {
23697
+ var$2 = ju_AbstractList$1_next(var$6);
23698
+ switch (var$2.$type4) {
23699
+ case 0:
23700
+ break;
23701
+ case 1:
23702
+ if (var$4 == 10) {
23703
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23704
+ break a;
23705
+ }
23706
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23707
+ break a;
23708
+ case 2:
23709
+ if (var$5 == 10) {
23710
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23711
+ break a;
23712
+ }
23713
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23714
+ break a;
23715
+ case 3:
23716
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23717
+ break a;
23718
+ default:
23719
+ break a;
23720
+ }
23721
+ jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
23722
+ }
23723
+ }
23724
+ var$2 = jl_AbstractStringBuilder_toString(var$3);
23725
+ }
23726
+ $this.$assemblyStatement = var$2;
23727
+ $this.$machineStatement0 = $programStatement.$machineStatement;
23728
+ };
23729
+ var asr_JsProgramStatement__init_ = (var_0) => {
23730
+ let var_1 = new asr_JsProgramStatement();
23731
+ asr_JsProgramStatement__init_0(var_1, var_0);
23732
+ return var_1;
23733
+ };
23734
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
23735
+ return var$1.$sourceLine5;
23736
+ };
23737
+ var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
23738
+ return $rt_ustr(var$1.$sourcePath2);
23739
+ };
23740
+ var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
23741
+ return $rt_ustr(var$1.$assemblyStatement);
23742
+ };
23743
+ var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
23744
+ return $rt_ustr(var$1.$source2);
23745
+ };
23746
+ var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
23747
+ return var$1.$address4;
23748
+ };
23749
+ var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
23750
+ return var$1.$binaryStatement0;
23751
+ };
23752
+ var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
23753
+ return $rt_ustr(var$1.$machineStatement0);
23754
+ };
23755
+ var jl_Double = $rt_classWithoutFields(jl_Number);
23756
+ var jl_Double_TYPE = null;
23757
+ var jl_Double_$callClinit = () => {
23758
+ jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
23759
+ jl_Double__clinit_();
23760
+ };
23761
+ var jl_Double_doubleToLongBits = ($value) => {
23762
+ jl_Double_$callClinit();
23763
+ if (!(isNaN($value) ? 1 : 0))
23764
+ return $rt_doubleToRawLongBits($value);
23765
+ return Long_create(0, 2146959360);
23766
+ };
23767
+ var jl_Double__clinit_ = () => {
23768
+ jl_Double_TYPE = $rt_cls($rt_doublecls);
23769
+ };
23770
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0 = $rt_classWithoutFields();
23771
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0_apply = (var$0, var$1) => {
23772
+ return asr_JsProgramStatement__init_(var$1);
23773
+ };
23774
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1 = $rt_classWithoutFields();
23775
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1_apply = (var$0, var$1) => {
23776
+ asr_JsRiscV_$callClinit();
23777
+ return $rt_createArray(asr_JsProgramStatement, var$1);
23778
+ };
23632
23779
  function asr_JsStackFrame() {
23633
23780
  let a = this;
23634
23781
  jl_Object.call(a);
@@ -23653,192 +23800,6 @@ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
23653
23800
  var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
23654
23801
  return var$1.$fp;
23655
23802
  };
23656
- function asrs_BackStepper() {
23657
- let a = this;
23658
- jl_Object.call(a);
23659
- a.$instructionSerial = Long_ZERO;
23660
- a.$pokeSerial = Long_ZERO;
23661
- a.$instructionPc = 0;
23662
- a.$instructionDiscarded = 0;
23663
- a.$engaged = 0;
23664
- a.$backSteps = null;
23665
- a.$pokeGroup = 0;
23666
- a.$pokeRestores = null;
23667
- }
23668
- var asrs_BackStepper_nextSerial = Long_ZERO;
23669
- var asrs_BackStepper_nextPokeGroup = 0;
23670
- var asrs_BackStepper_$callClinit = () => {
23671
- asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
23672
- asrs_BackStepper__clinit_();
23673
- };
23674
- var asrs_BackStepper_allocateSerial = () => {
23675
- let var$1, var$2;
23676
- asrs_BackStepper_$callClinit();
23677
- var$1 = asrs_BackStepper_nextSerial;
23678
- if (Long_ne(var$1, Long_create(4294967295, 2147483647))) {
23679
- asrs_BackStepper_nextSerial = Long_add(var$1, Long_fromInt(1));
23680
- return var$1;
23681
- }
23682
- var$2 = new jl_IllegalStateException();
23683
- jl_Throwable__init_(var$2, $rt_s(942));
23684
- $rt_throw(var$2);
23685
- };
23686
- var asrs_BackStepper_beginInstruction = ($this, $pc, $recording) => {
23687
- let var$3;
23688
- if (Long_eq($this.$instructionSerial, Long_ZERO) && !(!$this.$pokeGroup ? 0 : 1)) {
23689
- $this.$instructionSerial = asrs_BackStepper_allocateSerial();
23690
- $this.$instructionPc = $pc;
23691
- $pc = $recording && $this.$engaged && $this.$backSteps.$capacity ? 0 : 1;
23692
- $this.$instructionDiscarded = $pc;
23693
- if ($pc)
23694
- asrs_BackStepper_clearHistory($this);
23695
- return;
23696
- }
23697
- var$3 = new jl_IllegalStateException();
23698
- jl_Throwable__init_(var$3, $rt_s(943));
23699
- $rt_throw(var$3);
23700
- };
23701
- var asrs_BackStepper_endInstruction = ($this) => {
23702
- let var$1, $$je;
23703
- a: {
23704
- try {
23705
- if (!$this.$instructionDiscarded)
23706
- asrs_BackStepper_addDoNothing($this, $this.$instructionPc);
23707
- } catch ($$e) {
23708
- $$je = $rt_wrapException($$e);
23709
- var$1 = $$je;
23710
- break a;
23711
- }
23712
- $this.$instructionSerial = Long_ZERO;
23713
- return;
23714
- }
23715
- $this.$instructionSerial = Long_ZERO;
23716
- $rt_throw(var$1);
23717
- };
23718
- var asrs_BackStepper_getCurrentInstructionSerial = ($this) => {
23719
- return $this.$instructionSerial;
23720
- };
23721
- var asrs_BackStepper_clearHistory = ($this) => {
23722
- let var$1;
23723
- var$1 = $this.$backSteps;
23724
- var$1.$size2 = 0;
23725
- var$1.$top = -1;
23726
- };
23727
- var asrs_BackStepper_applyRestore = ($action, $param1, $param2) => {
23728
- let var$4, var$5, var$6, var$7;
23729
- asrs_BackStepper_$callClinit();
23730
- a: {
23731
- switch ($action.$ordinal0) {
23732
- case 0:
23733
- asr_Globals_$callClinit();
23734
- $action = asr_Globals_memory;
23735
- var$4 = Long_lo($param2);
23736
- var$5 = asrrh_Memory_storeRawWord($action, $param1, var$4);
23737
- asrrh_Memory_notifyAnyObservers($action, 1, $param1, 4, var$4);
23738
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
23739
- var$6 = asr_Globals_program.$backStepper;
23740
- var$7 = var$6.$backSteps;
23741
- asrs_BackStepper$Action_$callClinit();
23742
- 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);
23743
- }
23744
- break a;
23745
- case 1:
23746
- asr_Globals_$callClinit();
23747
- asrrh_Memory_setDoubleWord(asr_Globals_memory, $param1, $param2);
23748
- break a;
23749
- case 2:
23750
- asr_Globals_$callClinit();
23751
- asrrh_Memory_setWord(asr_Globals_memory, $param1, Long_lo($param2));
23752
- break a;
23753
- case 3:
23754
- asr_Globals_$callClinit();
23755
- asrrh_Memory_setHalf(asr_Globals_memory, $param1, Long_lo($param2));
23756
- break a;
23757
- case 4:
23758
- asr_Globals_$callClinit();
23759
- asrrh_Memory_setByte(asr_Globals_memory, $param1, Long_lo($param2));
23760
- break a;
23761
- case 5:
23762
- asrrh_RegisterFile_updateRegister($param1, $param2);
23763
- break a;
23764
- case 6:
23765
- asrrh_RegisterFile_setProgramCounter($param1);
23766
- break a;
23767
- case 7:
23768
- asrrh_ControlAndStatusRegisterFile_updateRegister0($param1, $param2);
23769
- break a;
23770
- case 8:
23771
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($param1, $param2);
23772
- break a;
23773
- case 9:
23774
- asrrh_FloatingPointRegisterFile_updateRegisterLong($param1, $param2);
23775
- break a;
23776
- case 10:
23777
- break;
23778
- case 11:
23779
- asrrh_ControlAndStatusRegisterFile_$callClinit();
23780
- $param1 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
23781
- if ($param1 > 0)
23782
- asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = $param1 - 1 | 0;
23783
- else {
23784
- $action = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(658));
23785
- var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(659));
23786
- asrrh_Register_setValueBackdoor($action, Long_sub($action.$getValueNoNotify(), Long_fromInt(1)));
23787
- asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
23788
- }
23789
- break a;
23790
- case 12:
23791
- asrrh_ControlAndStatusRegisterFile_$callClinit();
23792
- asrrh_ControlAndStatusRegisterFile_settleCounters();
23793
- $action = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1);
23794
- if ($action !== null)
23795
- $action.$setValue($param2);
23796
- break a;
23797
- case 13:
23798
- case 15:
23799
- break a;
23800
- case 14:
23801
- $param1 = !$param1 ? 0 : 1;
23802
- var$4 = Long_lo($param2);
23803
- asrs_ProgramExit_exited = $param1;
23804
- asr_Globals_$callClinit();
23805
- asr_Globals_exitCode = var$4;
23806
- break a;
23807
- case 16:
23808
- asrrh_Memory_$callClinit();
23809
- asrrh_Memory_heapAddress = $param1;
23810
- break a;
23811
- default:
23812
- break a;
23813
- }
23814
- }
23815
- };
23816
- var asrs_BackStepper_sameGroup = ($one, $other) => {
23817
- asrs_BackStepper_$callClinit();
23818
- return Long_ne($one.$serial, $other.$serial) ? 0 : 1;
23819
- };
23820
- var asrs_BackStepper_pc = ($this) => {
23821
- return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
23822
- };
23823
- var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
23824
- let var$4;
23825
- var$4 = $this.$backSteps;
23826
- asrs_BackStepper$Action_$callClinit();
23827
- asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
23828
- return $value;
23829
- };
23830
- var asrs_BackStepper_addDoNothing = ($this, $pc) => {
23831
- let var$2;
23832
- if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && Long_eq(asrs_BackStepper$BackstepStack_peek($this.$backSteps).$serial, $this.$instructionSerial))) {
23833
- var$2 = $this.$backSteps;
23834
- asrs_BackStepper$Action_$callClinit();
23835
- asrs_BackStepper$BackstepStack_push1(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
23836
- }
23837
- };
23838
- var asrs_BackStepper__clinit_ = () => {
23839
- asrs_BackStepper_nextSerial = Long_fromInt(1);
23840
- asrs_BackStepper_nextPokeGroup = -2;
23841
- };
23842
23803
  var otjc_JSArrayReader = $rt_classWithoutFields(0);
23843
23804
  var otjc_JSArray = $rt_classWithoutFields();
23844
23805
  var asr_JsBackStep = $rt_classWithoutFields();
@@ -24015,16 +23976,73 @@ var asr_JsRiscVToken_getSourceColumn$exported$1 = (var$1) => {
24015
23976
  var asr_JsRiscVToken_getValue$exported$2 = (var$1) => {
24016
23977
  return $rt_ustr(var$1.$value7);
24017
23978
  };
24018
- function asr_JsRiscV$simulate$lambda$_27_0() {
24019
- jl_Object.call(this);
24020
- this.$_027 = null;
23979
+ function asr_JsCompilationResult() {
23980
+ let a = this;
23981
+ jl_Object.call(a);
23982
+ a.$report = null;
23983
+ a.$errors3 = null;
24021
23984
  }
24022
- var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
24023
- let var$1, var$2, $ptr, $tmp;
23985
+ var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
23986
+ let var$2, var$3, var$4;
23987
+ $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
23988
+ $errorReport = ju_Collection_stream($errorReport.$messages);
23989
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
23990
+ var$2.$_030 = $this;
23991
+ $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
23992
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
23993
+ $errorReport = $errorReport;
23994
+ var$3 = ju_ArrayList__init_();
23995
+ var$4 = $errorReport;
23996
+ while (true) {
23997
+ $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
23998
+ $errorReport.$_040 = var$2;
23999
+ $errorReport.$_118 = var$3;
24000
+ if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
24001
+ break;
24002
+ }
24003
+ $this.$errors3 = var$3;
24004
+ };
24005
+ var asr_JsCompilationResult__init_ = (var_0) => {
24006
+ let var_1 = new asr_JsCompilationResult();
24007
+ asr_JsCompilationResult__init_0(var_1, var_0);
24008
+ return var_1;
24009
+ };
24010
+ var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
24011
+ let var$2;
24012
+ var$1 = ju_Collection_stream(var$1.$errors3);
24013
+ var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
24014
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
24015
+ };
24016
+ var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
24017
+ let var$2;
24018
+ var$1 = var$1.$errors3;
24019
+ var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
24020
+ return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
24021
+ };
24022
+ var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
24023
+ let var$2;
24024
+ var$1 = ju_Collection_stream(var$1.$errors3);
24025
+ var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
24026
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
24027
+ };
24028
+ var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
24029
+ return $rt_ustr(var$1.$report);
24030
+ };
24031
+ function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0() {
24032
+ let a = this;
24033
+ jl_Object.call(a);
24034
+ a.$_033 = null;
24035
+ a.$_120 = 0;
24036
+ a.$_24 = null;
24037
+ }
24038
+ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
24039
+ let var$1, var$2, var$3, var$4, $ptr, $tmp;
24024
24040
  $ptr = 0;
24025
24041
  if ($rt_resuming()) {
24026
24042
  let $thread = $rt_nativeThread();
24027
24043
  $ptr = $thread.pop();
24044
+ var$4 = $thread.pop();
24045
+ var$3 = $thread.pop();
24028
24046
  var$2 = $thread.pop();
24029
24047
  var$1 = $thread.pop();
24030
24048
  var$0 = $thread.pop();
@@ -24032,11 +24050,17 @@ var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
24032
24050
  main: while (true) {
24033
24051
  switch ($ptr) {
24034
24052
  case 0:
24035
- var$1 = var$0.$_027.$main;
24036
- var$2 = -1;
24053
+ var$1 = var$0.$_033;
24054
+ var$2 = var$0.$_120;
24055
+ var$3 = var$0.$_24;
24056
+ var$1 = var$1.$main;
24057
+ var$4 = new asr_RARS$simulate$lambda$_18_0();
24058
+ var$4.$_025 = var$1;
24059
+ var$4.$_113 = var$2;
24060
+ var$4.$_23 = var$3;
24037
24061
  $ptr = 1;
24038
24062
  case 1:
24039
- $tmp = asr_RARS_simulate(var$1, var$2);
24063
+ $tmp = asr_RARS_run(var$1, var$4);
24040
24064
  if ($rt_suspending()) {
24041
24065
  break main;
24042
24066
  }
@@ -24046,31 +24070,7 @@ var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
24046
24070
  $rt_invalidPointer();
24047
24071
  }
24048
24072
  }
24049
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
24050
- };
24051
- var jl_Double = $rt_classWithoutFields(jl_Number);
24052
- var jl_Double_TYPE = null;
24053
- var jl_Double_$callClinit = () => {
24054
- jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
24055
- jl_Double__clinit_();
24056
- };
24057
- var jl_Double_doubleToLongBits = ($value) => {
24058
- jl_Double_$callClinit();
24059
- if (!(isNaN($value) ? 1 : 0))
24060
- return $rt_doubleToRawLongBits($value);
24061
- return Long_create(0, 2146959360);
24062
- };
24063
- var jl_Double__clinit_ = () => {
24064
- jl_Double_TYPE = $rt_cls($rt_doublecls);
24065
- };
24066
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0 = $rt_classWithoutFields();
24067
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0_apply = (var$0, var$1) => {
24068
- return asr_JsProgramStatement__init_(var$1);
24069
- };
24070
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1 = $rt_classWithoutFields();
24071
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1_apply = (var$0, var$1) => {
24072
- asr_JsRiscV_$callClinit();
24073
- return $rt_createArray(asr_JsProgramStatement, var$1);
24073
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
24074
24074
  };
24075
24075
  function asr_JsRiscV$simulateWithLimit$lambda$_28_0() {
24076
24076
  let a = this;
@@ -25058,6 +25058,206 @@ function jur_CharClass$16() {
25058
25058
  var jur_CharClass$16_contains = ($this, $ch) => {
25059
25059
  return $this.$val$curAlt6 ^ $this.$val$nb.$contains1($ch) && jur_CharClass_contains($this.$val$clazz7, $ch) ? 0 : 1;
25060
25060
  };
25061
+ function asr_JsRiscV$PokeRegisterWrite() {
25062
+ let a = this;
25063
+ jl_Object.call(a);
25064
+ a.$register = null;
25065
+ a.$oldValue = Long_ZERO;
25066
+ }
25067
+ var asr_JsPokeWrite = $rt_classWithoutFields();
25068
+ var asr_JsPokeWrite_toNumberArray = ($values) => {
25069
+ let var$2, $array, $i, var$5;
25070
+ $values = $values.data;
25071
+ var$2 = $values.length;
25072
+ $array = new Array(var$2);
25073
+ $i = 0;
25074
+ while ($i < var$2) {
25075
+ var$5 = $values[$i];
25076
+ $array[$i] = var$5;
25077
+ $i = $i + 1 | 0;
25078
+ }
25079
+ return $array;
25080
+ };
25081
+ var asr_JsPokeWrite_createRegister$js_body$_4 = (var$1, var$2, var$3) => {
25082
+ return { type: "register", name: var$1, old: var$2, new: var$3 };
25083
+ };
25084
+ var asr_JsPokeWrite_createMemory$js_body$_5 = (var$1, var$2, var$3) => {
25085
+ return { type: "memory", address: var$1, old: var$2, new: var$3 };
25086
+ };
25087
+ function asrs_BackStepper$BackstepStack() {
25088
+ let a = this;
25089
+ jl_Object.call(a);
25090
+ a.$capacity = 0;
25091
+ a.$size2 = 0;
25092
+ a.$top = 0;
25093
+ a.$stack = null;
25094
+ a.$this$00 = null;
25095
+ }
25096
+ var asrs_BackStepper$BackstepStack_slot = ($this) => {
25097
+ let var$1, var$2, var$3;
25098
+ var$1 = $this.$stack.data;
25099
+ var$2 = $this.$top;
25100
+ var$3 = var$1[var$2];
25101
+ if (var$3 === null) {
25102
+ var$3 = new asrs_BackStepper$BackStep();
25103
+ var$3.$this$01 = $this.$this$00;
25104
+ var$1[var$2] = var$3;
25105
+ }
25106
+ return var$3;
25107
+ };
25108
+ var asrs_BackStepper$BackstepStack_getStack = ($this) => {
25109
+ let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
25110
+ var$1 = $this.$size2;
25111
+ $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
25112
+ var$3 = $usedStack.data;
25113
+ $i = 0;
25114
+ while ($i < var$1) {
25115
+ var$5 = $this.$stack.data;
25116
+ var$6 = $this.$top - $i | 0;
25117
+ var$7 = var$5.length;
25118
+ var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
25119
+ $i = $i + 1 | 0;
25120
+ }
25121
+ return $usedStack;
25122
+ };
25123
+ var asrs_BackStepper$BackstepStack_empty = ($this) => {
25124
+ return $this.$size2 ? 0 : 1;
25125
+ };
25126
+ var asrs_BackStepper$BackstepStack_fromTop = ($this, $index) => {
25127
+ let $slot, var$3, var$4, var$5;
25128
+ if ($index >= 0 && $index < $this.$size2) {
25129
+ $slot = $this.$top - $index | 0;
25130
+ var$3 = $this.$stack;
25131
+ if ($slot < 0)
25132
+ $slot = $slot + var$3.data.length | 0;
25133
+ return var$3.data[$slot];
25134
+ }
25135
+ var$4 = new jl_IndexOutOfBoundsException();
25136
+ var$5 = new jl_StringBuilder();
25137
+ jl_AbstractStringBuilder__init_(var$5);
25138
+ jl_AbstractStringBuilder_append0(jl_StringBuilder_append(var$5, $rt_s(1059)), $index);
25139
+ jl_Throwable__init_(var$4, jl_AbstractStringBuilder_toString(var$5));
25140
+ $rt_throw(var$4);
25141
+ };
25142
+ var asrs_BackStepper$BackstepStack_advance = ($this) => {
25143
+ let $next, var$2, var$3, var$4, var$5, var$6, $oldest, var$8;
25144
+ a: {
25145
+ $next = $this.$capacity;
25146
+ if ($next) {
25147
+ var$2 = $this.$this$00;
25148
+ if (!var$2.$instructionDiscarded)
25149
+ break a;
25150
+ if (Long_eq(var$2.$instructionSerial, Long_ZERO))
25151
+ break a;
25152
+ }
25153
+ return 0;
25154
+ }
25155
+ var$3 = $this.$size2;
25156
+ var$4 = $this.$stack.data.length;
25157
+ if (var$3 == var$4 && var$4 < $next) {
25158
+ var$5 = $rt_createArray(asrs_BackStepper$BackStep, !var$4 ? jl_Math_min(64, $next) : var$4 + jl_Math_min(var$4, $next - var$4 | 0) | 0);
25159
+ var$6 = var$5.data;
25160
+ var$3 = 0;
25161
+ while (true) {
25162
+ var$4 = $this.$size2;
25163
+ if (var$3 >= var$4)
25164
+ break;
25165
+ var$6[var$3] = asrs_BackStepper$BackstepStack_fromTop($this, (var$4 - 1 | 0) - var$3 | 0);
25166
+ var$3 = var$3 + 1 | 0;
25167
+ }
25168
+ $this.$stack = var$5;
25169
+ $this.$top = var$4 - 1 | 0;
25170
+ }
25171
+ $next = $this.$size2;
25172
+ if ($next == $this.$capacity) {
25173
+ $oldest = asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial;
25174
+ while (true) {
25175
+ $next = $this.$size2 - 1 | 0;
25176
+ $this.$size2 = $next;
25177
+ if ($next <= 0)
25178
+ break;
25179
+ if (Long_eq(asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial, $oldest))
25180
+ continue;
25181
+ else
25182
+ break;
25183
+ }
25184
+ var$2 = $this.$this$00;
25185
+ var$8 = var$2.$instructionSerial;
25186
+ if (Long_eq($oldest, var$8) && Long_ne(var$8, Long_ZERO)) {
25187
+ var$2.$instructionDiscarded = 1;
25188
+ return 0;
25189
+ }
25190
+ }
25191
+ $next = $this.$top + 1 | 0;
25192
+ if ($next == $this.$stack.data.length)
25193
+ $next = 0;
25194
+ $this.$top = $next;
25195
+ $this.$size2 = $this.$size2 + 1 | 0;
25196
+ return 1;
25197
+ };
25198
+ var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
25199
+ let $step, var$8, var$9;
25200
+ $step = $this.$this$00;
25201
+ if ($step.$pokeGroup) {
25202
+ $step = $step.$pokeRestores;
25203
+ var$8 = new asrs_BackStepper$PokeRestore();
25204
+ var$8.$action0 = $act;
25205
+ var$8.$param10 = $parm1;
25206
+ var$8.$param20 = $parm2;
25207
+ ju_ArrayList_add($step, var$8);
25208
+ return;
25209
+ }
25210
+ if (!asrs_BackStepper$BackstepStack_advance($this))
25211
+ return;
25212
+ $step = asrs_BackStepper$BackstepStack_slot($this);
25213
+ $step.$action = $act;
25214
+ var$9 = $step.$this$01.$instructionSerial;
25215
+ if (Long_eq(var$9, Long_ZERO))
25216
+ var$9 = asrs_BackStepper_allocateSerial();
25217
+ $step.$serial = var$9;
25218
+ $act = $step.$this$01;
25219
+ if (Long_ne($act.$instructionSerial, Long_ZERO))
25220
+ $programCounter = $act.$instructionPc;
25221
+ $step.$pc1 = $programCounter;
25222
+ $step.$pokeGroup0 = 0;
25223
+ $step.$pokeRestores0 = null;
25224
+ $step.$param1 = $parm1;
25225
+ $step.$param2 = $parm2;
25226
+ $step.$param3Int = $wroteInt;
25227
+ $step.$param3Long = $wroteLong;
25228
+ };
25229
+ var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1, $parm2) => {
25230
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
25231
+ };
25232
+ var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
25233
+ asrs_BackStepper$BackstepStack_push0($this, $act, $programCounter, 0, Long_ZERO);
25234
+ };
25235
+ var asrs_BackStepper$BackstepStack_peek = ($this) => {
25236
+ return $this.$stack.data[$this.$top];
25237
+ };
25238
+ function asrs_BackStepper$BackStep() {
25239
+ let a = this;
25240
+ jl_Object.call(a);
25241
+ a.$serial = Long_ZERO;
25242
+ a.$action = null;
25243
+ a.$pc1 = 0;
25244
+ a.$param1 = 0;
25245
+ a.$param2 = Long_ZERO;
25246
+ a.$param3Int = 0;
25247
+ a.$param3Long = Long_ZERO;
25248
+ a.$pokeGroup0 = 0;
25249
+ a.$pokeRestores0 = null;
25250
+ a.$this$01 = null;
25251
+ }
25252
+ var asrs_BackStepper$BackStep_isPoke = ($this) => {
25253
+ return !$this.$pokeGroup0 ? 0 : 1;
25254
+ };
25255
+ var asrs_BackStepper$BackStep_getParam2 = ($this) => {
25256
+ let var$1;
25257
+ var$1 = $this.$action;
25258
+ asrs_BackStepper$Action_$callClinit();
25259
+ return var$1 !== asrs_BackStepper$Action_RANDOM_STREAM_RESTORE ? $this.$param2 : Long_ZERO;
25260
+ };
25061
25261
  var otjc_JSPromise$Executor = $rt_classWithoutFields(0);
25062
25262
  function asr_JsRiscV$run$lambda$_22_0() {
25063
25263
  let a = this;
@@ -25128,59 +25328,6 @@ var otjc_JSPromise_await$static = ($this) => {
25128
25328
  }
25129
25329
  $rt_nativeThread().push($this, $ptr);
25130
25330
  };
25131
- function asr_JsRiscV$PokeRegisterWrite() {
25132
- let a = this;
25133
- jl_Object.call(a);
25134
- a.$register = null;
25135
- a.$oldValue = Long_ZERO;
25136
- }
25137
- var asr_JsPokeWrite = $rt_classWithoutFields();
25138
- var asr_JsPokeWrite_toNumberArray = ($values) => {
25139
- let var$2, $array, $i, var$5;
25140
- $values = $values.data;
25141
- var$2 = $values.length;
25142
- $array = new Array(var$2);
25143
- $i = 0;
25144
- while ($i < var$2) {
25145
- var$5 = $values[$i];
25146
- $array[$i] = var$5;
25147
- $i = $i + 1 | 0;
25148
- }
25149
- return $array;
25150
- };
25151
- var asr_JsPokeWrite_createRegister$js_body$_4 = (var$1, var$2, var$3) => {
25152
- return { type: "register", name: var$1, old: var$2, new: var$3 };
25153
- };
25154
- var asr_JsPokeWrite_createMemory$js_body$_5 = (var$1, var$2, var$3) => {
25155
- return { type: "memory", address: var$1, old: var$2, new: var$3 };
25156
- };
25157
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
25158
- jl_Object.call(this);
25159
- this.$_030 = null;
25160
- }
25161
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
25162
- let var$2, var$3, var$4;
25163
- var$1 = var$1;
25164
- var$2 = var$0.$_030;
25165
- var$3 = new asr_JsCompilationResult$JsCompilationError();
25166
- var$3.$this$018 = var$2;
25167
- var$3.$isWarning0 = var$1.$isWarning;
25168
- var$3.$message2 = var$1.$message0;
25169
- var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
25170
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
25171
- var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
25172
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
25173
- var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
25174
- var$3.$sourcePath3 = var$1.$sourcePath;
25175
- var$3.$sourceLine6 = var$1.$sourceLine0;
25176
- var$3.$sourceColumn0 = var$1.$sourceColumn;
25177
- return var$3;
25178
- };
25179
- var juf_Supplier = $rt_classWithoutFields(0);
25180
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
25181
- var juf_BiConsumer = $rt_classWithoutFields(0);
25182
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
25183
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
25184
25331
  var jl_AutoCloseable = $rt_classWithoutFields(0);
25185
25332
  var jus_BaseStream = $rt_classWithoutFields(0);
25186
25333
  var jus_Stream = $rt_classWithoutFields(0);
@@ -25289,180 +25436,6 @@ var asrrh_AddressErrorException_getAddress = ($this) => {
25289
25436
  var asrrh_AddressErrorException_getType = ($this) => {
25290
25437
  return $this.$type2;
25291
25438
  };
25292
- function asrs_BackStepper$BackstepStack() {
25293
- let a = this;
25294
- jl_Object.call(a);
25295
- a.$capacity = 0;
25296
- a.$size2 = 0;
25297
- a.$top = 0;
25298
- a.$stack = null;
25299
- a.$this$00 = null;
25300
- }
25301
- var asrs_BackStepper$BackstepStack_slot = ($this) => {
25302
- let var$1, var$2, $step;
25303
- var$1 = $this.$stack.data;
25304
- var$2 = $this.$top;
25305
- $step = var$1[var$2];
25306
- if ($step === null) {
25307
- $step = new asrs_BackStepper$BackStep();
25308
- $step.$this$01 = $this.$this$00;
25309
- var$1[var$2] = $step;
25310
- }
25311
- return $step;
25312
- };
25313
- var asrs_BackStepper$BackstepStack_getStack = ($this) => {
25314
- let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
25315
- var$1 = $this.$size2;
25316
- $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
25317
- var$3 = $usedStack.data;
25318
- $i = 0;
25319
- while ($i < var$1) {
25320
- var$5 = $this.$stack.data;
25321
- var$6 = $this.$top - $i | 0;
25322
- var$7 = var$5.length;
25323
- var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
25324
- $i = $i + 1 | 0;
25325
- }
25326
- return $usedStack;
25327
- };
25328
- var asrs_BackStepper$BackstepStack_empty = ($this) => {
25329
- return $this.$size2 ? 0 : 1;
25330
- };
25331
- var asrs_BackStepper$BackstepStack_fromTop = ($this, $index) => {
25332
- let $slot, var$3, var$4, var$5;
25333
- if ($index >= 0 && $index < $this.$size2) {
25334
- $slot = $this.$top - $index | 0;
25335
- var$3 = $this.$stack;
25336
- if ($slot < 0)
25337
- $slot = $slot + var$3.data.length | 0;
25338
- return var$3.data[$slot];
25339
- }
25340
- var$4 = new jl_IndexOutOfBoundsException();
25341
- var$5 = new jl_StringBuilder();
25342
- jl_AbstractStringBuilder__init_(var$5);
25343
- jl_AbstractStringBuilder_append0(jl_StringBuilder_append(var$5, $rt_s(1059)), $index);
25344
- jl_Throwable__init_(var$4, jl_AbstractStringBuilder_toString(var$5));
25345
- $rt_throw(var$4);
25346
- };
25347
- var asrs_BackStepper$BackstepStack_advance = ($this) => {
25348
- let $next, var$2, var$3, var$4, var$5, var$6, $oldest, var$8;
25349
- a: {
25350
- $next = $this.$capacity;
25351
- if ($next) {
25352
- var$2 = $this.$this$00;
25353
- if (!var$2.$instructionDiscarded)
25354
- break a;
25355
- if (Long_eq(var$2.$instructionSerial, Long_ZERO))
25356
- break a;
25357
- }
25358
- return 0;
25359
- }
25360
- var$3 = $this.$size2;
25361
- var$4 = $this.$stack.data.length;
25362
- if (var$3 == var$4 && var$4 < $next) {
25363
- var$5 = $rt_createArray(asrs_BackStepper$BackStep, !var$4 ? jl_Math_min(64, $next) : var$4 + jl_Math_min(var$4, $next - var$4 | 0) | 0);
25364
- var$6 = var$5.data;
25365
- var$3 = 0;
25366
- while (true) {
25367
- var$4 = $this.$size2;
25368
- if (var$3 >= var$4)
25369
- break;
25370
- var$6[var$3] = asrs_BackStepper$BackstepStack_fromTop($this, (var$4 - 1 | 0) - var$3 | 0);
25371
- var$3 = var$3 + 1 | 0;
25372
- }
25373
- $this.$stack = var$5;
25374
- $this.$top = var$4 - 1 | 0;
25375
- }
25376
- $next = $this.$size2;
25377
- if ($next == $this.$capacity) {
25378
- $oldest = asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial;
25379
- while (true) {
25380
- $next = $this.$size2 - 1 | 0;
25381
- $this.$size2 = $next;
25382
- if ($next <= 0)
25383
- break;
25384
- if (Long_eq(asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial, $oldest))
25385
- continue;
25386
- else
25387
- break;
25388
- }
25389
- var$2 = $this.$this$00;
25390
- var$8 = var$2.$instructionSerial;
25391
- if (Long_eq($oldest, var$8) && Long_ne(var$8, Long_ZERO)) {
25392
- var$2.$instructionDiscarded = 1;
25393
- return 0;
25394
- }
25395
- }
25396
- $next = $this.$top + 1 | 0;
25397
- if ($next == $this.$stack.data.length)
25398
- $next = 0;
25399
- $this.$top = $next;
25400
- $this.$size2 = $this.$size2 + 1 | 0;
25401
- return 1;
25402
- };
25403
- var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
25404
- let $step, var$8, var$9;
25405
- $step = $this.$this$00;
25406
- if ($step.$pokeGroup) {
25407
- $step = $step.$pokeRestores;
25408
- var$8 = new asrs_BackStepper$PokeRestore();
25409
- var$8.$action0 = $act;
25410
- var$8.$param10 = $parm1;
25411
- var$8.$param20 = $parm2;
25412
- ju_ArrayList_add($step, var$8);
25413
- return;
25414
- }
25415
- if (!asrs_BackStepper$BackstepStack_advance($this))
25416
- return;
25417
- $step = asrs_BackStepper$BackstepStack_slot($this);
25418
- $step.$action = $act;
25419
- var$9 = $step.$this$01.$instructionSerial;
25420
- if (Long_eq(var$9, Long_ZERO))
25421
- var$9 = asrs_BackStepper_allocateSerial();
25422
- $step.$serial = var$9;
25423
- $act = $step.$this$01;
25424
- if (Long_ne($act.$instructionSerial, Long_ZERO))
25425
- $programCounter = $act.$instructionPc;
25426
- $step.$pc1 = $programCounter;
25427
- $step.$pokeGroup0 = 0;
25428
- $step.$pokeRestores0 = null;
25429
- $step.$param1 = $parm1;
25430
- $step.$param2 = $parm2;
25431
- $step.$param3Int = $wroteInt;
25432
- $step.$param3Long = $wroteLong;
25433
- };
25434
- var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1, $parm2) => {
25435
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
25436
- };
25437
- var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
25438
- asrs_BackStepper$BackstepStack_push0($this, $act, $programCounter, 0, Long_ZERO);
25439
- };
25440
- var asrs_BackStepper$BackstepStack_peek = ($this) => {
25441
- return $this.$stack.data[$this.$top];
25442
- };
25443
- function asrs_BackStepper$BackStep() {
25444
- let a = this;
25445
- jl_Object.call(a);
25446
- a.$serial = Long_ZERO;
25447
- a.$action = null;
25448
- a.$pc1 = 0;
25449
- a.$param1 = 0;
25450
- a.$param2 = Long_ZERO;
25451
- a.$param3Int = 0;
25452
- a.$param3Long = Long_ZERO;
25453
- a.$pokeGroup0 = 0;
25454
- a.$pokeRestores0 = null;
25455
- a.$this$01 = null;
25456
- }
25457
- var asrs_BackStepper$BackStep_isPoke = ($this) => {
25458
- return !$this.$pokeGroup0 ? 0 : 1;
25459
- };
25460
- var asrs_BackStepper$BackStep_getParam2 = ($this) => {
25461
- let var$1;
25462
- var$1 = $this.$action;
25463
- asrs_BackStepper$Action_$callClinit();
25464
- return var$1 !== asrs_BackStepper$Action_RANDOM_STREAM_RESTORE ? $this.$param2 : Long_ZERO;
25465
- };
25466
25439
  var otjc_JSObjects = $rt_classWithoutFields();
25467
25440
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
25468
25441
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -25831,6 +25804,33 @@ var asra_TokenTypes__clinit_ = () => {
25831
25804
  var$3[28] = var$1;
25832
25805
  asra_TokenTypes_$VALUES = var$2;
25833
25806
  };
25807
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
25808
+ jl_Object.call(this);
25809
+ this.$_030 = null;
25810
+ }
25811
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
25812
+ let var$2, var$3, var$4;
25813
+ var$1 = var$1;
25814
+ var$2 = var$0.$_030;
25815
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
25816
+ var$3.$this$018 = var$2;
25817
+ var$3.$isWarning0 = var$1.$isWarning;
25818
+ var$3.$message2 = var$1.$message0;
25819
+ var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
25820
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
25821
+ var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
25822
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
25823
+ var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
25824
+ var$3.$sourcePath3 = var$1.$sourcePath;
25825
+ var$3.$sourceLine6 = var$1.$sourceLine0;
25826
+ var$3.$sourceColumn0 = var$1.$sourceColumn;
25827
+ return var$3;
25828
+ };
25829
+ var juf_Supplier = $rt_classWithoutFields(0);
25830
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
25831
+ var juf_BiConsumer = $rt_classWithoutFields(0);
25832
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
25833
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
25834
25834
  function asra_Token() {
25835
25835
  let a = this;
25836
25836
  jl_Object.call(a);
@@ -27867,31 +27867,12 @@ var asrri_JAL__init_ = () => {
27867
27867
  return var_0;
27868
27868
  };
27869
27869
  var asrri_JAL_simulate = ($this, $statement) => {
27870
- let $operands, $address, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
27870
+ let $operands, $address;
27871
27871
  $operands = $statement.$operands.data;
27872
27872
  asrr_InstructionSet_processReturnAddress($operands[0]);
27873
27873
  $address = (asrrh_RegisterFile_getProgramCounter() - 4 | 0) + $operands[1] | 0;
27874
- if ($operands[0] == 1) {
27875
- var$4 = new asrrh_StackFrame();
27876
- var$5 = asrrh_RegisterFile_getProgramCounter();
27877
- var$6 = Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
27878
- var$7 = Long_lo(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(598)).$getValue());
27879
- var$8 = asrrh_RegisterFile_instance.$regFile.data.length;
27880
- $operands = $rt_createIntArray(var$8);
27881
- var$9 = $operands.data;
27882
- var$10 = 0;
27883
- while (var$10 < var$8) {
27884
- var$9[var$10] = Long_lo(asrrh_RegisterFile_instance.$regFile.data[var$10].$getValue());
27885
- var$10 = var$10 + 1 | 0;
27886
- }
27887
- var$4.$pc3 = var$5;
27888
- var$4.$sp0 = var$6;
27889
- var$4.$fp0 = var$7;
27890
- var$4.$toAddress0 = $address;
27891
- var$4.$registers1 = $operands;
27892
- asrrh_Stack_$callClinit();
27893
- ju_ArrayList_add(asrrh_Stack_callStack, var$4);
27894
- }
27874
+ if ($operands[0] == 1)
27875
+ asrrh_Stack_pushCallStack(asrrh_StackFrame_fromGlobalState($address));
27895
27876
  asrr_InstructionSet_processJump($address);
27896
27877
  };
27897
27878
  var asrri_JALR = $rt_classWithoutFields(asrr_BasicInstruction);
@@ -27905,18 +27886,20 @@ var asrri_JALR__init_0 = () => {
27905
27886
  return var_0;
27906
27887
  };
27907
27888
  var asrri_JALR_simulate = ($this, $statement) => {
27908
- let $operands, $target;
27889
+ let $operands, $address;
27909
27890
  $operands = $statement.$operands.data;
27910
- $target = asrrh_RegisterFile_getValue0($operands[1]);
27891
+ $address = (asrrh_RegisterFile_getValue0($operands[1]) + ($operands[2] << 20 >> 20) | 0) & -2;
27911
27892
  asrr_InstructionSet_processReturnAddress($operands[0]);
27912
- if (!$operands[0] && $operands[1] == 1) {
27893
+ if ($operands[0] == 1)
27894
+ asrrh_Stack_pushCallStack(asrrh_StackFrame_fromGlobalState($address));
27895
+ else if (!$operands[0] && $operands[1] == 1) {
27913
27896
  asrrh_Stack_$callClinit();
27914
27897
  if (!ju_AbstractCollection_isEmpty(asrrh_Stack_callStack)) {
27915
27898
  $statement = asrrh_Stack_callStack;
27916
27899
  ju_ArrayList_remove($statement, $statement.$size0 - 1 | 0);
27917
27900
  }
27918
27901
  }
27919
- asrr_InstructionSet_processJump(($target + ($operands[2] << 20 >> 20) | 0) & -2);
27902
+ asrr_InstructionSet_processJump($address);
27920
27903
  };
27921
27904
  var asrri_Load = $rt_classWithoutFields(asrr_BasicInstruction);
27922
27905
  var asrri_Load__init_ = ($this, $usage, $description, $funct) => {
@@ -30656,6 +30639,27 @@ function asrrh_StackFrame() {
30656
30639
  a.$fp0 = 0;
30657
30640
  a.$registers1 = null;
30658
30641
  }
30642
+ var asrrh_StackFrame_fromGlobalState = ($returnAddress) => {
30643
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
30644
+ var$2 = new asrrh_StackFrame();
30645
+ var$3 = asrrh_RegisterFile_getProgramCounter();
30646
+ var$4 = Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
30647
+ var$5 = Long_lo(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(598)).$getValue());
30648
+ var$6 = asrrh_RegisterFile_instance.$regFile.data.length;
30649
+ var$7 = $rt_createIntArray(var$6);
30650
+ var$8 = var$7.data;
30651
+ var$9 = 0;
30652
+ while (var$9 < var$6) {
30653
+ var$8[var$9] = Long_lo(asrrh_RegisterFile_instance.$regFile.data[var$9].$getValue());
30654
+ var$9 = var$9 + 1 | 0;
30655
+ }
30656
+ var$2.$pc3 = var$3;
30657
+ var$2.$sp0 = var$4;
30658
+ var$2.$fp0 = var$5;
30659
+ var$2.$toAddress0 = $returnAddress;
30660
+ var$2.$registers1 = var$7;
30661
+ return var$2;
30662
+ };
30659
30663
  function asrrh_MemoryConfiguration() {
30660
30664
  let a = this;
30661
30665
  jl_Object.call(a);
@@ -36382,6 +36386,51 @@ var jm_BitLevel_shiftRight0 = ($result, $resultLen, $source, $intCount, $count)
36382
36386
  }
36383
36387
  return $allZero;
36384
36388
  };
36389
+ function asr_RARS$getStatementsAtSourceLocation$lambda$_7_0() {
36390
+ let a = this;
36391
+ jl_Object.call(a);
36392
+ a.$_020 = null;
36393
+ a.$_110 = 0;
36394
+ }
36395
+ var asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test = (var$0, var$1) => {
36396
+ let var$2, var$3;
36397
+ var$1 = var$1;
36398
+ var$2 = var$0.$_020;
36399
+ var$3 = var$0.$_110;
36400
+ return jl_String_equals(var$1.$sourcePath0, var$2) && var$1.$sourceLine1 == var$3 ? 1 : 0;
36401
+ };
36402
+ var asrrh_Stack = $rt_classWithoutFields();
36403
+ var asrrh_Stack_callStack = null;
36404
+ var asrrh_Stack_$callClinit = () => {
36405
+ asrrh_Stack_$callClinit = $rt_eraseClinit(asrrh_Stack);
36406
+ asrrh_Stack__clinit_();
36407
+ };
36408
+ var asrrh_Stack_pushCallStack = ($frame) => {
36409
+ asrrh_Stack_$callClinit();
36410
+ ju_ArrayList_add(asrrh_Stack_callStack, $frame);
36411
+ };
36412
+ var asrrh_Stack_getCallStack = () => {
36413
+ asrrh_Stack_$callClinit();
36414
+ return asrrh_Stack_callStack;
36415
+ };
36416
+ var asrrh_Stack__clinit_ = () => {
36417
+ asrrh_Stack_callStack = ju_ArrayList__init_();
36418
+ };
36419
+ var asrs_ProgramExit = $rt_classWithoutFields();
36420
+ var asrs_ProgramExit_exited = 0;
36421
+ var asrs_ProgramExit_exit = ($code) => {
36422
+ let var$2, var$3, var$4, var$5;
36423
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
36424
+ var$2 = asr_Globals_program.$backStepper;
36425
+ var$3 = asrs_ProgramExit_exited;
36426
+ var$4 = asr_Globals_exitCode;
36427
+ var$5 = var$2.$backSteps;
36428
+ asrs_BackStepper$Action_$callClinit();
36429
+ asrs_BackStepper$BackstepStack_push(var$5, asrs_BackStepper$Action_EXIT_RESTORE, asrs_BackStepper_pc(var$2), !var$3 ? 0 : 1, Long_fromInt(var$4), $code, Long_ZERO);
36430
+ }
36431
+ asrs_ProgramExit_exited = 1;
36432
+ asr_Globals_exitCode = $code;
36433
+ };
36385
36434
  var asrrh_InterruptController = $rt_classWithoutFields();
36386
36435
  var asrrh_InterruptController_lock = null;
36387
36436
  var asrrh_InterruptController_externalPending0 = 0;
@@ -36475,21 +36524,6 @@ var asrrh_ReservationTable__clinit_ = () => {
36475
36524
  asrrh_ReservationTable_address = 0;
36476
36525
  asrrh_ReservationTable_valid = 0;
36477
36526
  };
36478
- var asrs_ProgramExit = $rt_classWithoutFields();
36479
- var asrs_ProgramExit_exited = 0;
36480
- var asrs_ProgramExit_exit = ($code) => {
36481
- let var$2, var$3, var$4, var$5;
36482
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
36483
- var$2 = asr_Globals_program.$backStepper;
36484
- var$3 = asrs_ProgramExit_exited;
36485
- var$4 = asr_Globals_exitCode;
36486
- var$5 = var$2.$backSteps;
36487
- asrs_BackStepper$Action_$callClinit();
36488
- asrs_BackStepper$BackstepStack_push(var$5, asrs_BackStepper$Action_EXIT_RESTORE, asrs_BackStepper_pc(var$2), !var$3 ? 0 : 1, Long_fromInt(var$4), $code, Long_ZERO);
36489
- }
36490
- asrs_ProgramExit_exited = 1;
36491
- asr_Globals_exitCode = $code;
36492
- };
36493
36527
  var asrrs_RandomStreams = $rt_classWithoutFields();
36494
36528
  var asrrs_RandomStreams_streams = null;
36495
36529
  var asrrs_RandomStreams_$callClinit = () => {
@@ -36599,19 +36633,6 @@ var asrrs_RandomStreams_restore = ($index, $high, $low) => {
36599
36633
  var asrrs_RandomStreams__clinit_ = () => {
36600
36634
  asrrs_RandomStreams_streams = ju_HashMap__init_();
36601
36635
  };
36602
- var asrrh_Stack = $rt_classWithoutFields();
36603
- var asrrh_Stack_callStack = null;
36604
- var asrrh_Stack_$callClinit = () => {
36605
- asrrh_Stack_$callClinit = $rt_eraseClinit(asrrh_Stack);
36606
- asrrh_Stack__clinit_();
36607
- };
36608
- var asrrh_Stack_getCallStack = () => {
36609
- asrrh_Stack_$callClinit();
36610
- return asrrh_Stack_callStack;
36611
- };
36612
- var asrrh_Stack__clinit_ = () => {
36613
- asrrh_Stack_callStack = ju_ArrayList__init_();
36614
- };
36615
36636
  function asrs_Simulator() {
36616
36637
  let a = this;
36617
36638
  ju_Observable.call(a);
@@ -36706,19 +36727,6 @@ var asrs_Simulator_noStatementAt = ($address) => {
36706
36727
  var asrs_Simulator__clinit_ = () => {
36707
36728
  asrs_Simulator_simulator = null;
36708
36729
  };
36709
- function asr_RARS$getStatementsAtSourceLocation$lambda$_7_0() {
36710
- let a = this;
36711
- jl_Object.call(a);
36712
- a.$_020 = null;
36713
- a.$_110 = 0;
36714
- }
36715
- var asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test = (var$0, var$1) => {
36716
- let var$2, var$3;
36717
- var$1 = var$1;
36718
- var$2 = var$0.$_020;
36719
- var$3 = var$0.$_110;
36720
- return jl_String_equals(var$1.$sourcePath0, var$2) && var$1.$sourceLine1 == var$3 ? 1 : 0;
36721
- };
36722
36730
  function ju_LinkedHashMapValues() {
36723
36731
  let a = this;
36724
36732
  ju_AbstractCollection.call(a);
@@ -47944,19 +47952,16 @@ var asr_JsSourceLocation_getSourcePath$exported$1 = (var$1) => {
47944
47952
  return $rt_ustr(var$1.$sourcePath5);
47945
47953
  };
47946
47954
  var asr_RARS$Run = $rt_classWithoutFields(0);
47947
- function asr_RARS$simulate$lambda$_17_0() {
47948
- let a = this;
47949
- jl_Object.call(a);
47950
- a.$_038 = null;
47951
- a.$_124 = null;
47955
+ function asr_RARS$step$lambda$_23_0() {
47956
+ jl_Object.call(this);
47957
+ this.$_035 = null;
47952
47958
  }
47953
- var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
47954
- let var$1, var$2, var$3, $ptr, $tmp;
47959
+ var asr_RARS$step$lambda$_23_0_run = (var$0) => {
47960
+ let var$1, var$2, $ptr, $tmp;
47955
47961
  $ptr = 0;
47956
47962
  if ($rt_resuming()) {
47957
47963
  let $thread = $rt_nativeThread();
47958
47964
  $ptr = $thread.pop();
47959
- var$3 = $thread.pop();
47960
47965
  var$2 = $thread.pop();
47961
47966
  var$1 = $thread.pop();
47962
47967
  var$0 = $thread.pop();
@@ -47964,13 +47969,11 @@ var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
47964
47969
  main: while (true) {
47965
47970
  switch ($ptr) {
47966
47971
  case 0:
47967
- var$1 = var$0.$_038;
47968
- var$2 = var$0.$_124;
47969
- var$1 = var$1.$main0;
47970
- var$3 = -1;
47972
+ var$1 = var$0.$_035.$main0;
47973
+ var$2 = 1;
47971
47974
  $ptr = 1;
47972
47975
  case 1:
47973
- $tmp = asr_RISCVprogram_simulate(var$1, var$3, var$2);
47976
+ $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
47974
47977
  if ($rt_suspending()) {
47975
47978
  break main;
47976
47979
  }
@@ -47980,22 +47983,20 @@ var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
47980
47983
  $rt_invalidPointer();
47981
47984
  }
47982
47985
  }
47983
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
47986
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
47984
47987
  };
47985
- function asr_RARS$simulate$lambda$_18_0() {
47988
+ function asr_RARS$simulate$lambda$_19_0() {
47986
47989
  let a = this;
47987
47990
  jl_Object.call(a);
47988
- a.$_025 = null;
47989
- a.$_113 = 0;
47990
- a.$_23 = null;
47991
+ a.$_09 = null;
47992
+ a.$_14 = 0;
47991
47993
  }
47992
- var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
47993
- let var$1, var$2, var$3, $ptr, $tmp;
47994
+ var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
47995
+ let var$1, var$2, $ptr, $tmp;
47994
47996
  $ptr = 0;
47995
47997
  if ($rt_resuming()) {
47996
47998
  let $thread = $rt_nativeThread();
47997
47999
  $ptr = $thread.pop();
47998
- var$3 = $thread.pop();
47999
48000
  var$2 = $thread.pop();
48000
48001
  var$1 = $thread.pop();
48001
48002
  var$0 = $thread.pop();
@@ -48003,13 +48004,12 @@ var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
48003
48004
  main: while (true) {
48004
48005
  switch ($ptr) {
48005
48006
  case 0:
48006
- var$1 = var$0.$_025;
48007
- var$2 = var$0.$_113;
48008
- var$3 = var$0.$_23;
48007
+ var$1 = var$0.$_09;
48008
+ var$2 = var$0.$_14;
48009
48009
  var$1 = var$1.$main0;
48010
48010
  $ptr = 1;
48011
48011
  case 1:
48012
- $tmp = asr_RISCVprogram_simulate(var$1, var$2, var$3);
48012
+ $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
48013
48013
  if ($rt_suspending()) {
48014
48014
  break main;
48015
48015
  }
@@ -48019,18 +48019,21 @@ var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
48019
48019
  $rt_invalidPointer();
48020
48020
  }
48021
48021
  }
48022
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
48022
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
48023
48023
  };
48024
- function asr_RARS$step$lambda$_23_0() {
48025
- jl_Object.call(this);
48026
- this.$_035 = null;
48024
+ function asr_RARS$simulate$lambda$_17_0() {
48025
+ let a = this;
48026
+ jl_Object.call(a);
48027
+ a.$_038 = null;
48028
+ a.$_124 = null;
48027
48029
  }
48028
- var asr_RARS$step$lambda$_23_0_run = (var$0) => {
48029
- let var$1, var$2, $ptr, $tmp;
48030
+ var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
48031
+ let var$1, var$2, var$3, $ptr, $tmp;
48030
48032
  $ptr = 0;
48031
48033
  if ($rt_resuming()) {
48032
48034
  let $thread = $rt_nativeThread();
48033
48035
  $ptr = $thread.pop();
48036
+ var$3 = $thread.pop();
48034
48037
  var$2 = $thread.pop();
48035
48038
  var$1 = $thread.pop();
48036
48039
  var$0 = $thread.pop();
@@ -48038,11 +48041,13 @@ var asr_RARS$step$lambda$_23_0_run = (var$0) => {
48038
48041
  main: while (true) {
48039
48042
  switch ($ptr) {
48040
48043
  case 0:
48041
- var$1 = var$0.$_035.$main0;
48042
- var$2 = 1;
48044
+ var$1 = var$0.$_038;
48045
+ var$2 = var$0.$_124;
48046
+ var$1 = var$1.$main0;
48047
+ var$3 = -1;
48043
48048
  $ptr = 1;
48044
48049
  case 1:
48045
- $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
48050
+ $tmp = asr_RISCVprogram_simulate(var$1, var$3, var$2);
48046
48051
  if ($rt_suspending()) {
48047
48052
  break main;
48048
48053
  }
@@ -48052,20 +48057,22 @@ var asr_RARS$step$lambda$_23_0_run = (var$0) => {
48052
48057
  $rt_invalidPointer();
48053
48058
  }
48054
48059
  }
48055
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
48060
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
48056
48061
  };
48057
- function asr_RARS$simulate$lambda$_19_0() {
48062
+ function asr_RARS$simulate$lambda$_18_0() {
48058
48063
  let a = this;
48059
48064
  jl_Object.call(a);
48060
- a.$_09 = null;
48061
- a.$_14 = 0;
48065
+ a.$_025 = null;
48066
+ a.$_113 = 0;
48067
+ a.$_23 = null;
48062
48068
  }
48063
- var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
48064
- let var$1, var$2, $ptr, $tmp;
48069
+ var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
48070
+ let var$1, var$2, var$3, $ptr, $tmp;
48065
48071
  $ptr = 0;
48066
48072
  if ($rt_resuming()) {
48067
48073
  let $thread = $rt_nativeThread();
48068
48074
  $ptr = $thread.pop();
48075
+ var$3 = $thread.pop();
48069
48076
  var$2 = $thread.pop();
48070
48077
  var$1 = $thread.pop();
48071
48078
  var$0 = $thread.pop();
@@ -48073,12 +48080,13 @@ var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
48073
48080
  main: while (true) {
48074
48081
  switch ($ptr) {
48075
48082
  case 0:
48076
- var$1 = var$0.$_09;
48077
- var$2 = var$0.$_14;
48083
+ var$1 = var$0.$_025;
48084
+ var$2 = var$0.$_113;
48085
+ var$3 = var$0.$_23;
48078
48086
  var$1 = var$1.$main0;
48079
48087
  $ptr = 1;
48080
48088
  case 1:
48081
- $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
48089
+ $tmp = asr_RISCVprogram_simulate(var$1, var$2, var$3);
48082
48090
  if ($rt_suspending()) {
48083
48091
  break main;
48084
48092
  }
@@ -48088,7 +48096,7 @@ var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
48088
48096
  $rt_invalidPointer();
48089
48097
  }
48090
48098
  }
48091
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
48099
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
48092
48100
  };
48093
48101
  var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
48094
48102
  var asrs_Simulator$Reason_BREAKPOINT = null;
@@ -54455,22 +54463,23 @@ $rt_metadata([
54455
54463
  0,
54456
54464
  0,
54457
54465
  0,
54458
- asr_JsRiscV$Body,
54466
+ ju_Observer,
54459
54467
  0,
54460
54468
  jl_Object,
54461
54469
  [],
54462
- 1536,
54463
- 0,
54470
+ 1537,
54464
54471
  0,
54465
54472
  0,
54466
- asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0,
54467
54473
  0,
54474
+ asr_JsMemoryObserver,
54475
+ "JsMemoryObserver",
54476
+ 11,
54468
54477
  jl_Object,
54469
- [asr_JsRiscV$Body],
54470
- 1,
54478
+ [ju_Observer],
54479
+ 0,
54480
+ 0,
54471
54481
  0,
54472
54482
  0,
54473
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run)],
54474
54483
  jl_IllegalStateException,
54475
54484
  "IllegalStateException",
54476
54485
  18,
@@ -54480,23 +54489,6 @@ $rt_metadata([
54480
54489
  0,
54481
54490
  0,
54482
54491
  0,
54483
- asra_MemoryLayoutFacts,
54484
- 0,
54485
- jl_Object,
54486
- [],
54487
- 17,
54488
- 0,
54489
- () => asra_MemoryLayoutFacts_$callClinit(),
54490
- 0,
54491
- asr_JsProgramStatement,
54492
- "JsProgramStatement",
54493
- 11,
54494
- jl_Object,
54495
- [],
54496
- 1,
54497
- 0,
54498
- 0,
54499
- 0,
54500
54492
  asr_JsRiscV$PokeRecord,
54501
54493
  "JsRiscV$PokeRecord",
54502
54494
  11,
@@ -54514,64 +54506,54 @@ $rt_metadata([
54514
54506
  0,
54515
54507
  0,
54516
54508
  0,
54517
- ju_Observer,
54509
+ asrs_BackStepper,
54518
54510
  0,
54519
54511
  jl_Object,
54520
54512
  [],
54521
- 1537,
54513
+ 1,
54522
54514
  0,
54515
+ () => asrs_BackStepper_$callClinit(),
54523
54516
  0,
54517
+ asr_JsRiscV$Body,
54524
54518
  0,
54525
- asr_JsMemoryObserver,
54526
- "JsMemoryObserver",
54527
- 11,
54528
54519
  jl_Object,
54529
- [ju_Observer],
54520
+ [],
54521
+ 1536,
54530
54522
  0,
54531
54523
  0,
54532
54524
  0,
54525
+ asr_JsRiscV$step$lambda$_24_0,
54533
54526
  0,
54534
- asr_JsCompilationResult,
54535
- "JsCompilationResult",
54536
- 11,
54537
54527
  jl_Object,
54538
- [],
54528
+ [asr_JsRiscV$Body],
54539
54529
  1,
54540
54530
  0,
54541
54531
  0,
54542
- 0,
54543
- juf_ToIntFunction,
54532
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_24_0_run)],
54533
+ asra_MemoryLayoutFacts,
54544
54534
  0,
54545
54535
  jl_Object,
54546
54536
  [],
54547
- 1537,
54548
- 0,
54549
- 0,
54550
- 0,
54551
- asr_JsRiscV$getRegistersValues$lambda$_43_0,
54552
- 0,
54553
- jl_Object,
54554
- [juf_ToIntFunction],
54555
- 1,
54556
- 0,
54537
+ 17,
54557
54538
  0,
54539
+ () => asra_MemoryLayoutFacts_$callClinit(),
54558
54540
  0,
54559
- asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0,
54541
+ asr_JsRiscV$simulate$lambda$_27_0,
54560
54542
  0,
54561
54543
  jl_Object,
54562
54544
  [asr_JsRiscV$Body],
54563
54545
  1,
54564
54546
  0,
54565
54547
  0,
54566
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run)],
54567
- asr_JsRiscV$step$lambda$_24_0,
54548
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_27_0_run)],
54549
+ asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0,
54568
54550
  0,
54569
54551
  jl_Object,
54570
54552
  [asr_JsRiscV$Body],
54571
54553
  1,
54572
54554
  0,
54573
54555
  0,
54574
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_24_0_run)],
54556
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run)],
54575
54557
  jl_Long,
54576
54558
  "Long",
54577
54559
  18,
@@ -54581,77 +54563,24 @@ $rt_metadata([
54581
54563
  0,
54582
54564
  () => jl_Long_$callClinit(),
54583
54565
  ["$toString", $rt_wrapFunction0(jl_Long_toString0), "$hashCode0", $rt_wrapFunction0(jl_Long_hashCode), "$equals", $rt_wrapFunction1(jl_Long_equals), "$compareTo0", $rt_wrapFunction1(jl_Long_compareTo)],
54584
- asr_JsStackFrame,
54585
- "JsStackFrame",
54586
- 11,
54587
- jl_Object,
54588
- [],
54589
- 1,
54590
- 0,
54591
- 0,
54592
- 0,
54593
- asrs_BackStepper,
54566
+ juf_ToIntFunction,
54594
54567
  0,
54595
54568
  jl_Object,
54596
54569
  [],
54597
- 1,
54598
- 0,
54599
- () => asrs_BackStepper_$callClinit(),
54600
- 0,
54601
- otjc_JSArrayReader,
54602
- 0,
54603
- jl_Object,
54604
- [otj_JSObject],
54605
54570
  1537,
54606
54571
  0,
54607
54572
  0,
54608
54573
  0,
54609
- otjc_JSArray,
54610
- 0,
54611
- jl_Object,
54612
- [otjc_JSArrayReader],
54613
- 1,
54614
- 0,
54615
- 0,
54616
- 0,
54617
- asr_JsBackStep,
54618
- 0,
54619
- jl_Object,
54620
- [],
54621
- 17,
54622
- 0,
54623
- 0,
54624
- 0
54625
- ]);
54626
- $rt_metadata([
54627
- asr_JsUndoGroup,
54628
- 0,
54629
- jl_Object,
54630
- [],
54631
- 17,
54632
- 0,
54633
- 0,
54574
+ asr_JsRiscV$getRegistersValues$lambda$_43_0,
54634
54575
  0,
54635
- asr_JsRiscVTokenizedLine,
54636
- "JsRiscVTokenizedLine",
54637
- 11,
54638
54576
  jl_Object,
54639
- [],
54577
+ [juf_ToIntFunction],
54640
54578
  1,
54641
54579
  0,
54642
54580
  0,
54643
54581
  0,
54644
- asra_TokenList,
54645
- "TokenList",
54646
- 9,
54647
- jl_Object,
54648
- [jl_Cloneable, jl_Iterable],
54649
- 1,
54650
- 0,
54651
- 0,
54652
- ["$toString", $rt_wrapFunction0(asra_TokenList_toString)],
54653
- asr_JsRiscVToken,
54654
- "JsRiscVToken",
54582
+ asr_JsProgramStatement,
54583
+ "JsProgramStatement",
54655
54584
  11,
54656
54585
  jl_Object,
54657
54586
  [],
@@ -54659,14 +54588,6 @@ $rt_metadata([
54659
54588
  0,
54660
54589
  0,
54661
54590
  0,
54662
- asr_JsRiscV$simulate$lambda$_27_0,
54663
- 0,
54664
- jl_Object,
54665
- [asr_JsRiscV$Body],
54666
- 1,
54667
- 0,
54668
- 0,
54669
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_27_0_run)],
54670
54591
  jl_Double,
54671
54592
  0,
54672
54593
  jl_Number,
@@ -54691,6 +54612,93 @@ $rt_metadata([
54691
54612
  0,
54692
54613
  0,
54693
54614
  ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1_apply)],
54615
+ asr_JsStackFrame,
54616
+ "JsStackFrame",
54617
+ 11,
54618
+ jl_Object,
54619
+ [],
54620
+ 1,
54621
+ 0,
54622
+ 0,
54623
+ 0,
54624
+ otjc_JSArrayReader,
54625
+ 0,
54626
+ jl_Object,
54627
+ [otj_JSObject],
54628
+ 1537,
54629
+ 0,
54630
+ 0,
54631
+ 0
54632
+ ]);
54633
+ $rt_metadata([
54634
+ otjc_JSArray,
54635
+ 0,
54636
+ jl_Object,
54637
+ [otjc_JSArrayReader],
54638
+ 1,
54639
+ 0,
54640
+ 0,
54641
+ 0,
54642
+ asr_JsBackStep,
54643
+ 0,
54644
+ jl_Object,
54645
+ [],
54646
+ 17,
54647
+ 0,
54648
+ 0,
54649
+ 0,
54650
+ asr_JsUndoGroup,
54651
+ 0,
54652
+ jl_Object,
54653
+ [],
54654
+ 17,
54655
+ 0,
54656
+ 0,
54657
+ 0,
54658
+ asr_JsRiscVTokenizedLine,
54659
+ "JsRiscVTokenizedLine",
54660
+ 11,
54661
+ jl_Object,
54662
+ [],
54663
+ 1,
54664
+ 0,
54665
+ 0,
54666
+ 0,
54667
+ asra_TokenList,
54668
+ "TokenList",
54669
+ 9,
54670
+ jl_Object,
54671
+ [jl_Cloneable, jl_Iterable],
54672
+ 1,
54673
+ 0,
54674
+ 0,
54675
+ ["$toString", $rt_wrapFunction0(asra_TokenList_toString)],
54676
+ asr_JsRiscVToken,
54677
+ "JsRiscVToken",
54678
+ 11,
54679
+ jl_Object,
54680
+ [],
54681
+ 1,
54682
+ 0,
54683
+ 0,
54684
+ 0,
54685
+ asr_JsCompilationResult,
54686
+ "JsCompilationResult",
54687
+ 11,
54688
+ jl_Object,
54689
+ [],
54690
+ 1,
54691
+ 0,
54692
+ 0,
54693
+ 0,
54694
+ asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0,
54695
+ 0,
54696
+ jl_Object,
54697
+ [asr_JsRiscV$Body],
54698
+ 1,
54699
+ 0,
54700
+ 0,
54701
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run)],
54694
54702
  asr_JsRiscV$simulateWithLimit$lambda$_28_0,
54695
54703
  0,
54696
54704
  jl_Object,
@@ -54962,31 +54970,6 @@ $rt_metadata([
54962
54970
  0,
54963
54971
  0,
54964
54972
  ["$contains1", $rt_wrapFunction1(jur_CharClass$16_contains)],
54965
- otjc_JSPromise$Executor,
54966
- 0,
54967
- jl_Object,
54968
- [otj_JSObject],
54969
- 1537,
54970
- 0,
54971
- 0,
54972
- 0,
54973
- asr_JsRiscV$run$lambda$_22_0,
54974
- "JsRiscV$run$lambda$_22_0",
54975
- 11,
54976
- jl_Object,
54977
- [otjc_JSPromise$Executor],
54978
- 1,
54979
- 0,
54980
- 0,
54981
- 0,
54982
- otjc_JSPromise,
54983
- 0,
54984
- jl_Object,
54985
- [otj_JSObject],
54986
- 1,
54987
- 0,
54988
- 0,
54989
- 0,
54990
54973
  asr_JsRiscV$PokeRegisterWrite,
54991
54974
  "JsRiscV$PokeRegisterWrite",
54992
54975
  11,
@@ -55004,52 +54987,43 @@ $rt_metadata([
55004
54987
  0,
55005
54988
  0,
55006
54989
  0,
55007
- asr_JsCompilationResult$_init_$lambda$_0_0,
55008
- 0,
55009
- jl_Object,
55010
- [juf_Function],
55011
- 1,
55012
- 0,
55013
- 0,
55014
- ["$apply", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
55015
- juf_Supplier,
54990
+ asrs_BackStepper$BackstepStack,
55016
54991
  0,
55017
54992
  jl_Object,
55018
54993
  [],
55019
- 1537,
54994
+ 1,
55020
54995
  0,
55021
54996
  0,
55022
54997
  0,
55023
- asr_JsCompilationResult$_init_$lambda$_0_1,
54998
+ asrs_BackStepper$BackStep,
55024
54999
  0,
55025
55000
  jl_Object,
55026
- [juf_Supplier],
55001
+ [],
55027
55002
  1,
55028
55003
  0,
55029
55004
  0,
55030
55005
  0,
55031
- juf_BiConsumer,
55006
+ otjc_JSPromise$Executor,
55032
55007
  0,
55033
55008
  jl_Object,
55034
- [],
55009
+ [otj_JSObject],
55035
55010
  1537,
55036
55011
  0,
55037
55012
  0,
55038
- 0
55039
- ]);
55040
- $rt_metadata([
55041
- asr_JsCompilationResult$_init_$lambda$_0_2,
55042
55013
  0,
55014
+ asr_JsRiscV$run$lambda$_22_0,
55015
+ "JsRiscV$run$lambda$_22_0",
55016
+ 11,
55043
55017
  jl_Object,
55044
- [juf_BiConsumer],
55018
+ [otjc_JSPromise$Executor],
55045
55019
  1,
55046
55020
  0,
55047
55021
  0,
55048
55022
  0,
55049
- asr_JsCompilationResult$_init_$lambda$_0_3,
55023
+ otjc_JSPromise,
55050
55024
  0,
55051
55025
  jl_Object,
55052
- [juf_BiConsumer],
55026
+ [otj_JSObject],
55053
55027
  1,
55054
55028
  0,
55055
55029
  0,
@@ -55069,7 +55043,9 @@ $rt_metadata([
55069
55043
  1537,
55070
55044
  0,
55071
55045
  0,
55072
- 0,
55046
+ 0
55047
+ ]);
55048
+ $rt_metadata([
55073
55049
  jus_Stream,
55074
55050
  0,
55075
55051
  jl_Object,
@@ -55103,53 +55079,85 @@ $rt_metadata([
55103
55079
  0,
55104
55080
  0,
55105
55081
  0,
55106
- asrs_BackStepper$BackstepStack,
55082
+ otjc_JSObjects,
55107
55083
  0,
55108
55084
  jl_Object,
55109
55085
  [],
55110
- 1,
55086
+ 17,
55111
55087
  0,
55112
55088
  0,
55113
55089
  0,
55114
- asrs_BackStepper$BackStep,
55090
+ otji_JSWrapper$Helper,
55115
55091
  0,
55116
55092
  jl_Object,
55117
55093
  [],
55118
- 1,
55119
55094
  0,
55120
55095
  0,
55096
+ () => otji_JSWrapper$Helper_$callClinit(),
55121
55097
  0,
55122
- otjc_JSObjects,
55098
+ otjc_JSUndefined,
55123
55099
  0,
55124
55100
  jl_Object,
55101
+ [otj_JSObject],
55102
+ 1,
55103
+ 0,
55104
+ 0,
55105
+ 0,
55106
+ asra_TokenTypes,
55107
+ 0,
55108
+ jl_Enum,
55125
55109
  [],
55126
- 17,
55110
+ 65553,
55127
55111
  0,
55112
+ () => asra_TokenTypes_$callClinit(),
55128
55113
  0,
55114
+ asr_JsCompilationResult$_init_$lambda$_0_0,
55129
55115
  0,
55130
- otji_JSWrapper$Helper,
55116
+ jl_Object,
55117
+ [juf_Function],
55118
+ 1,
55119
+ 0,
55120
+ 0,
55121
+ ["$apply", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
55122
+ juf_Supplier,
55131
55123
  0,
55132
55124
  jl_Object,
55133
55125
  [],
55126
+ 1537,
55134
55127
  0,
55135
55128
  0,
55136
- () => otji_JSWrapper$Helper_$callClinit(),
55137
55129
  0,
55138
- otjc_JSUndefined,
55130
+ asr_JsCompilationResult$_init_$lambda$_0_1,
55139
55131
  0,
55140
55132
  jl_Object,
55141
- [otj_JSObject],
55133
+ [juf_Supplier],
55142
55134
  1,
55143
55135
  0,
55144
55136
  0,
55145
55137
  0,
55146
- asra_TokenTypes,
55138
+ juf_BiConsumer,
55147
55139
  0,
55148
- jl_Enum,
55140
+ jl_Object,
55149
55141
  [],
55150
- 65553,
55142
+ 1537,
55143
+ 0,
55144
+ 0,
55145
+ 0,
55146
+ asr_JsCompilationResult$_init_$lambda$_0_2,
55147
+ 0,
55148
+ jl_Object,
55149
+ [juf_BiConsumer],
55150
+ 1,
55151
+ 0,
55152
+ 0,
55153
+ 0,
55154
+ asr_JsCompilationResult$_init_$lambda$_0_3,
55155
+ 0,
55156
+ jl_Object,
55157
+ [juf_BiConsumer],
55158
+ 1,
55159
+ 0,
55151
55160
  0,
55152
- () => asra_TokenTypes_$callClinit(),
55153
55161
  0,
55154
55162
  asra_Token,
55155
55163
  "Token",
@@ -57873,21 +57881,21 @@ $rt_metadata([
57873
57881
  0,
57874
57882
  0,
57875
57883
  0,
57876
- asrrh_InterruptController,
57884
+ asr_RARS$getStatementsAtSourceLocation$lambda$_7_0,
57877
57885
  0,
57878
57886
  jl_Object,
57879
- [],
57887
+ [juf_Predicate],
57880
57888
  1,
57881
57889
  0,
57882
- () => asrrh_InterruptController_$callClinit(),
57883
57890
  0,
57884
- asrrh_ReservationTable,
57891
+ ["$test", $rt_wrapFunction1(asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test)],
57892
+ asrrh_Stack,
57885
57893
  0,
57886
57894
  jl_Object,
57887
57895
  [],
57888
57896
  1,
57889
57897
  0,
57890
- () => asrrh_ReservationTable_$callClinit(),
57898
+ () => asrrh_Stack_$callClinit(),
57891
57899
  0,
57892
57900
  asrs_ProgramExit,
57893
57901
  0,
@@ -57897,38 +57905,38 @@ $rt_metadata([
57897
57905
  0,
57898
57906
  0,
57899
57907
  0,
57900
- asrrs_RandomStreams,
57908
+ asrrh_InterruptController,
57901
57909
  0,
57902
57910
  jl_Object,
57903
57911
  [],
57904
- 17,
57912
+ 1,
57905
57913
  0,
57906
- () => asrrs_RandomStreams_$callClinit(),
57914
+ () => asrrh_InterruptController_$callClinit(),
57907
57915
  0,
57908
- asrrh_Stack,
57916
+ asrrh_ReservationTable,
57909
57917
  0,
57910
57918
  jl_Object,
57911
57919
  [],
57912
57920
  1,
57913
57921
  0,
57914
- () => asrrh_Stack_$callClinit(),
57922
+ () => asrrh_ReservationTable_$callClinit(),
57915
57923
  0,
57916
- asrs_Simulator,
57924
+ asrrs_RandomStreams,
57917
57925
  0,
57918
- ju_Observable,
57926
+ jl_Object,
57919
57927
  [],
57920
- 1,
57928
+ 17,
57921
57929
  0,
57922
- () => asrs_Simulator_$callClinit(),
57930
+ () => asrrs_RandomStreams_$callClinit(),
57923
57931
  0,
57924
- asr_RARS$getStatementsAtSourceLocation$lambda$_7_0,
57932
+ asrs_Simulator,
57925
57933
  0,
57926
- jl_Object,
57927
- [juf_Predicate],
57934
+ ju_Observable,
57935
+ [],
57928
57936
  1,
57929
57937
  0,
57938
+ () => asrs_Simulator_$callClinit(),
57930
57939
  0,
57931
- ["$test", $rt_wrapFunction1(asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test)],
57932
57940
  ju_LinkedHashMapValues,
57933
57941
  0,
57934
57942
  ju_AbstractCollection,
@@ -59423,38 +59431,38 @@ $rt_metadata([
59423
59431
  0,
59424
59432
  0,
59425
59433
  0,
59426
- asr_RARS$simulate$lambda$_17_0,
59434
+ asr_RARS$step$lambda$_23_0,
59427
59435
  0,
59428
59436
  jl_Object,
59429
59437
  [asr_RARS$Run],
59430
59438
  1,
59431
59439
  0,
59432
59440
  0,
59433
- ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_17_0_run)],
59434
- asr_RARS$simulate$lambda$_18_0,
59441
+ ["$run2", $rt_wrapFunction0(asr_RARS$step$lambda$_23_0_run)],
59442
+ asr_RARS$simulate$lambda$_19_0,
59435
59443
  0,
59436
59444
  jl_Object,
59437
59445
  [asr_RARS$Run],
59438
59446
  1,
59439
59447
  0,
59440
59448
  0,
59441
- ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_18_0_run)],
59442
- asr_RARS$step$lambda$_23_0,
59449
+ ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_19_0_run)],
59450
+ asr_RARS$simulate$lambda$_17_0,
59443
59451
  0,
59444
59452
  jl_Object,
59445
59453
  [asr_RARS$Run],
59446
59454
  1,
59447
59455
  0,
59448
59456
  0,
59449
- ["$run2", $rt_wrapFunction0(asr_RARS$step$lambda$_23_0_run)],
59450
- asr_RARS$simulate$lambda$_19_0,
59457
+ ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_17_0_run)],
59458
+ asr_RARS$simulate$lambda$_18_0,
59451
59459
  0,
59452
59460
  jl_Object,
59453
59461
  [asr_RARS$Run],
59454
59462
  1,
59455
59463
  0,
59456
59464
  0,
59457
- ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_19_0_run)],
59465
+ ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_18_0_run)],
59458
59466
  asrs_Simulator$Reason,
59459
59467
  0,
59460
59468
  jl_Enum,
@@ -60785,13 +60793,13 @@ $rt_stringPool([
60785
60793
  "sequence: ",
60786
60794
  "UCI sequence: ",
60787
60795
  "CI sequence: ",
60796
+ "Instruction serial space exhausted",
60797
+ "An instruction or poke is already executing",
60788
60798
  "The value is too big for long type",
60789
60799
  "The value is too big for long type: ",
60790
60800
  "Can't parse empty string",
60791
60801
  "The string does not represent a number",
60792
60802
  "The string represents a too big number",
60793
- "Instruction serial space exhausted",
60794
- "An instruction or poke is already executing",
60795
60803
  " , ",
60796
60804
  'CONFIGURATION ERROR: Instruction example "',
60797
60805
  '" contains invalid token(s).',
@@ -62286,19 +62294,6 @@ var $rt_jso_marker = Symbol("jsoClass");
62286
62294
  Object.defineProperty(c, "sourcePath", {
62287
62295
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSourcePath$exported$1)
62288
62296
  });
62289
- c = asr_JsCompilationResult.prototype;
62290
- Object.defineProperty(c, "hasErrors", {
62291
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
62292
- });
62293
- Object.defineProperty(c, "hasWarnings", {
62294
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
62295
- });
62296
- Object.defineProperty(c, "report", {
62297
- get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
62298
- });
62299
- Object.defineProperty(c, "errors", {
62300
- get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
62301
- });
62302
62297
  c = asr_JsStackFrame.prototype;
62303
62298
  Object.defineProperty(c, "pc", {
62304
62299
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -62341,6 +62336,19 @@ var $rt_jso_marker = Symbol("jsoClass");
62341
62336
  Object.defineProperty(c, "sourceColumn", {
62342
62337
  get: $rt_callWithReceiver(asr_JsRiscVToken_getSourceColumn$exported$1)
62343
62338
  });
62339
+ c = asr_JsCompilationResult.prototype;
62340
+ Object.defineProperty(c, "hasErrors", {
62341
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
62342
+ });
62343
+ Object.defineProperty(c, "hasWarnings", {
62344
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
62345
+ });
62346
+ Object.defineProperty(c, "report", {
62347
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
62348
+ });
62349
+ Object.defineProperty(c, "errors", {
62350
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
62351
+ });
62344
62352
  c = asr_JsRiscV$run$lambda$_22_0.prototype;
62345
62353
  c.onExecute = $rt_callWithReceiver(asr_JsRiscV$run$lambda$_22_0_onExecute$exported$0);
62346
62354
  c = otji_JSWrapper$Helper$_clinit_$lambda$_3_0.prototype;
@@ -62396,26 +62404,26 @@ function $rt_export_class_JsRISCVIO_61() {
62396
62404
  return asr_JsRISCVIO__init_$exported$0();
62397
62405
  }
62398
62406
  $rt_export_class_JsRISCVIO_61.prototype = asr_JsRISCVIO.prototype;
62399
- function $rt_export_class_JsProgramStatement_283() {
62407
+ function $rt_export_class_JsProgramStatement_293() {
62400
62408
  throw new Error("Can't instantiate this class directly");
62401
62409
  }
62402
- $rt_export_class_JsProgramStatement_283.prototype = asr_JsProgramStatement.prototype;
62403
- function $rt_export_class_JsCompilationResult_288() {
62410
+ $rt_export_class_JsProgramStatement_293.prototype = asr_JsProgramStatement.prototype;
62411
+ function $rt_export_class_JsStackFrame_297() {
62404
62412
  throw new Error("Can't instantiate this class directly");
62405
62413
  }
62406
- $rt_export_class_JsCompilationResult_288.prototype = asr_JsCompilationResult.prototype;
62407
- function $rt_export_class_JsStackFrame_294() {
62414
+ $rt_export_class_JsStackFrame_297.prototype = asr_JsStackFrame.prototype;
62415
+ function $rt_export_class_JsRiscVTokenizedLine_302() {
62408
62416
  throw new Error("Can't instantiate this class directly");
62409
62417
  }
62410
- $rt_export_class_JsStackFrame_294.prototype = asr_JsStackFrame.prototype;
62411
- function $rt_export_class_JsRiscVTokenizedLine_300() {
62418
+ $rt_export_class_JsRiscVTokenizedLine_302.prototype = asr_JsRiscVTokenizedLine.prototype;
62419
+ function $rt_export_class_JsRiscVToken_304() {
62412
62420
  throw new Error("Can't instantiate this class directly");
62413
62421
  }
62414
- $rt_export_class_JsRiscVTokenizedLine_300.prototype = asr_JsRiscVTokenizedLine.prototype;
62415
- function $rt_export_class_JsRiscVToken_302() {
62422
+ $rt_export_class_JsRiscVToken_304.prototype = asr_JsRiscVToken.prototype;
62423
+ function $rt_export_class_JsCompilationResult_305() {
62416
62424
  throw new Error("Can't instantiate this class directly");
62417
62425
  }
62418
- $rt_export_class_JsRiscVToken_302.prototype = asr_JsRiscVToken.prototype;
62426
+ $rt_export_class_JsCompilationResult_305.prototype = asr_JsCompilationResult.prototype;
62419
62427
  function $rt_export_class_JsCompilationError_701() {
62420
62428
  throw new Error("Can't instantiate this class directly");
62421
62429
  }