@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.js CHANGED
@@ -23001,20 +23001,252 @@ var otci_Base46_decode = ($seq) => {
23001
23001
  $result = -$result | 0;
23002
23002
  return $result;
23003
23003
  };
23004
- var asr_JsRiscV$Body = $rt_classWithoutFields(0);
23005
- function asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0() {
23004
+ var ju_Observer = $rt_classWithoutFields(0);
23005
+ function asr_JsMemoryObserver() {
23006
23006
  let a = this;
23007
23007
  jl_Object.call(a);
23008
- a.$_02 = null;
23009
- a.$_1 = null;
23008
+ a.$handle = 0;
23009
+ a.$startAddress = 0;
23010
+ a.$endAddress = 0;
23011
+ a.$onRead = null;
23012
+ a.$onWrite = null;
23013
+ a.$reportsLength = 0;
23010
23014
  }
23011
- var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
23012
- let var$1, var$2, var$3, $ptr, $tmp;
23015
+ var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
23016
+ $this.$handle = $handle;
23017
+ $this.$startAddress = $startAddress;
23018
+ $this.$endAddress = $endAddress;
23019
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
23020
+ $onRead = null;
23021
+ $this.$onRead = $onRead;
23022
+ if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
23023
+ $onWrite = null;
23024
+ $this.$onWrite = $onWrite;
23025
+ $this.$reportsLength = $reportsLength;
23026
+ };
23027
+ var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
23028
+ let var_6 = new asr_JsMemoryObserver();
23029
+ asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
23030
+ return var_6;
23031
+ };
23032
+ var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
23033
+ return var$1 === null || var$1 === void 0;
23034
+ };
23035
+ var asr_JsMemoryObserver_describe$js_body$_5 = (var$1) => {
23036
+ return var$1 instanceof Error ? var$1.message || String(var$1) : String(var$1);
23037
+ };
23038
+ var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
23039
+ function asr_JsRiscV$PokeRecord() {
23040
+ let a = this;
23041
+ jl_Object.call(a);
23042
+ a.$group1 = 0;
23043
+ a.$writes = null;
23044
+ }
23045
+ function asr_JsRiscV$PokeJournal() {
23046
+ let a = this;
23047
+ jl_Object.call(a);
23048
+ a.$group3 = 0;
23049
+ a.$registers = null;
23050
+ a.$registersByName = null;
23051
+ a.$memoryOldBytes = null;
23052
+ }
23053
+ function asrs_BackStepper() {
23054
+ let a = this;
23055
+ jl_Object.call(a);
23056
+ a.$instructionSerial = Long_ZERO;
23057
+ a.$pokeSerial = Long_ZERO;
23058
+ a.$instructionPc = 0;
23059
+ a.$instructionDiscarded = 0;
23060
+ a.$engaged = 0;
23061
+ a.$backSteps = null;
23062
+ a.$pokeGroup = 0;
23063
+ a.$pokeRestores = null;
23064
+ }
23065
+ var asrs_BackStepper_nextSerial = Long_ZERO;
23066
+ var asrs_BackStepper_nextPokeGroup = 0;
23067
+ var asrs_BackStepper_$callClinit = () => {
23068
+ asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
23069
+ asrs_BackStepper__clinit_();
23070
+ };
23071
+ var asrs_BackStepper_allocateSerial = () => {
23072
+ let var$1, var$2;
23073
+ asrs_BackStepper_$callClinit();
23074
+ var$1 = asrs_BackStepper_nextSerial;
23075
+ if (Long_ne(var$1, Long_create(4294967295, 2147483647))) {
23076
+ asrs_BackStepper_nextSerial = Long_add(var$1, Long_fromInt(1));
23077
+ return var$1;
23078
+ }
23079
+ var$2 = new jl_IllegalStateException();
23080
+ jl_Throwable__init_(var$2, $rt_s(937));
23081
+ $rt_throw(var$2);
23082
+ };
23083
+ var asrs_BackStepper_beginInstruction = ($this, $pc, $recording) => {
23084
+ let var$3;
23085
+ if (Long_eq($this.$instructionSerial, Long_ZERO) && !(!$this.$pokeGroup ? 0 : 1)) {
23086
+ $this.$instructionSerial = asrs_BackStepper_allocateSerial();
23087
+ $this.$instructionPc = $pc;
23088
+ $pc = $recording && $this.$engaged && $this.$backSteps.$capacity ? 0 : 1;
23089
+ $this.$instructionDiscarded = $pc;
23090
+ if ($pc)
23091
+ asrs_BackStepper_clearHistory($this);
23092
+ return;
23093
+ }
23094
+ var$3 = new jl_IllegalStateException();
23095
+ jl_Throwable__init_(var$3, $rt_s(938));
23096
+ $rt_throw(var$3);
23097
+ };
23098
+ var asrs_BackStepper_endInstruction = ($this) => {
23099
+ let var$1, $$je;
23100
+ a: {
23101
+ try {
23102
+ if (!$this.$instructionDiscarded)
23103
+ asrs_BackStepper_addDoNothing($this, $this.$instructionPc);
23104
+ } catch ($$e) {
23105
+ $$je = $rt_wrapException($$e);
23106
+ var$1 = $$je;
23107
+ break a;
23108
+ }
23109
+ $this.$instructionSerial = Long_ZERO;
23110
+ return;
23111
+ }
23112
+ $this.$instructionSerial = Long_ZERO;
23113
+ $rt_throw(var$1);
23114
+ };
23115
+ var asrs_BackStepper_getCurrentInstructionSerial = ($this) => {
23116
+ return $this.$instructionSerial;
23117
+ };
23118
+ var asrs_BackStepper_clearHistory = ($this) => {
23119
+ let var$1;
23120
+ var$1 = $this.$backSteps;
23121
+ var$1.$size2 = 0;
23122
+ var$1.$top = -1;
23123
+ };
23124
+ var asrs_BackStepper_applyRestore = ($action, $param1, $param2) => {
23125
+ let var$4, var$5, var$6, var$7;
23126
+ asrs_BackStepper_$callClinit();
23127
+ a: {
23128
+ switch ($action.$ordinal0) {
23129
+ case 0:
23130
+ asr_Globals_$callClinit();
23131
+ $action = asr_Globals_memory;
23132
+ var$4 = Long_lo($param2);
23133
+ var$5 = asrrh_Memory_storeRawWord($action, $param1, var$4);
23134
+ asrrh_Memory_notifyAnyObservers($action, 1, $param1, 4, var$4);
23135
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
23136
+ var$6 = asr_Globals_program.$backStepper;
23137
+ var$7 = var$6.$backSteps;
23138
+ asrs_BackStepper$Action_$callClinit();
23139
+ 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);
23140
+ }
23141
+ break a;
23142
+ case 1:
23143
+ asr_Globals_$callClinit();
23144
+ asrrh_Memory_setDoubleWord(asr_Globals_memory, $param1, $param2);
23145
+ break a;
23146
+ case 2:
23147
+ asr_Globals_$callClinit();
23148
+ asrrh_Memory_setWord(asr_Globals_memory, $param1, Long_lo($param2));
23149
+ break a;
23150
+ case 3:
23151
+ asr_Globals_$callClinit();
23152
+ asrrh_Memory_setHalf(asr_Globals_memory, $param1, Long_lo($param2));
23153
+ break a;
23154
+ case 4:
23155
+ asr_Globals_$callClinit();
23156
+ asrrh_Memory_setByte(asr_Globals_memory, $param1, Long_lo($param2));
23157
+ break a;
23158
+ case 5:
23159
+ asrrh_RegisterFile_updateRegister($param1, $param2);
23160
+ break a;
23161
+ case 6:
23162
+ asrrh_RegisterFile_setProgramCounter($param1);
23163
+ break a;
23164
+ case 7:
23165
+ asrrh_ControlAndStatusRegisterFile_updateRegister0($param1, $param2);
23166
+ break a;
23167
+ case 8:
23168
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($param1, $param2);
23169
+ break a;
23170
+ case 9:
23171
+ asrrh_FloatingPointRegisterFile_updateRegisterLong($param1, $param2);
23172
+ break a;
23173
+ case 10:
23174
+ break;
23175
+ case 11:
23176
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
23177
+ $param1 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
23178
+ if ($param1 > 0)
23179
+ asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = $param1 - 1 | 0;
23180
+ else {
23181
+ $action = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(658));
23182
+ var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(659));
23183
+ asrrh_Register_setValueBackdoor($action, Long_sub($action.$getValueNoNotify(), Long_fromInt(1)));
23184
+ asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
23185
+ }
23186
+ break a;
23187
+ case 12:
23188
+ asrrh_ControlAndStatusRegisterFile_$callClinit();
23189
+ asrrh_ControlAndStatusRegisterFile_settleCounters();
23190
+ $action = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1);
23191
+ if ($action !== null)
23192
+ $action.$setValue($param2);
23193
+ break a;
23194
+ case 13:
23195
+ case 15:
23196
+ break a;
23197
+ case 14:
23198
+ $param1 = !$param1 ? 0 : 1;
23199
+ var$4 = Long_lo($param2);
23200
+ asrs_ProgramExit_exited = $param1;
23201
+ asr_Globals_$callClinit();
23202
+ asr_Globals_exitCode = var$4;
23203
+ break a;
23204
+ case 16:
23205
+ asrrh_Memory_$callClinit();
23206
+ asrrh_Memory_heapAddress = $param1;
23207
+ break a;
23208
+ default:
23209
+ break a;
23210
+ }
23211
+ }
23212
+ };
23213
+ var asrs_BackStepper_sameGroup = ($one, $other) => {
23214
+ asrs_BackStepper_$callClinit();
23215
+ return Long_ne($one.$serial, $other.$serial) ? 0 : 1;
23216
+ };
23217
+ var asrs_BackStepper_pc = ($this) => {
23218
+ return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
23219
+ };
23220
+ var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
23221
+ let var$4;
23222
+ var$4 = $this.$backSteps;
23223
+ asrs_BackStepper$Action_$callClinit();
23224
+ asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
23225
+ return $value;
23226
+ };
23227
+ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
23228
+ let var$2;
23229
+ if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && Long_eq(asrs_BackStepper$BackstepStack_peek($this.$backSteps).$serial, $this.$instructionSerial))) {
23230
+ var$2 = $this.$backSteps;
23231
+ asrs_BackStepper$Action_$callClinit();
23232
+ asrs_BackStepper$BackstepStack_push1(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
23233
+ }
23234
+ };
23235
+ var asrs_BackStepper__clinit_ = () => {
23236
+ asrs_BackStepper_nextSerial = Long_fromInt(1);
23237
+ asrs_BackStepper_nextPokeGroup = -2;
23238
+ };
23239
+ var asr_JsRiscV$Body = $rt_classWithoutFields(0);
23240
+ function asr_JsRiscV$step$lambda$_24_0() {
23241
+ jl_Object.call(this);
23242
+ this.$_010 = null;
23243
+ }
23244
+ var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23245
+ let var$1, var$2, $ptr, $tmp;
23013
23246
  $ptr = 0;
23014
23247
  if ($rt_resuming()) {
23015
23248
  let $thread = $rt_nativeThread();
23016
23249
  $ptr = $thread.pop();
23017
- var$3 = $thread.pop();
23018
23250
  var$2 = $thread.pop();
23019
23251
  var$1 = $thread.pop();
23020
23252
  var$0 = $thread.pop();
@@ -23022,15 +23254,12 @@ var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
23022
23254
  main: while (true) {
23023
23255
  switch ($ptr) {
23024
23256
  case 0:
23025
- var$1 = var$0.$_02;
23026
- var$2 = var$0.$_1;
23027
- var$1 = var$1.$main;
23028
- var$3 = new asr_RARS$simulate$lambda$_17_0();
23029
- var$3.$_038 = var$1;
23030
- var$3.$_124 = var$2;
23257
+ var$1 = var$0.$_010.$main;
23258
+ var$2 = new asr_RARS$step$lambda$_23_0();
23259
+ var$2.$_035 = var$1;
23031
23260
  $ptr = 1;
23032
23261
  case 1:
23033
- $tmp = asr_RARS_run(var$1, var$3);
23262
+ $tmp = asr_RARS_run(var$1, var$2);
23034
23263
  if ($rt_suspending()) {
23035
23264
  break main;
23036
23265
  }
@@ -23040,9 +23269,8 @@ var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
23040
23269
  $rt_invalidPointer();
23041
23270
  }
23042
23271
  }
23043
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
23272
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
23044
23273
  };
23045
- var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
23046
23274
  var asra_MemoryLayoutFacts = $rt_classWithoutFields();
23047
23275
  var asra_MemoryLayoutFacts_items = null;
23048
23276
  var asra_MemoryLayoutFacts_sections = null;
@@ -23115,214 +23343,16 @@ var asra_MemoryLayoutFacts__clinit_ = () => {
23115
23343
  asra_MemoryLayoutFacts_names = ju_ArrayList__init_();
23116
23344
  asra_MemoryLayoutFacts_symbols = ju_ArrayList__init_();
23117
23345
  };
23118
- function asr_JsProgramStatement() {
23119
- let a = this;
23120
- jl_Object.call(a);
23121
- a.$sourceLine5 = 0;
23122
- a.$sourcePath2 = null;
23123
- a.$address4 = 0;
23124
- a.$binaryStatement0 = 0;
23125
- a.$source2 = null;
23126
- a.$assemblyStatement = null;
23127
- a.$machineStatement0 = null;
23128
- }
23129
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
23130
- let var$2, var$3, var$4, var$5, var$6;
23131
- $this.$sourceLine5 = $programStatement.$sourceLine1;
23132
- $this.$sourcePath2 = $programStatement.$sourcePath0;
23133
- $this.$address4 = $programStatement.$textAddress0;
23134
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
23135
- $this.$source2 = $programStatement.$source;
23136
- var$2 = $programStatement.$basicStatementList;
23137
- if (var$2 === null) {
23138
- var$2 = $programStatement.$basicAssemblyStatement;
23139
- if (var$2 === null)
23140
- var$2 = $rt_s(2);
23141
- } else {
23142
- var$3 = asr_Globals_getSettings();
23143
- asr_Settings$Bool_$callClinit();
23144
- var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23145
- var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23146
- var$3 = new jl_StringBuffer();
23147
- jl_AbstractStringBuilder__init_(var$3);
23148
- var$6 = ju_AbstractList_iterator(var$2.$list);
23149
- while (ju_AbstractList$1_hasNext(var$6)) {
23150
- a: {
23151
- var$2 = ju_AbstractList$1_next(var$6);
23152
- switch (var$2.$type4) {
23153
- case 0:
23154
- break;
23155
- case 1:
23156
- if (var$4 == 10) {
23157
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23158
- break a;
23159
- }
23160
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23161
- break a;
23162
- case 2:
23163
- if (var$5 == 10) {
23164
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23165
- break a;
23166
- }
23167
- jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23168
- break a;
23169
- case 3:
23170
- jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23171
- break a;
23172
- default:
23173
- break a;
23174
- }
23175
- jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
23176
- }
23177
- }
23178
- var$2 = jl_AbstractStringBuilder_toString(var$3);
23179
- }
23180
- $this.$assemblyStatement = var$2;
23181
- $this.$machineStatement0 = $programStatement.$machineStatement;
23182
- };
23183
- var asr_JsProgramStatement__init_ = (var_0) => {
23184
- let var_1 = new asr_JsProgramStatement();
23185
- asr_JsProgramStatement__init_0(var_1, var_0);
23186
- return var_1;
23187
- };
23188
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
23189
- return var$1.$sourceLine5;
23190
- };
23191
- var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
23192
- return $rt_ustr(var$1.$sourcePath2);
23193
- };
23194
- var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
23195
- return $rt_ustr(var$1.$assemblyStatement);
23196
- };
23197
- var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
23198
- return $rt_ustr(var$1.$source2);
23199
- };
23200
- var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
23201
- return var$1.$address4;
23202
- };
23203
- var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
23204
- return var$1.$binaryStatement0;
23205
- };
23206
- var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
23207
- return $rt_ustr(var$1.$machineStatement0);
23208
- };
23209
- function asr_JsRiscV$PokeRecord() {
23210
- let a = this;
23211
- jl_Object.call(a);
23212
- a.$group1 = 0;
23213
- a.$writes = null;
23214
- }
23215
- function asr_JsRiscV$PokeJournal() {
23216
- let a = this;
23217
- jl_Object.call(a);
23218
- a.$group3 = 0;
23219
- a.$registers = null;
23220
- a.$registersByName = null;
23221
- a.$memoryOldBytes = null;
23222
- }
23223
- var ju_Observer = $rt_classWithoutFields(0);
23224
- function asr_JsMemoryObserver() {
23225
- let a = this;
23226
- jl_Object.call(a);
23227
- a.$handle = 0;
23228
- a.$startAddress = 0;
23229
- a.$endAddress = 0;
23230
- a.$onRead = null;
23231
- a.$onWrite = null;
23232
- a.$reportsLength = 0;
23233
- }
23234
- var asr_JsMemoryObserver__init_0 = ($this, $handle, $startAddress, $endAddress, $onRead, $onWrite, $reportsLength) => {
23235
- $this.$handle = $handle;
23236
- $this.$startAddress = $startAddress;
23237
- $this.$endAddress = $endAddress;
23238
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onRead) ? 1 : 0)
23239
- $onRead = null;
23240
- $this.$onRead = $onRead;
23241
- if (asr_JsMemoryObserver_isNullish$js_body$_1($onWrite) ? 1 : 0)
23242
- $onWrite = null;
23243
- $this.$onWrite = $onWrite;
23244
- $this.$reportsLength = $reportsLength;
23245
- };
23246
- var asr_JsMemoryObserver__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
23247
- let var_6 = new asr_JsMemoryObserver();
23248
- asr_JsMemoryObserver__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
23249
- return var_6;
23250
- };
23251
- var asr_JsMemoryObserver_isNullish$js_body$_1 = (var$1) => {
23252
- return var$1 === null || var$1 === void 0;
23253
- };
23254
- var asr_JsMemoryObserver_describe$js_body$_5 = (var$1) => {
23255
- return var$1 instanceof Error ? var$1.message || String(var$1) : String(var$1);
23256
- };
23257
- function asr_JsCompilationResult() {
23258
- let a = this;
23259
- jl_Object.call(a);
23260
- a.$report = null;
23261
- a.$errors3 = null;
23262
- }
23263
- var asr_JsCompilationResult__init_0 = ($this, var$1) => {
23264
- let var$2, var$3, var$4;
23265
- $this.$report = asr_ErrorList_generateErrorAndWarningReport(var$1);
23266
- var$1 = ju_Collection_stream(var$1.$messages);
23267
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
23268
- var$2.$_030 = $this;
23269
- var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
23270
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
23271
- var$1 = var$1;
23272
- var$3 = ju_ArrayList__init_();
23273
- var$4 = var$1;
23274
- while (true) {
23275
- var$1 = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
23276
- var$1.$_040 = var$2;
23277
- var$1.$_118 = var$3;
23278
- if (!jusi_WrappingStreamImpl_next(var$4, var$1))
23279
- break;
23280
- }
23281
- $this.$errors3 = var$3;
23282
- };
23283
- var asr_JsCompilationResult__init_ = (var_0) => {
23284
- let var_1 = new asr_JsCompilationResult();
23285
- asr_JsCompilationResult__init_0(var_1, var_0);
23286
- return var_1;
23287
- };
23288
- var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
23289
- let var$2;
23290
- var$1 = ju_Collection_stream(var$1.$errors3);
23291
- var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
23292
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
23293
- };
23294
- var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
23295
- let var$2;
23296
- var$1 = var$1.$errors3;
23297
- var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
23298
- return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
23299
- };
23300
- var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
23301
- let var$2;
23302
- var$1 = ju_Collection_stream(var$1.$errors3);
23303
- var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
23304
- return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
23305
- };
23306
- var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
23307
- return $rt_ustr(var$1.$report);
23308
- };
23309
- var juf_ToIntFunction = $rt_classWithoutFields(0);
23310
- var asr_JsRiscV$getRegistersValues$lambda$_43_0 = $rt_classWithoutFields();
23311
- function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0() {
23312
- let a = this;
23313
- jl_Object.call(a);
23314
- a.$_033 = null;
23315
- a.$_120 = 0;
23316
- a.$_24 = null;
23346
+ function asr_JsRiscV$simulate$lambda$_27_0() {
23347
+ jl_Object.call(this);
23348
+ this.$_027 = null;
23317
23349
  }
23318
- var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
23319
- let var$1, var$2, var$3, var$4, $ptr, $tmp;
23350
+ var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
23351
+ let var$1, var$2, $ptr, $tmp;
23320
23352
  $ptr = 0;
23321
23353
  if ($rt_resuming()) {
23322
23354
  let $thread = $rt_nativeThread();
23323
23355
  $ptr = $thread.pop();
23324
- var$4 = $thread.pop();
23325
- var$3 = $thread.pop();
23326
23356
  var$2 = $thread.pop();
23327
23357
  var$1 = $thread.pop();
23328
23358
  var$0 = $thread.pop();
@@ -23330,17 +23360,11 @@ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
23330
23360
  main: while (true) {
23331
23361
  switch ($ptr) {
23332
23362
  case 0:
23333
- var$1 = var$0.$_033;
23334
- var$2 = var$0.$_120;
23335
- var$3 = var$0.$_24;
23336
- var$1 = var$1.$main;
23337
- var$4 = new asr_RARS$simulate$lambda$_18_0();
23338
- var$4.$_025 = var$1;
23339
- var$4.$_113 = var$2;
23340
- var$4.$_23 = var$3;
23363
+ var$1 = var$0.$_027.$main;
23364
+ var$2 = -1;
23341
23365
  $ptr = 1;
23342
23366
  case 1:
23343
- $tmp = asr_RARS_run(var$1, var$4);
23367
+ $tmp = asr_RARS_simulate(var$1, var$2);
23344
23368
  if ($rt_suspending()) {
23345
23369
  break main;
23346
23370
  }
@@ -23350,18 +23374,21 @@ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
23350
23374
  $rt_invalidPointer();
23351
23375
  }
23352
23376
  }
23353
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
23377
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
23354
23378
  };
23355
- function asr_JsRiscV$step$lambda$_24_0() {
23356
- jl_Object.call(this);
23357
- this.$_010 = null;
23379
+ function asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0() {
23380
+ let a = this;
23381
+ jl_Object.call(a);
23382
+ a.$_02 = null;
23383
+ a.$_1 = null;
23358
23384
  }
23359
- var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23360
- let var$1, var$2, $ptr, $tmp;
23385
+ var asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run = (var$0) => {
23386
+ let var$1, var$2, var$3, $ptr, $tmp;
23361
23387
  $ptr = 0;
23362
23388
  if ($rt_resuming()) {
23363
23389
  let $thread = $rt_nativeThread();
23364
23390
  $ptr = $thread.pop();
23391
+ var$3 = $thread.pop();
23365
23392
  var$2 = $thread.pop();
23366
23393
  var$1 = $thread.pop();
23367
23394
  var$0 = $thread.pop();
@@ -23369,12 +23396,15 @@ var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23369
23396
  main: while (true) {
23370
23397
  switch ($ptr) {
23371
23398
  case 0:
23372
- var$1 = var$0.$_010.$main;
23373
- var$2 = new asr_RARS$step$lambda$_23_0();
23374
- var$2.$_035 = var$1;
23399
+ var$1 = var$0.$_02;
23400
+ var$2 = var$0.$_1;
23401
+ var$1 = var$1.$main;
23402
+ var$3 = new asr_RARS$simulate$lambda$_17_0();
23403
+ var$3.$_038 = var$1;
23404
+ var$3.$_124 = var$2;
23375
23405
  $ptr = 1;
23376
23406
  case 1:
23377
- $tmp = asr_RARS_run(var$1, var$2);
23407
+ $tmp = asr_RARS_run(var$1, var$3);
23378
23408
  if ($rt_suspending()) {
23379
23409
  break main;
23380
23410
  }
@@ -23384,7 +23414,7 @@ var asr_JsRiscV$step$lambda$_24_0_run = (var$0) => {
23384
23414
  $rt_invalidPointer();
23385
23415
  }
23386
23416
  }
23387
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
23417
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
23388
23418
  };
23389
23419
  function jl_Long() {
23390
23420
  jl_Number.call(this);
@@ -23467,7 +23497,7 @@ var jl_Long_parseLongImpl = ($s, $beginIndex, $endIndex, $radix) => {
23467
23497
  }
23468
23498
  if (Long_gt($value, $maxValue)) {
23469
23499
  $s = new jl_NumberFormatException();
23470
- jl_Throwable__init_($s, $rt_s(937));
23500
+ jl_Throwable__init_($s, $rt_s(939));
23471
23501
  $rt_throw($s);
23472
23502
  }
23473
23503
  $value = Long_add(Long_mul(var$8, $value), Long_fromInt($digit));
@@ -23478,7 +23508,7 @@ var jl_Long_parseLongImpl = ($s, $beginIndex, $endIndex, $radix) => {
23478
23508
  $s = jl_String_valueOf(jl_String_substring($s, $beginIndex, $endIndex));
23479
23509
  var$12 = new jl_StringBuilder();
23480
23510
  jl_AbstractStringBuilder__init_(var$12);
23481
- jl_StringBuilder_append(jl_StringBuilder_append(var$12, $rt_s(938)), $s);
23511
+ jl_StringBuilder_append(jl_StringBuilder_append(var$12, $rt_s(940)), $s);
23482
23512
  jl_Throwable__init_(var$11, jl_AbstractStringBuilder_toString(var$12));
23483
23513
  $rt_throw(var$11);
23484
23514
  }
@@ -23500,7 +23530,7 @@ var jl_Long_decode = ($nm) => {
23500
23530
  jl_Long_$callClinit();
23501
23531
  if (jl_String_isEmpty($nm)) {
23502
23532
  $nm = new jl_NumberFormatException();
23503
- jl_Throwable__init_($nm, $rt_s(939));
23533
+ jl_Throwable__init_($nm, $rt_s(941));
23504
23534
  $rt_throw($nm);
23505
23535
  }
23506
23536
  $index = 0;
@@ -23513,7 +23543,7 @@ var jl_Long_decode = ($nm) => {
23513
23543
  }
23514
23544
  if ($index >= $nm.$nativeString.length) {
23515
23545
  $nm = new jl_NumberFormatException();
23516
- jl_Throwable__init_($nm, $rt_s(940));
23546
+ jl_Throwable__init_($nm, $rt_s(942));
23517
23547
  $rt_throw($nm);
23518
23548
  }
23519
23549
  $radix = 10;
@@ -23533,7 +23563,7 @@ var jl_Long_decode = ($nm) => {
23533
23563
  }
23534
23564
  if ($index >= $nm.$nativeString.length) {
23535
23565
  $nm = new jl_NumberFormatException();
23536
- jl_Throwable__init_($nm, $rt_s(940));
23566
+ jl_Throwable__init_($nm, $rt_s(942));
23537
23567
  $rt_throw($nm);
23538
23568
  }
23539
23569
  $value = Long_ZERO;
@@ -23549,7 +23579,7 @@ var jl_Long_decode = ($nm) => {
23549
23579
  break a;
23550
23580
  if (Long_gt($value, $maxValue)) {
23551
23581
  $nm = new jl_NumberFormatException();
23552
- jl_Throwable__init_($nm, $rt_s(937));
23582
+ jl_Throwable__init_($nm, $rt_s(939));
23553
23583
  $rt_throw($nm);
23554
23584
  }
23555
23585
  $value = Long_add(Long_mul($value, var$6), Long_fromInt($digit));
@@ -23557,7 +23587,7 @@ var jl_Long_decode = ($nm) => {
23557
23587
  if ($negaive && Long_eq($value, Long_create(0, 2147483648)) && var$8 == $nm.$nativeString.length)
23558
23588
  return jl_Long_valueOf(Long_create(0, 2147483648));
23559
23589
  $nm = new jl_NumberFormatException();
23560
- jl_Throwable__init_($nm, $rt_s(941));
23590
+ jl_Throwable__init_($nm, $rt_s(943));
23561
23591
  $rt_throw($nm);
23562
23592
  }
23563
23593
  $index = var$8;
@@ -23567,7 +23597,7 @@ var jl_Long_decode = ($nm) => {
23567
23597
  return jl_Long_valueOf($value);
23568
23598
  }
23569
23599
  $nm = new jl_NumberFormatException();
23570
- jl_Throwable__init_($nm, $rt_s(940));
23600
+ jl_Throwable__init_($nm, $rt_s(942));
23571
23601
  $rt_throw($nm);
23572
23602
  };
23573
23603
  var jl_Long_decodeDigit = ($c) => {
@@ -23669,6 +23699,123 @@ var jl_Long_compareTo = ($this, var$1) => {
23669
23699
  var jl_Long__clinit_ = () => {
23670
23700
  jl_Long_TYPE = $rt_cls($rt_longcls);
23671
23701
  };
23702
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
23703
+ var asr_JsRiscV$getRegistersValues$lambda$_43_0 = $rt_classWithoutFields();
23704
+ function asr_JsProgramStatement() {
23705
+ let a = this;
23706
+ jl_Object.call(a);
23707
+ a.$sourceLine5 = 0;
23708
+ a.$sourcePath2 = null;
23709
+ a.$address4 = 0;
23710
+ a.$binaryStatement0 = 0;
23711
+ a.$source2 = null;
23712
+ a.$assemblyStatement = null;
23713
+ a.$machineStatement0 = null;
23714
+ }
23715
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
23716
+ let var$2, var$3, var$4, var$5, var$6;
23717
+ $this.$sourceLine5 = $programStatement.$sourceLine1;
23718
+ $this.$sourcePath2 = $programStatement.$sourcePath0;
23719
+ $this.$address4 = $programStatement.$textAddress0;
23720
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
23721
+ $this.$source2 = $programStatement.$source;
23722
+ var$2 = $programStatement.$basicStatementList;
23723
+ if (var$2 === null) {
23724
+ var$2 = $programStatement.$basicAssemblyStatement;
23725
+ if (var$2 === null)
23726
+ var$2 = $rt_s(2);
23727
+ } else {
23728
+ var$3 = asr_Globals_getSettings();
23729
+ asr_Settings$Bool_$callClinit();
23730
+ var$4 = !asr_Settings_getBooleanSetting(var$3, asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23731
+ var$5 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
23732
+ var$3 = new jl_StringBuffer();
23733
+ jl_AbstractStringBuilder__init_(var$3);
23734
+ var$6 = ju_AbstractList_iterator(var$2.$list);
23735
+ while (ju_AbstractList$1_hasNext(var$6)) {
23736
+ a: {
23737
+ var$2 = ju_AbstractList$1_next(var$6);
23738
+ switch (var$2.$type4) {
23739
+ case 0:
23740
+ break;
23741
+ case 1:
23742
+ if (var$4 == 10) {
23743
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23744
+ break a;
23745
+ }
23746
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23747
+ break a;
23748
+ case 2:
23749
+ if (var$5 == 10) {
23750
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23751
+ break a;
23752
+ }
23753
+ jl_AbstractStringBuilder_append1(var$3, asru_Binary_intToHexString(var$2.$iValue));
23754
+ break a;
23755
+ case 3:
23756
+ jl_AbstractStringBuilder_append0(var$3, var$2.$iValue);
23757
+ break a;
23758
+ default:
23759
+ break a;
23760
+ }
23761
+ jl_AbstractStringBuilder_append1(var$3, var$2.$sValue);
23762
+ }
23763
+ }
23764
+ var$2 = jl_AbstractStringBuilder_toString(var$3);
23765
+ }
23766
+ $this.$assemblyStatement = var$2;
23767
+ $this.$machineStatement0 = $programStatement.$machineStatement;
23768
+ };
23769
+ var asr_JsProgramStatement__init_ = (var_0) => {
23770
+ let var_1 = new asr_JsProgramStatement();
23771
+ asr_JsProgramStatement__init_0(var_1, var_0);
23772
+ return var_1;
23773
+ };
23774
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
23775
+ return var$1.$sourceLine5;
23776
+ };
23777
+ var asr_JsProgramStatement_getSourcePath$exported$1 = (var$1) => {
23778
+ return $rt_ustr(var$1.$sourcePath2);
23779
+ };
23780
+ var asr_JsProgramStatement_getAssemblyStatement$exported$2 = (var$1) => {
23781
+ return $rt_ustr(var$1.$assemblyStatement);
23782
+ };
23783
+ var asr_JsProgramStatement_getSource$exported$3 = (var$1) => {
23784
+ return $rt_ustr(var$1.$source2);
23785
+ };
23786
+ var asr_JsProgramStatement_getAddress$exported$4 = (var$1) => {
23787
+ return var$1.$address4;
23788
+ };
23789
+ var asr_JsProgramStatement_getBinaryStatement$exported$5 = (var$1) => {
23790
+ return var$1.$binaryStatement0;
23791
+ };
23792
+ var asr_JsProgramStatement_getMachineStatement$exported$6 = (var$1) => {
23793
+ return $rt_ustr(var$1.$machineStatement0);
23794
+ };
23795
+ var jl_Double = $rt_classWithoutFields(jl_Number);
23796
+ var jl_Double_TYPE = null;
23797
+ var jl_Double_$callClinit = () => {
23798
+ jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
23799
+ jl_Double__clinit_();
23800
+ };
23801
+ var jl_Double_doubleToLongBits = ($value) => {
23802
+ jl_Double_$callClinit();
23803
+ if (!(isNaN($value) ? 1 : 0))
23804
+ return $rt_doubleToRawLongBits($value);
23805
+ return Long_create(0, 2146959360);
23806
+ };
23807
+ var jl_Double__clinit_ = () => {
23808
+ jl_Double_TYPE = $rt_cls($rt_doublecls);
23809
+ };
23810
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0 = $rt_classWithoutFields();
23811
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0_apply = (var$0, var$1) => {
23812
+ return asr_JsProgramStatement__init_(var$1);
23813
+ };
23814
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1 = $rt_classWithoutFields();
23815
+ var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1_apply = (var$0, var$1) => {
23816
+ asr_JsRiscV_$callClinit();
23817
+ return $rt_createArray(asr_JsProgramStatement, var$1);
23818
+ };
23672
23819
  function asr_JsStackFrame() {
23673
23820
  let a = this;
23674
23821
  jl_Object.call(a);
@@ -23693,192 +23840,6 @@ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
23693
23840
  var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
23694
23841
  return var$1.$fp;
23695
23842
  };
23696
- function asrs_BackStepper() {
23697
- let a = this;
23698
- jl_Object.call(a);
23699
- a.$instructionSerial = Long_ZERO;
23700
- a.$pokeSerial = Long_ZERO;
23701
- a.$instructionPc = 0;
23702
- a.$instructionDiscarded = 0;
23703
- a.$engaged = 0;
23704
- a.$backSteps = null;
23705
- a.$pokeGroup = 0;
23706
- a.$pokeRestores = null;
23707
- }
23708
- var asrs_BackStepper_nextSerial = Long_ZERO;
23709
- var asrs_BackStepper_nextPokeGroup = 0;
23710
- var asrs_BackStepper_$callClinit = () => {
23711
- asrs_BackStepper_$callClinit = $rt_eraseClinit(asrs_BackStepper);
23712
- asrs_BackStepper__clinit_();
23713
- };
23714
- var asrs_BackStepper_allocateSerial = () => {
23715
- let var$1, var$2;
23716
- asrs_BackStepper_$callClinit();
23717
- var$1 = asrs_BackStepper_nextSerial;
23718
- if (Long_ne(var$1, Long_create(4294967295, 2147483647))) {
23719
- asrs_BackStepper_nextSerial = Long_add(var$1, Long_fromInt(1));
23720
- return var$1;
23721
- }
23722
- var$2 = new jl_IllegalStateException();
23723
- jl_Throwable__init_(var$2, $rt_s(942));
23724
- $rt_throw(var$2);
23725
- };
23726
- var asrs_BackStepper_beginInstruction = ($this, $pc, $recording) => {
23727
- let var$3;
23728
- if (Long_eq($this.$instructionSerial, Long_ZERO) && !(!$this.$pokeGroup ? 0 : 1)) {
23729
- $this.$instructionSerial = asrs_BackStepper_allocateSerial();
23730
- $this.$instructionPc = $pc;
23731
- $pc = $recording && $this.$engaged && $this.$backSteps.$capacity ? 0 : 1;
23732
- $this.$instructionDiscarded = $pc;
23733
- if ($pc)
23734
- asrs_BackStepper_clearHistory($this);
23735
- return;
23736
- }
23737
- var$3 = new jl_IllegalStateException();
23738
- jl_Throwable__init_(var$3, $rt_s(943));
23739
- $rt_throw(var$3);
23740
- };
23741
- var asrs_BackStepper_endInstruction = ($this) => {
23742
- let var$1, $$je;
23743
- a: {
23744
- try {
23745
- if (!$this.$instructionDiscarded)
23746
- asrs_BackStepper_addDoNothing($this, $this.$instructionPc);
23747
- } catch ($$e) {
23748
- $$je = $rt_wrapException($$e);
23749
- var$1 = $$je;
23750
- break a;
23751
- }
23752
- $this.$instructionSerial = Long_ZERO;
23753
- return;
23754
- }
23755
- $this.$instructionSerial = Long_ZERO;
23756
- $rt_throw(var$1);
23757
- };
23758
- var asrs_BackStepper_getCurrentInstructionSerial = ($this) => {
23759
- return $this.$instructionSerial;
23760
- };
23761
- var asrs_BackStepper_clearHistory = ($this) => {
23762
- let var$1;
23763
- var$1 = $this.$backSteps;
23764
- var$1.$size2 = 0;
23765
- var$1.$top = -1;
23766
- };
23767
- var asrs_BackStepper_applyRestore = ($action, $param1, $param2) => {
23768
- let var$4, var$5, var$6, var$7;
23769
- asrs_BackStepper_$callClinit();
23770
- a: {
23771
- switch ($action.$ordinal0) {
23772
- case 0:
23773
- asr_Globals_$callClinit();
23774
- $action = asr_Globals_memory;
23775
- var$4 = Long_lo($param2);
23776
- var$5 = asrrh_Memory_storeRawWord($action, $param1, var$4);
23777
- asrrh_Memory_notifyAnyObservers($action, 1, $param1, 4, var$4);
23778
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
23779
- var$6 = asr_Globals_program.$backStepper;
23780
- var$7 = var$6.$backSteps;
23781
- asrs_BackStepper$Action_$callClinit();
23782
- 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);
23783
- }
23784
- break a;
23785
- case 1:
23786
- asr_Globals_$callClinit();
23787
- asrrh_Memory_setDoubleWord(asr_Globals_memory, $param1, $param2);
23788
- break a;
23789
- case 2:
23790
- asr_Globals_$callClinit();
23791
- asrrh_Memory_setWord(asr_Globals_memory, $param1, Long_lo($param2));
23792
- break a;
23793
- case 3:
23794
- asr_Globals_$callClinit();
23795
- asrrh_Memory_setHalf(asr_Globals_memory, $param1, Long_lo($param2));
23796
- break a;
23797
- case 4:
23798
- asr_Globals_$callClinit();
23799
- asrrh_Memory_setByte(asr_Globals_memory, $param1, Long_lo($param2));
23800
- break a;
23801
- case 5:
23802
- asrrh_RegisterFile_updateRegister($param1, $param2);
23803
- break a;
23804
- case 6:
23805
- asrrh_RegisterFile_setProgramCounter($param1);
23806
- break a;
23807
- case 7:
23808
- asrrh_ControlAndStatusRegisterFile_updateRegister0($param1, $param2);
23809
- break a;
23810
- case 8:
23811
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($param1, $param2);
23812
- break a;
23813
- case 9:
23814
- asrrh_FloatingPointRegisterFile_updateRegisterLong($param1, $param2);
23815
- break a;
23816
- case 10:
23817
- break;
23818
- case 11:
23819
- asrrh_ControlAndStatusRegisterFile_$callClinit();
23820
- $param1 = asrrh_ControlAndStatusRegisterFile_pendingCounterTicks;
23821
- if ($param1 > 0)
23822
- asrrh_ControlAndStatusRegisterFile_pendingCounterTicks = $param1 - 1 | 0;
23823
- else {
23824
- $action = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(658));
23825
- var$7 = asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $rt_s(659));
23826
- asrrh_Register_setValueBackdoor($action, Long_sub($action.$getValueNoNotify(), Long_fromInt(1)));
23827
- asrrh_Register_setValueBackdoor(var$7, Long_sub(var$7.$getValueNoNotify(), Long_fromInt(1)));
23828
- }
23829
- break a;
23830
- case 12:
23831
- asrrh_ControlAndStatusRegisterFile_$callClinit();
23832
- asrrh_ControlAndStatusRegisterFile_settleCounters();
23833
- $action = asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $param1);
23834
- if ($action !== null)
23835
- $action.$setValue($param2);
23836
- break a;
23837
- case 13:
23838
- case 15:
23839
- break a;
23840
- case 14:
23841
- $param1 = !$param1 ? 0 : 1;
23842
- var$4 = Long_lo($param2);
23843
- asrs_ProgramExit_exited = $param1;
23844
- asr_Globals_$callClinit();
23845
- asr_Globals_exitCode = var$4;
23846
- break a;
23847
- case 16:
23848
- asrrh_Memory_$callClinit();
23849
- asrrh_Memory_heapAddress = $param1;
23850
- break a;
23851
- default:
23852
- break a;
23853
- }
23854
- }
23855
- };
23856
- var asrs_BackStepper_sameGroup = ($one, $other) => {
23857
- asrs_BackStepper_$callClinit();
23858
- return Long_ne($one.$serial, $other.$serial) ? 0 : 1;
23859
- };
23860
- var asrs_BackStepper_pc = ($this) => {
23861
- return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
23862
- };
23863
- var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value, $newValue) => {
23864
- let var$4;
23865
- var$4 = $this.$backSteps;
23866
- asrs_BackStepper$Action_$callClinit();
23867
- asrs_BackStepper$BackstepStack_push(var$4, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value, 0, $newValue);
23868
- return $value;
23869
- };
23870
- var asrs_BackStepper_addDoNothing = ($this, $pc) => {
23871
- let var$2;
23872
- if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && Long_eq(asrs_BackStepper$BackstepStack_peek($this.$backSteps).$serial, $this.$instructionSerial))) {
23873
- var$2 = $this.$backSteps;
23874
- asrs_BackStepper$Action_$callClinit();
23875
- asrs_BackStepper$BackstepStack_push1(var$2, asrs_BackStepper$Action_DO_NOTHING, $pc);
23876
- }
23877
- };
23878
- var asrs_BackStepper__clinit_ = () => {
23879
- asrs_BackStepper_nextSerial = Long_fromInt(1);
23880
- asrs_BackStepper_nextPokeGroup = -2;
23881
- };
23882
23843
  var otjc_JSArrayReader = $rt_classWithoutFields(0);
23883
23844
  var otjc_JSArray = $rt_classWithoutFields();
23884
23845
  var asr_JsBackStep = $rt_classWithoutFields();
@@ -24055,16 +24016,73 @@ var asr_JsRiscVToken_getSourceColumn$exported$1 = (var$1) => {
24055
24016
  var asr_JsRiscVToken_getValue$exported$2 = (var$1) => {
24056
24017
  return $rt_ustr(var$1.$value7);
24057
24018
  };
24058
- function asr_JsRiscV$simulate$lambda$_27_0() {
24059
- jl_Object.call(this);
24060
- this.$_027 = null;
24019
+ function asr_JsCompilationResult() {
24020
+ let a = this;
24021
+ jl_Object.call(a);
24022
+ a.$report = null;
24023
+ a.$errors3 = null;
24061
24024
  }
24062
- var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
24063
- let var$1, var$2, $ptr, $tmp;
24025
+ var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
24026
+ let var$2, var$3, var$4;
24027
+ $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
24028
+ $errorReport = ju_Collection_stream($errorReport.$messages);
24029
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
24030
+ var$2.$_030 = $this;
24031
+ $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
24032
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
24033
+ $errorReport = $errorReport;
24034
+ var$3 = ju_ArrayList__init_();
24035
+ var$4 = $errorReport;
24036
+ while (true) {
24037
+ $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
24038
+ $errorReport.$_040 = var$2;
24039
+ $errorReport.$_118 = var$3;
24040
+ if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
24041
+ break;
24042
+ }
24043
+ $this.$errors3 = var$3;
24044
+ };
24045
+ var asr_JsCompilationResult__init_ = (var_0) => {
24046
+ let var_1 = new asr_JsCompilationResult();
24047
+ asr_JsCompilationResult__init_0(var_1, var_0);
24048
+ return var_1;
24049
+ };
24050
+ var asr_JsCompilationResult_hasWarnings$exported$0 = (var$1) => {
24051
+ let var$2;
24052
+ var$1 = ju_Collection_stream(var$1.$errors3);
24053
+ var$2 = new asr_JsCompilationResult$hasWarnings$lambda$_3_0();
24054
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
24055
+ };
24056
+ var asr_JsCompilationResult_getErrors$exported$1 = (var$1) => {
24057
+ let var$2;
24058
+ var$1 = var$1.$errors3;
24059
+ var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
24060
+ return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
24061
+ };
24062
+ var asr_JsCompilationResult_hasErrors$exported$2 = (var$1) => {
24063
+ let var$2;
24064
+ var$1 = ju_Collection_stream(var$1.$errors3);
24065
+ var$2 = new asr_JsCompilationResult$hasErrors$lambda$_2_0();
24066
+ return !!jusi_SimpleStreamImpl_anyMatch(var$1, var$2);
24067
+ };
24068
+ var asr_JsCompilationResult_getReport$exported$3 = (var$1) => {
24069
+ return $rt_ustr(var$1.$report);
24070
+ };
24071
+ function asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0() {
24072
+ let a = this;
24073
+ jl_Object.call(a);
24074
+ a.$_033 = null;
24075
+ a.$_120 = 0;
24076
+ a.$_24 = null;
24077
+ }
24078
+ var asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run = (var$0) => {
24079
+ let var$1, var$2, var$3, var$4, $ptr, $tmp;
24064
24080
  $ptr = 0;
24065
24081
  if ($rt_resuming()) {
24066
24082
  let $thread = $rt_nativeThread();
24067
24083
  $ptr = $thread.pop();
24084
+ var$4 = $thread.pop();
24085
+ var$3 = $thread.pop();
24068
24086
  var$2 = $thread.pop();
24069
24087
  var$1 = $thread.pop();
24070
24088
  var$0 = $thread.pop();
@@ -24072,11 +24090,17 @@ var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
24072
24090
  main: while (true) {
24073
24091
  switch ($ptr) {
24074
24092
  case 0:
24075
- var$1 = var$0.$_027.$main;
24076
- var$2 = -1;
24093
+ var$1 = var$0.$_033;
24094
+ var$2 = var$0.$_120;
24095
+ var$3 = var$0.$_24;
24096
+ var$1 = var$1.$main;
24097
+ var$4 = new asr_RARS$simulate$lambda$_18_0();
24098
+ var$4.$_025 = var$1;
24099
+ var$4.$_113 = var$2;
24100
+ var$4.$_23 = var$3;
24077
24101
  $ptr = 1;
24078
24102
  case 1:
24079
- $tmp = asr_RARS_simulate(var$1, var$2);
24103
+ $tmp = asr_RARS_run(var$1, var$4);
24080
24104
  if ($rt_suspending()) {
24081
24105
  break main;
24082
24106
  }
@@ -24086,31 +24110,7 @@ var asr_JsRiscV$simulate$lambda$_27_0_run = (var$0) => {
24086
24110
  $rt_invalidPointer();
24087
24111
  }
24088
24112
  }
24089
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
24090
- };
24091
- var jl_Double = $rt_classWithoutFields(jl_Number);
24092
- var jl_Double_TYPE = null;
24093
- var jl_Double_$callClinit = () => {
24094
- jl_Double_$callClinit = $rt_eraseClinit(jl_Double);
24095
- jl_Double__clinit_();
24096
- };
24097
- var jl_Double_doubleToLongBits = ($value) => {
24098
- jl_Double_$callClinit();
24099
- if (!(isNaN($value) ? 1 : 0))
24100
- return $rt_doubleToRawLongBits($value);
24101
- return Long_create(0, 2146959360);
24102
- };
24103
- var jl_Double__clinit_ = () => {
24104
- jl_Double_TYPE = $rt_cls($rt_doublecls);
24105
- };
24106
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0 = $rt_classWithoutFields();
24107
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_0_apply = (var$0, var$1) => {
24108
- return asr_JsProgramStatement__init_(var$1);
24109
- };
24110
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1 = $rt_classWithoutFields();
24111
- var asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1_apply = (var$0, var$1) => {
24112
- asr_JsRiscV_$callClinit();
24113
- return $rt_createArray(asr_JsProgramStatement, var$1);
24113
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
24114
24114
  };
24115
24115
  function asr_JsRiscV$simulateWithLimit$lambda$_28_0() {
24116
24116
  let a = this;
@@ -25098,6 +25098,206 @@ function jur_CharClass$16() {
25098
25098
  var jur_CharClass$16_contains = ($this, $ch) => {
25099
25099
  return $this.$val$curAlt6 ^ $this.$val$nb.$contains1($ch) && jur_CharClass_contains($this.$val$clazz7, $ch) ? 0 : 1;
25100
25100
  };
25101
+ function asr_JsRiscV$PokeRegisterWrite() {
25102
+ let a = this;
25103
+ jl_Object.call(a);
25104
+ a.$register = null;
25105
+ a.$oldValue = Long_ZERO;
25106
+ }
25107
+ var asr_JsPokeWrite = $rt_classWithoutFields();
25108
+ var asr_JsPokeWrite_toNumberArray = ($values) => {
25109
+ let var$2, $array, $i, var$5;
25110
+ $values = $values.data;
25111
+ var$2 = $values.length;
25112
+ $array = new Array(var$2);
25113
+ $i = 0;
25114
+ while ($i < var$2) {
25115
+ var$5 = $values[$i];
25116
+ $array[$i] = var$5;
25117
+ $i = $i + 1 | 0;
25118
+ }
25119
+ return $array;
25120
+ };
25121
+ var asr_JsPokeWrite_createRegister$js_body$_4 = (var$1, var$2, var$3) => {
25122
+ return { type: "register", name: var$1, old: var$2, new: var$3 };
25123
+ };
25124
+ var asr_JsPokeWrite_createMemory$js_body$_5 = (var$1, var$2, var$3) => {
25125
+ return { type: "memory", address: var$1, old: var$2, new: var$3 };
25126
+ };
25127
+ function asrs_BackStepper$BackstepStack() {
25128
+ let a = this;
25129
+ jl_Object.call(a);
25130
+ a.$capacity = 0;
25131
+ a.$size2 = 0;
25132
+ a.$top = 0;
25133
+ a.$stack = null;
25134
+ a.$this$00 = null;
25135
+ }
25136
+ var asrs_BackStepper$BackstepStack_slot = ($this) => {
25137
+ let var$1, var$2, var$3;
25138
+ var$1 = $this.$stack.data;
25139
+ var$2 = $this.$top;
25140
+ var$3 = var$1[var$2];
25141
+ if (var$3 === null) {
25142
+ var$3 = new asrs_BackStepper$BackStep();
25143
+ var$3.$this$01 = $this.$this$00;
25144
+ var$1[var$2] = var$3;
25145
+ }
25146
+ return var$3;
25147
+ };
25148
+ var asrs_BackStepper$BackstepStack_getStack = ($this) => {
25149
+ let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
25150
+ var$1 = $this.$size2;
25151
+ $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
25152
+ var$3 = $usedStack.data;
25153
+ $i = 0;
25154
+ while ($i < var$1) {
25155
+ var$5 = $this.$stack.data;
25156
+ var$6 = $this.$top - $i | 0;
25157
+ var$7 = var$5.length;
25158
+ var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
25159
+ $i = $i + 1 | 0;
25160
+ }
25161
+ return $usedStack;
25162
+ };
25163
+ var asrs_BackStepper$BackstepStack_empty = ($this) => {
25164
+ return $this.$size2 ? 0 : 1;
25165
+ };
25166
+ var asrs_BackStepper$BackstepStack_fromTop = ($this, $index) => {
25167
+ let $slot, var$3, var$4, var$5;
25168
+ if ($index >= 0 && $index < $this.$size2) {
25169
+ $slot = $this.$top - $index | 0;
25170
+ var$3 = $this.$stack;
25171
+ if ($slot < 0)
25172
+ $slot = $slot + var$3.data.length | 0;
25173
+ return var$3.data[$slot];
25174
+ }
25175
+ var$4 = new jl_IndexOutOfBoundsException();
25176
+ var$5 = new jl_StringBuilder();
25177
+ jl_AbstractStringBuilder__init_(var$5);
25178
+ jl_AbstractStringBuilder_append0(jl_StringBuilder_append(var$5, $rt_s(1059)), $index);
25179
+ jl_Throwable__init_(var$4, jl_AbstractStringBuilder_toString(var$5));
25180
+ $rt_throw(var$4);
25181
+ };
25182
+ var asrs_BackStepper$BackstepStack_advance = ($this) => {
25183
+ let $next, var$2, var$3, var$4, var$5, var$6, $oldest, var$8;
25184
+ a: {
25185
+ $next = $this.$capacity;
25186
+ if ($next) {
25187
+ var$2 = $this.$this$00;
25188
+ if (!var$2.$instructionDiscarded)
25189
+ break a;
25190
+ if (Long_eq(var$2.$instructionSerial, Long_ZERO))
25191
+ break a;
25192
+ }
25193
+ return 0;
25194
+ }
25195
+ var$3 = $this.$size2;
25196
+ var$4 = $this.$stack.data.length;
25197
+ if (var$3 == var$4 && var$4 < $next) {
25198
+ 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);
25199
+ var$6 = var$5.data;
25200
+ var$3 = 0;
25201
+ while (true) {
25202
+ var$4 = $this.$size2;
25203
+ if (var$3 >= var$4)
25204
+ break;
25205
+ var$6[var$3] = asrs_BackStepper$BackstepStack_fromTop($this, (var$4 - 1 | 0) - var$3 | 0);
25206
+ var$3 = var$3 + 1 | 0;
25207
+ }
25208
+ $this.$stack = var$5;
25209
+ $this.$top = var$4 - 1 | 0;
25210
+ }
25211
+ $next = $this.$size2;
25212
+ if ($next == $this.$capacity) {
25213
+ $oldest = asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial;
25214
+ while (true) {
25215
+ $next = $this.$size2 - 1 | 0;
25216
+ $this.$size2 = $next;
25217
+ if ($next <= 0)
25218
+ break;
25219
+ if (Long_eq(asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial, $oldest))
25220
+ continue;
25221
+ else
25222
+ break;
25223
+ }
25224
+ var$2 = $this.$this$00;
25225
+ var$8 = var$2.$instructionSerial;
25226
+ if (Long_eq($oldest, var$8) && Long_ne(var$8, Long_ZERO)) {
25227
+ var$2.$instructionDiscarded = 1;
25228
+ return 0;
25229
+ }
25230
+ }
25231
+ $next = $this.$top + 1 | 0;
25232
+ if ($next == $this.$stack.data.length)
25233
+ $next = 0;
25234
+ $this.$top = $next;
25235
+ $this.$size2 = $this.$size2 + 1 | 0;
25236
+ return 1;
25237
+ };
25238
+ var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
25239
+ let $step, var$8, var$9;
25240
+ $step = $this.$this$00;
25241
+ if ($step.$pokeGroup) {
25242
+ $step = $step.$pokeRestores;
25243
+ var$8 = new asrs_BackStepper$PokeRestore();
25244
+ var$8.$action0 = $act;
25245
+ var$8.$param10 = $parm1;
25246
+ var$8.$param20 = $parm2;
25247
+ ju_ArrayList_add($step, var$8);
25248
+ return;
25249
+ }
25250
+ if (!asrs_BackStepper$BackstepStack_advance($this))
25251
+ return;
25252
+ $step = asrs_BackStepper$BackstepStack_slot($this);
25253
+ $step.$action = $act;
25254
+ var$9 = $step.$this$01.$instructionSerial;
25255
+ if (Long_eq(var$9, Long_ZERO))
25256
+ var$9 = asrs_BackStepper_allocateSerial();
25257
+ $step.$serial = var$9;
25258
+ $act = $step.$this$01;
25259
+ if (Long_ne($act.$instructionSerial, Long_ZERO))
25260
+ $programCounter = $act.$instructionPc;
25261
+ $step.$pc1 = $programCounter;
25262
+ $step.$pokeGroup0 = 0;
25263
+ $step.$pokeRestores0 = null;
25264
+ $step.$param1 = $parm1;
25265
+ $step.$param2 = $parm2;
25266
+ $step.$param3Int = $wroteInt;
25267
+ $step.$param3Long = $wroteLong;
25268
+ };
25269
+ var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1, $parm2) => {
25270
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
25271
+ };
25272
+ var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
25273
+ asrs_BackStepper$BackstepStack_push0($this, $act, $programCounter, 0, Long_ZERO);
25274
+ };
25275
+ var asrs_BackStepper$BackstepStack_peek = ($this) => {
25276
+ return $this.$stack.data[$this.$top];
25277
+ };
25278
+ function asrs_BackStepper$BackStep() {
25279
+ let a = this;
25280
+ jl_Object.call(a);
25281
+ a.$serial = Long_ZERO;
25282
+ a.$action = null;
25283
+ a.$pc1 = 0;
25284
+ a.$param1 = 0;
25285
+ a.$param2 = Long_ZERO;
25286
+ a.$param3Int = 0;
25287
+ a.$param3Long = Long_ZERO;
25288
+ a.$pokeGroup0 = 0;
25289
+ a.$pokeRestores0 = null;
25290
+ a.$this$01 = null;
25291
+ }
25292
+ var asrs_BackStepper$BackStep_isPoke = ($this) => {
25293
+ return !$this.$pokeGroup0 ? 0 : 1;
25294
+ };
25295
+ var asrs_BackStepper$BackStep_getParam2 = ($this) => {
25296
+ let var$1;
25297
+ var$1 = $this.$action;
25298
+ asrs_BackStepper$Action_$callClinit();
25299
+ return var$1 !== asrs_BackStepper$Action_RANDOM_STREAM_RESTORE ? $this.$param2 : Long_ZERO;
25300
+ };
25101
25301
  var otjc_JSPromise$Executor = $rt_classWithoutFields(0);
25102
25302
  function asr_JsRiscV$run$lambda$_22_0() {
25103
25303
  let a = this;
@@ -25168,59 +25368,6 @@ var otjc_JSPromise_await$static = ($this) => {
25168
25368
  }
25169
25369
  $rt_nativeThread().push($this, $ptr);
25170
25370
  };
25171
- function asr_JsRiscV$PokeRegisterWrite() {
25172
- let a = this;
25173
- jl_Object.call(a);
25174
- a.$register = null;
25175
- a.$oldValue = Long_ZERO;
25176
- }
25177
- var asr_JsPokeWrite = $rt_classWithoutFields();
25178
- var asr_JsPokeWrite_toNumberArray = ($values) => {
25179
- let var$2, $array, $i, var$5;
25180
- $values = $values.data;
25181
- var$2 = $values.length;
25182
- $array = new Array(var$2);
25183
- $i = 0;
25184
- while ($i < var$2) {
25185
- var$5 = $values[$i];
25186
- $array[$i] = var$5;
25187
- $i = $i + 1 | 0;
25188
- }
25189
- return $array;
25190
- };
25191
- var asr_JsPokeWrite_createRegister$js_body$_4 = (var$1, var$2, var$3) => {
25192
- return { type: "register", name: var$1, old: var$2, new: var$3 };
25193
- };
25194
- var asr_JsPokeWrite_createMemory$js_body$_5 = (var$1, var$2, var$3) => {
25195
- return { type: "memory", address: var$1, old: var$2, new: var$3 };
25196
- };
25197
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
25198
- jl_Object.call(this);
25199
- this.$_030 = null;
25200
- }
25201
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
25202
- let var$2, var$3, var$4;
25203
- var$1 = var$1;
25204
- var$2 = var$0.$_030;
25205
- var$3 = new asr_JsCompilationResult$JsCompilationError();
25206
- var$3.$this$018 = var$2;
25207
- var$3.$isWarning0 = var$1.$isWarning;
25208
- var$3.$message2 = var$1.$message0;
25209
- var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
25210
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
25211
- var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
25212
- var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
25213
- var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
25214
- var$3.$sourcePath3 = var$1.$sourcePath;
25215
- var$3.$sourceLine6 = var$1.$sourceLine0;
25216
- var$3.$sourceColumn0 = var$1.$sourceColumn;
25217
- return var$3;
25218
- };
25219
- var juf_Supplier = $rt_classWithoutFields(0);
25220
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
25221
- var juf_BiConsumer = $rt_classWithoutFields(0);
25222
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
25223
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
25224
25371
  var jl_AutoCloseable = $rt_classWithoutFields(0);
25225
25372
  var jus_BaseStream = $rt_classWithoutFields(0);
25226
25373
  var jus_Stream = $rt_classWithoutFields(0);
@@ -25329,180 +25476,6 @@ var asrrh_AddressErrorException_getAddress = ($this) => {
25329
25476
  var asrrh_AddressErrorException_getType = ($this) => {
25330
25477
  return $this.$type2;
25331
25478
  };
25332
- function asrs_BackStepper$BackstepStack() {
25333
- let a = this;
25334
- jl_Object.call(a);
25335
- a.$capacity = 0;
25336
- a.$size2 = 0;
25337
- a.$top = 0;
25338
- a.$stack = null;
25339
- a.$this$00 = null;
25340
- }
25341
- var asrs_BackStepper$BackstepStack_slot = ($this) => {
25342
- let var$1, var$2, $step;
25343
- var$1 = $this.$stack.data;
25344
- var$2 = $this.$top;
25345
- $step = var$1[var$2];
25346
- if ($step === null) {
25347
- $step = new asrs_BackStepper$BackStep();
25348
- $step.$this$01 = $this.$this$00;
25349
- var$1[var$2] = $step;
25350
- }
25351
- return $step;
25352
- };
25353
- var asrs_BackStepper$BackstepStack_getStack = ($this) => {
25354
- let var$1, $usedStack, var$3, $i, var$5, var$6, var$7;
25355
- var$1 = $this.$size2;
25356
- $usedStack = $rt_createArray(asrs_BackStepper$BackStep, var$1);
25357
- var$3 = $usedStack.data;
25358
- $i = 0;
25359
- while ($i < var$1) {
25360
- var$5 = $this.$stack.data;
25361
- var$6 = $this.$top - $i | 0;
25362
- var$7 = var$5.length;
25363
- var$3[$i] = var$5[(var$6 + var$7 | 0) % var$7 | 0];
25364
- $i = $i + 1 | 0;
25365
- }
25366
- return $usedStack;
25367
- };
25368
- var asrs_BackStepper$BackstepStack_empty = ($this) => {
25369
- return $this.$size2 ? 0 : 1;
25370
- };
25371
- var asrs_BackStepper$BackstepStack_fromTop = ($this, $index) => {
25372
- let $slot, var$3, var$4, var$5;
25373
- if ($index >= 0 && $index < $this.$size2) {
25374
- $slot = $this.$top - $index | 0;
25375
- var$3 = $this.$stack;
25376
- if ($slot < 0)
25377
- $slot = $slot + var$3.data.length | 0;
25378
- return var$3.data[$slot];
25379
- }
25380
- var$4 = new jl_IndexOutOfBoundsException();
25381
- var$5 = new jl_StringBuilder();
25382
- jl_AbstractStringBuilder__init_(var$5);
25383
- jl_AbstractStringBuilder_append0(jl_StringBuilder_append(var$5, $rt_s(1059)), $index);
25384
- jl_Throwable__init_(var$4, jl_AbstractStringBuilder_toString(var$5));
25385
- $rt_throw(var$4);
25386
- };
25387
- var asrs_BackStepper$BackstepStack_advance = ($this) => {
25388
- let $next, var$2, var$3, var$4, var$5, var$6, $oldest, var$8;
25389
- a: {
25390
- $next = $this.$capacity;
25391
- if ($next) {
25392
- var$2 = $this.$this$00;
25393
- if (!var$2.$instructionDiscarded)
25394
- break a;
25395
- if (Long_eq(var$2.$instructionSerial, Long_ZERO))
25396
- break a;
25397
- }
25398
- return 0;
25399
- }
25400
- var$3 = $this.$size2;
25401
- var$4 = $this.$stack.data.length;
25402
- if (var$3 == var$4 && var$4 < $next) {
25403
- 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);
25404
- var$6 = var$5.data;
25405
- var$3 = 0;
25406
- while (true) {
25407
- var$4 = $this.$size2;
25408
- if (var$3 >= var$4)
25409
- break;
25410
- var$6[var$3] = asrs_BackStepper$BackstepStack_fromTop($this, (var$4 - 1 | 0) - var$3 | 0);
25411
- var$3 = var$3 + 1 | 0;
25412
- }
25413
- $this.$stack = var$5;
25414
- $this.$top = var$4 - 1 | 0;
25415
- }
25416
- $next = $this.$size2;
25417
- if ($next == $this.$capacity) {
25418
- $oldest = asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial;
25419
- while (true) {
25420
- $next = $this.$size2 - 1 | 0;
25421
- $this.$size2 = $next;
25422
- if ($next <= 0)
25423
- break;
25424
- if (Long_eq(asrs_BackStepper$BackstepStack_fromTop($this, $next - 1 | 0).$serial, $oldest))
25425
- continue;
25426
- else
25427
- break;
25428
- }
25429
- var$2 = $this.$this$00;
25430
- var$8 = var$2.$instructionSerial;
25431
- if (Long_eq($oldest, var$8) && Long_ne(var$8, Long_ZERO)) {
25432
- var$2.$instructionDiscarded = 1;
25433
- return 0;
25434
- }
25435
- }
25436
- $next = $this.$top + 1 | 0;
25437
- if ($next == $this.$stack.data.length)
25438
- $next = 0;
25439
- $this.$top = $next;
25440
- $this.$size2 = $this.$size2 + 1 | 0;
25441
- return 1;
25442
- };
25443
- var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2, $wroteInt, $wroteLong) => {
25444
- let $step, var$8, var$9;
25445
- $step = $this.$this$00;
25446
- if ($step.$pokeGroup) {
25447
- $step = $step.$pokeRestores;
25448
- var$8 = new asrs_BackStepper$PokeRestore();
25449
- var$8.$action0 = $act;
25450
- var$8.$param10 = $parm1;
25451
- var$8.$param20 = $parm2;
25452
- ju_ArrayList_add($step, var$8);
25453
- return;
25454
- }
25455
- if (!asrs_BackStepper$BackstepStack_advance($this))
25456
- return;
25457
- $step = asrs_BackStepper$BackstepStack_slot($this);
25458
- $step.$action = $act;
25459
- var$9 = $step.$this$01.$instructionSerial;
25460
- if (Long_eq(var$9, Long_ZERO))
25461
- var$9 = asrs_BackStepper_allocateSerial();
25462
- $step.$serial = var$9;
25463
- $act = $step.$this$01;
25464
- if (Long_ne($act.$instructionSerial, Long_ZERO))
25465
- $programCounter = $act.$instructionPc;
25466
- $step.$pc1 = $programCounter;
25467
- $step.$pokeGroup0 = 0;
25468
- $step.$pokeRestores0 = null;
25469
- $step.$param1 = $parm1;
25470
- $step.$param2 = $parm2;
25471
- $step.$param3Int = $wroteInt;
25472
- $step.$param3Long = $wroteLong;
25473
- };
25474
- var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1, $parm2) => {
25475
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, $parm2, 0, Long_ZERO);
25476
- };
25477
- var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
25478
- asrs_BackStepper$BackstepStack_push0($this, $act, $programCounter, 0, Long_ZERO);
25479
- };
25480
- var asrs_BackStepper$BackstepStack_peek = ($this) => {
25481
- return $this.$stack.data[$this.$top];
25482
- };
25483
- function asrs_BackStepper$BackStep() {
25484
- let a = this;
25485
- jl_Object.call(a);
25486
- a.$serial = Long_ZERO;
25487
- a.$action = null;
25488
- a.$pc1 = 0;
25489
- a.$param1 = 0;
25490
- a.$param2 = Long_ZERO;
25491
- a.$param3Int = 0;
25492
- a.$param3Long = Long_ZERO;
25493
- a.$pokeGroup0 = 0;
25494
- a.$pokeRestores0 = null;
25495
- a.$this$01 = null;
25496
- }
25497
- var asrs_BackStepper$BackStep_isPoke = ($this) => {
25498
- return !$this.$pokeGroup0 ? 0 : 1;
25499
- };
25500
- var asrs_BackStepper$BackStep_getParam2 = ($this) => {
25501
- let var$1;
25502
- var$1 = $this.$action;
25503
- asrs_BackStepper$Action_$callClinit();
25504
- return var$1 !== asrs_BackStepper$Action_RANDOM_STREAM_RESTORE ? $this.$param2 : Long_ZERO;
25505
- };
25506
25479
  var otjc_JSObjects = $rt_classWithoutFields();
25507
25480
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
25508
25481
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -25871,6 +25844,33 @@ var asra_TokenTypes__clinit_ = () => {
25871
25844
  var$3[28] = var$1;
25872
25845
  asra_TokenTypes_$VALUES = var$2;
25873
25846
  };
25847
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
25848
+ jl_Object.call(this);
25849
+ this.$_030 = null;
25850
+ }
25851
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
25852
+ let var$2, var$3, var$4;
25853
+ var$1 = var$1;
25854
+ var$2 = var$0.$_030;
25855
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
25856
+ var$3.$this$018 = var$2;
25857
+ var$3.$isWarning0 = var$1.$isWarning;
25858
+ var$3.$message2 = var$1.$message0;
25859
+ var$2 = ju_Collection_stream(ju_ArrayList__init_0(var$1.$macroExpansionTrace));
25860
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_0();
25861
+ var$2 = jusi_SimpleStreamImpl_map(var$2, var$4);
25862
+ var$4 = new asr_JsCompilationResult$JsCompilationError$_init_$lambda$_0_1();
25863
+ var$3.$macroExpansionTrace1 = jusi_SimpleStreamImpl_toArray(var$2, var$4);
25864
+ var$3.$sourcePath3 = var$1.$sourcePath;
25865
+ var$3.$sourceLine6 = var$1.$sourceLine0;
25866
+ var$3.$sourceColumn0 = var$1.$sourceColumn;
25867
+ return var$3;
25868
+ };
25869
+ var juf_Supplier = $rt_classWithoutFields(0);
25870
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
25871
+ var juf_BiConsumer = $rt_classWithoutFields(0);
25872
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
25873
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
25874
25874
  function asra_Token() {
25875
25875
  let a = this;
25876
25876
  jl_Object.call(a);
@@ -27907,31 +27907,12 @@ var asrri_JAL__init_ = () => {
27907
27907
  return var_0;
27908
27908
  };
27909
27909
  var asrri_JAL_simulate = ($this, $statement) => {
27910
- let $operands, $address, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
27910
+ let $operands, $address;
27911
27911
  $operands = $statement.$operands.data;
27912
27912
  asrr_InstructionSet_processReturnAddress($operands[0]);
27913
27913
  $address = (asrrh_RegisterFile_getProgramCounter() - 4 | 0) + $operands[1] | 0;
27914
- if ($operands[0] == 1) {
27915
- var$4 = new asrrh_StackFrame();
27916
- var$5 = asrrh_RegisterFile_getProgramCounter();
27917
- var$6 = Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
27918
- var$7 = Long_lo(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(598)).$getValue());
27919
- var$8 = asrrh_RegisterFile_instance.$regFile.data.length;
27920
- $operands = $rt_createIntArray(var$8);
27921
- var$9 = $operands.data;
27922
- var$10 = 0;
27923
- while (var$10 < var$8) {
27924
- var$9[var$10] = Long_lo(asrrh_RegisterFile_instance.$regFile.data[var$10].$getValue());
27925
- var$10 = var$10 + 1 | 0;
27926
- }
27927
- var$4.$pc3 = var$5;
27928
- var$4.$sp0 = var$6;
27929
- var$4.$fp0 = var$7;
27930
- var$4.$toAddress0 = $address;
27931
- var$4.$registers1 = $operands;
27932
- asrrh_Stack_$callClinit();
27933
- ju_ArrayList_add(asrrh_Stack_callStack, var$4);
27934
- }
27914
+ if ($operands[0] == 1)
27915
+ asrrh_Stack_pushCallStack(asrrh_StackFrame_fromGlobalState($address));
27935
27916
  asrr_InstructionSet_processJump($address);
27936
27917
  };
27937
27918
  var asrri_JALR = $rt_classWithoutFields(asrr_BasicInstruction);
@@ -27945,18 +27926,20 @@ var asrri_JALR__init_0 = () => {
27945
27926
  return var_0;
27946
27927
  };
27947
27928
  var asrri_JALR_simulate = ($this, $statement) => {
27948
- let $operands, $target;
27929
+ let $operands, $address;
27949
27930
  $operands = $statement.$operands.data;
27950
- $target = asrrh_RegisterFile_getValue0($operands[1]);
27931
+ $address = (asrrh_RegisterFile_getValue0($operands[1]) + ($operands[2] << 20 >> 20) | 0) & -2;
27951
27932
  asrr_InstructionSet_processReturnAddress($operands[0]);
27952
- if (!$operands[0] && $operands[1] == 1) {
27933
+ if ($operands[0] == 1)
27934
+ asrrh_Stack_pushCallStack(asrrh_StackFrame_fromGlobalState($address));
27935
+ else if (!$operands[0] && $operands[1] == 1) {
27953
27936
  asrrh_Stack_$callClinit();
27954
27937
  if (!ju_AbstractCollection_isEmpty(asrrh_Stack_callStack)) {
27955
27938
  $statement = asrrh_Stack_callStack;
27956
27939
  ju_ArrayList_remove($statement, $statement.$size0 - 1 | 0);
27957
27940
  }
27958
27941
  }
27959
- asrr_InstructionSet_processJump(($target + ($operands[2] << 20 >> 20) | 0) & -2);
27942
+ asrr_InstructionSet_processJump($address);
27960
27943
  };
27961
27944
  var asrri_Load = $rt_classWithoutFields(asrr_BasicInstruction);
27962
27945
  var asrri_Load__init_ = ($this, $usage, $description, $funct) => {
@@ -30696,6 +30679,27 @@ function asrrh_StackFrame() {
30696
30679
  a.$fp0 = 0;
30697
30680
  a.$registers1 = null;
30698
30681
  }
30682
+ var asrrh_StackFrame_fromGlobalState = ($returnAddress) => {
30683
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
30684
+ var$2 = new asrrh_StackFrame();
30685
+ var$3 = asrrh_RegisterFile_getProgramCounter();
30686
+ var$4 = Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
30687
+ var$5 = Long_lo(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(598)).$getValue());
30688
+ var$6 = asrrh_RegisterFile_instance.$regFile.data.length;
30689
+ var$7 = $rt_createIntArray(var$6);
30690
+ var$8 = var$7.data;
30691
+ var$9 = 0;
30692
+ while (var$9 < var$6) {
30693
+ var$8[var$9] = Long_lo(asrrh_RegisterFile_instance.$regFile.data[var$9].$getValue());
30694
+ var$9 = var$9 + 1 | 0;
30695
+ }
30696
+ var$2.$pc3 = var$3;
30697
+ var$2.$sp0 = var$4;
30698
+ var$2.$fp0 = var$5;
30699
+ var$2.$toAddress0 = $returnAddress;
30700
+ var$2.$registers1 = var$7;
30701
+ return var$2;
30702
+ };
30699
30703
  function asrrh_MemoryConfiguration() {
30700
30704
  let a = this;
30701
30705
  jl_Object.call(a);
@@ -36422,6 +36426,51 @@ var jm_BitLevel_shiftRight0 = ($result, $resultLen, $source, $intCount, $count)
36422
36426
  }
36423
36427
  return $allZero;
36424
36428
  };
36429
+ function asr_RARS$getStatementsAtSourceLocation$lambda$_7_0() {
36430
+ let a = this;
36431
+ jl_Object.call(a);
36432
+ a.$_020 = null;
36433
+ a.$_110 = 0;
36434
+ }
36435
+ var asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test = (var$0, var$1) => {
36436
+ let var$2, var$3;
36437
+ var$1 = var$1;
36438
+ var$2 = var$0.$_020;
36439
+ var$3 = var$0.$_110;
36440
+ return jl_String_equals(var$1.$sourcePath0, var$2) && var$1.$sourceLine1 == var$3 ? 1 : 0;
36441
+ };
36442
+ var asrrh_Stack = $rt_classWithoutFields();
36443
+ var asrrh_Stack_callStack = null;
36444
+ var asrrh_Stack_$callClinit = () => {
36445
+ asrrh_Stack_$callClinit = $rt_eraseClinit(asrrh_Stack);
36446
+ asrrh_Stack__clinit_();
36447
+ };
36448
+ var asrrh_Stack_pushCallStack = ($frame) => {
36449
+ asrrh_Stack_$callClinit();
36450
+ ju_ArrayList_add(asrrh_Stack_callStack, $frame);
36451
+ };
36452
+ var asrrh_Stack_getCallStack = () => {
36453
+ asrrh_Stack_$callClinit();
36454
+ return asrrh_Stack_callStack;
36455
+ };
36456
+ var asrrh_Stack__clinit_ = () => {
36457
+ asrrh_Stack_callStack = ju_ArrayList__init_();
36458
+ };
36459
+ var asrs_ProgramExit = $rt_classWithoutFields();
36460
+ var asrs_ProgramExit_exited = 0;
36461
+ var asrs_ProgramExit_exit = ($code) => {
36462
+ let var$2, var$3, var$4, var$5;
36463
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
36464
+ var$2 = asr_Globals_program.$backStepper;
36465
+ var$3 = asrs_ProgramExit_exited;
36466
+ var$4 = asr_Globals_exitCode;
36467
+ var$5 = var$2.$backSteps;
36468
+ asrs_BackStepper$Action_$callClinit();
36469
+ 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);
36470
+ }
36471
+ asrs_ProgramExit_exited = 1;
36472
+ asr_Globals_exitCode = $code;
36473
+ };
36425
36474
  var asrrh_InterruptController = $rt_classWithoutFields();
36426
36475
  var asrrh_InterruptController_lock = null;
36427
36476
  var asrrh_InterruptController_externalPending0 = 0;
@@ -36515,21 +36564,6 @@ var asrrh_ReservationTable__clinit_ = () => {
36515
36564
  asrrh_ReservationTable_address = 0;
36516
36565
  asrrh_ReservationTable_valid = 0;
36517
36566
  };
36518
- var asrs_ProgramExit = $rt_classWithoutFields();
36519
- var asrs_ProgramExit_exited = 0;
36520
- var asrs_ProgramExit_exit = ($code) => {
36521
- let var$2, var$3, var$4, var$5;
36522
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
36523
- var$2 = asr_Globals_program.$backStepper;
36524
- var$3 = asrs_ProgramExit_exited;
36525
- var$4 = asr_Globals_exitCode;
36526
- var$5 = var$2.$backSteps;
36527
- asrs_BackStepper$Action_$callClinit();
36528
- 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);
36529
- }
36530
- asrs_ProgramExit_exited = 1;
36531
- asr_Globals_exitCode = $code;
36532
- };
36533
36567
  var asrrs_RandomStreams = $rt_classWithoutFields();
36534
36568
  var asrrs_RandomStreams_streams = null;
36535
36569
  var asrrs_RandomStreams_$callClinit = () => {
@@ -36639,19 +36673,6 @@ var asrrs_RandomStreams_restore = ($index, $high, $low) => {
36639
36673
  var asrrs_RandomStreams__clinit_ = () => {
36640
36674
  asrrs_RandomStreams_streams = ju_HashMap__init_();
36641
36675
  };
36642
- var asrrh_Stack = $rt_classWithoutFields();
36643
- var asrrh_Stack_callStack = null;
36644
- var asrrh_Stack_$callClinit = () => {
36645
- asrrh_Stack_$callClinit = $rt_eraseClinit(asrrh_Stack);
36646
- asrrh_Stack__clinit_();
36647
- };
36648
- var asrrh_Stack_getCallStack = () => {
36649
- asrrh_Stack_$callClinit();
36650
- return asrrh_Stack_callStack;
36651
- };
36652
- var asrrh_Stack__clinit_ = () => {
36653
- asrrh_Stack_callStack = ju_ArrayList__init_();
36654
- };
36655
36676
  function asrs_Simulator() {
36656
36677
  let a = this;
36657
36678
  ju_Observable.call(a);
@@ -36746,19 +36767,6 @@ var asrs_Simulator_noStatementAt = ($address) => {
36746
36767
  var asrs_Simulator__clinit_ = () => {
36747
36768
  asrs_Simulator_simulator = null;
36748
36769
  };
36749
- function asr_RARS$getStatementsAtSourceLocation$lambda$_7_0() {
36750
- let a = this;
36751
- jl_Object.call(a);
36752
- a.$_020 = null;
36753
- a.$_110 = 0;
36754
- }
36755
- var asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test = (var$0, var$1) => {
36756
- let var$2, var$3;
36757
- var$1 = var$1;
36758
- var$2 = var$0.$_020;
36759
- var$3 = var$0.$_110;
36760
- return jl_String_equals(var$1.$sourcePath0, var$2) && var$1.$sourceLine1 == var$3 ? 1 : 0;
36761
- };
36762
36770
  function ju_LinkedHashMapValues() {
36763
36771
  let a = this;
36764
36772
  ju_AbstractCollection.call(a);
@@ -47984,19 +47992,16 @@ var asr_JsSourceLocation_getSourcePath$exported$1 = (var$1) => {
47984
47992
  return $rt_ustr(var$1.$sourcePath5);
47985
47993
  };
47986
47994
  var asr_RARS$Run = $rt_classWithoutFields(0);
47987
- function asr_RARS$simulate$lambda$_17_0() {
47988
- let a = this;
47989
- jl_Object.call(a);
47990
- a.$_038 = null;
47991
- a.$_124 = null;
47995
+ function asr_RARS$step$lambda$_23_0() {
47996
+ jl_Object.call(this);
47997
+ this.$_035 = null;
47992
47998
  }
47993
- var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
47994
- let var$1, var$2, var$3, $ptr, $tmp;
47999
+ var asr_RARS$step$lambda$_23_0_run = (var$0) => {
48000
+ let var$1, var$2, $ptr, $tmp;
47995
48001
  $ptr = 0;
47996
48002
  if ($rt_resuming()) {
47997
48003
  let $thread = $rt_nativeThread();
47998
48004
  $ptr = $thread.pop();
47999
- var$3 = $thread.pop();
48000
48005
  var$2 = $thread.pop();
48001
48006
  var$1 = $thread.pop();
48002
48007
  var$0 = $thread.pop();
@@ -48004,13 +48009,11 @@ var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
48004
48009
  main: while (true) {
48005
48010
  switch ($ptr) {
48006
48011
  case 0:
48007
- var$1 = var$0.$_038;
48008
- var$2 = var$0.$_124;
48009
- var$1 = var$1.$main0;
48010
- var$3 = -1;
48012
+ var$1 = var$0.$_035.$main0;
48013
+ var$2 = 1;
48011
48014
  $ptr = 1;
48012
48015
  case 1:
48013
- $tmp = asr_RISCVprogram_simulate(var$1, var$3, var$2);
48016
+ $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
48014
48017
  if ($rt_suspending()) {
48015
48018
  break main;
48016
48019
  }
@@ -48020,22 +48023,20 @@ var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
48020
48023
  $rt_invalidPointer();
48021
48024
  }
48022
48025
  }
48023
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
48026
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
48024
48027
  };
48025
- function asr_RARS$simulate$lambda$_18_0() {
48028
+ function asr_RARS$simulate$lambda$_19_0() {
48026
48029
  let a = this;
48027
48030
  jl_Object.call(a);
48028
- a.$_025 = null;
48029
- a.$_113 = 0;
48030
- a.$_23 = null;
48031
+ a.$_09 = null;
48032
+ a.$_14 = 0;
48031
48033
  }
48032
- var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
48033
- let var$1, var$2, var$3, $ptr, $tmp;
48034
+ var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
48035
+ let var$1, var$2, $ptr, $tmp;
48034
48036
  $ptr = 0;
48035
48037
  if ($rt_resuming()) {
48036
48038
  let $thread = $rt_nativeThread();
48037
48039
  $ptr = $thread.pop();
48038
- var$3 = $thread.pop();
48039
48040
  var$2 = $thread.pop();
48040
48041
  var$1 = $thread.pop();
48041
48042
  var$0 = $thread.pop();
@@ -48043,13 +48044,12 @@ var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
48043
48044
  main: while (true) {
48044
48045
  switch ($ptr) {
48045
48046
  case 0:
48046
- var$1 = var$0.$_025;
48047
- var$2 = var$0.$_113;
48048
- var$3 = var$0.$_23;
48047
+ var$1 = var$0.$_09;
48048
+ var$2 = var$0.$_14;
48049
48049
  var$1 = var$1.$main0;
48050
48050
  $ptr = 1;
48051
48051
  case 1:
48052
- $tmp = asr_RISCVprogram_simulate(var$1, var$2, var$3);
48052
+ $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
48053
48053
  if ($rt_suspending()) {
48054
48054
  break main;
48055
48055
  }
@@ -48059,18 +48059,21 @@ var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
48059
48059
  $rt_invalidPointer();
48060
48060
  }
48061
48061
  }
48062
- $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
48062
+ $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
48063
48063
  };
48064
- function asr_RARS$step$lambda$_23_0() {
48065
- jl_Object.call(this);
48066
- this.$_035 = null;
48064
+ function asr_RARS$simulate$lambda$_17_0() {
48065
+ let a = this;
48066
+ jl_Object.call(a);
48067
+ a.$_038 = null;
48068
+ a.$_124 = null;
48067
48069
  }
48068
- var asr_RARS$step$lambda$_23_0_run = (var$0) => {
48069
- let var$1, var$2, $ptr, $tmp;
48070
+ var asr_RARS$simulate$lambda$_17_0_run = (var$0) => {
48071
+ let var$1, var$2, var$3, $ptr, $tmp;
48070
48072
  $ptr = 0;
48071
48073
  if ($rt_resuming()) {
48072
48074
  let $thread = $rt_nativeThread();
48073
48075
  $ptr = $thread.pop();
48076
+ var$3 = $thread.pop();
48074
48077
  var$2 = $thread.pop();
48075
48078
  var$1 = $thread.pop();
48076
48079
  var$0 = $thread.pop();
@@ -48078,11 +48081,13 @@ var asr_RARS$step$lambda$_23_0_run = (var$0) => {
48078
48081
  main: while (true) {
48079
48082
  switch ($ptr) {
48080
48083
  case 0:
48081
- var$1 = var$0.$_035.$main0;
48082
- var$2 = 1;
48084
+ var$1 = var$0.$_038;
48085
+ var$2 = var$0.$_124;
48086
+ var$1 = var$1.$main0;
48087
+ var$3 = -1;
48083
48088
  $ptr = 1;
48084
48089
  case 1:
48085
- $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
48090
+ $tmp = asr_RISCVprogram_simulate(var$1, var$3, var$2);
48086
48091
  if ($rt_suspending()) {
48087
48092
  break main;
48088
48093
  }
@@ -48092,20 +48097,22 @@ var asr_RARS$step$lambda$_23_0_run = (var$0) => {
48092
48097
  $rt_invalidPointer();
48093
48098
  }
48094
48099
  }
48095
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
48100
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
48096
48101
  };
48097
- function asr_RARS$simulate$lambda$_19_0() {
48102
+ function asr_RARS$simulate$lambda$_18_0() {
48098
48103
  let a = this;
48099
48104
  jl_Object.call(a);
48100
- a.$_09 = null;
48101
- a.$_14 = 0;
48105
+ a.$_025 = null;
48106
+ a.$_113 = 0;
48107
+ a.$_23 = null;
48102
48108
  }
48103
- var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
48104
- let var$1, var$2, $ptr, $tmp;
48109
+ var asr_RARS$simulate$lambda$_18_0_run = (var$0) => {
48110
+ let var$1, var$2, var$3, $ptr, $tmp;
48105
48111
  $ptr = 0;
48106
48112
  if ($rt_resuming()) {
48107
48113
  let $thread = $rt_nativeThread();
48108
48114
  $ptr = $thread.pop();
48115
+ var$3 = $thread.pop();
48109
48116
  var$2 = $thread.pop();
48110
48117
  var$1 = $thread.pop();
48111
48118
  var$0 = $thread.pop();
@@ -48113,12 +48120,13 @@ var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
48113
48120
  main: while (true) {
48114
48121
  switch ($ptr) {
48115
48122
  case 0:
48116
- var$1 = var$0.$_09;
48117
- var$2 = var$0.$_14;
48123
+ var$1 = var$0.$_025;
48124
+ var$2 = var$0.$_113;
48125
+ var$3 = var$0.$_23;
48118
48126
  var$1 = var$1.$main0;
48119
48127
  $ptr = 1;
48120
48128
  case 1:
48121
- $tmp = asr_RISCVprogram_simulate0(var$1, var$2);
48129
+ $tmp = asr_RISCVprogram_simulate(var$1, var$2, var$3);
48122
48130
  if ($rt_suspending()) {
48123
48131
  break main;
48124
48132
  }
@@ -48128,7 +48136,7 @@ var asr_RARS$simulate$lambda$_19_0_run = (var$0) => {
48128
48136
  $rt_invalidPointer();
48129
48137
  }
48130
48138
  }
48131
- $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
48139
+ $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
48132
48140
  };
48133
48141
  var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
48134
48142
  var asrs_Simulator$Reason_BREAKPOINT = null;
@@ -54495,22 +54503,23 @@ $rt_metadata([
54495
54503
  0,
54496
54504
  0,
54497
54505
  0,
54498
- asr_JsRiscV$Body,
54506
+ ju_Observer,
54499
54507
  0,
54500
54508
  jl_Object,
54501
54509
  [],
54502
- 1536,
54503
- 0,
54510
+ 1537,
54504
54511
  0,
54505
54512
  0,
54506
- asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0,
54507
54513
  0,
54514
+ asr_JsMemoryObserver,
54515
+ "JsMemoryObserver",
54516
+ 11,
54508
54517
  jl_Object,
54509
- [asr_JsRiscV$Body],
54510
- 1,
54518
+ [ju_Observer],
54519
+ 0,
54520
+ 0,
54511
54521
  0,
54512
54522
  0,
54513
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run)],
54514
54523
  jl_IllegalStateException,
54515
54524
  "IllegalStateException",
54516
54525
  18,
@@ -54520,23 +54529,6 @@ $rt_metadata([
54520
54529
  0,
54521
54530
  0,
54522
54531
  0,
54523
- asra_MemoryLayoutFacts,
54524
- 0,
54525
- jl_Object,
54526
- [],
54527
- 17,
54528
- 0,
54529
- () => asra_MemoryLayoutFacts_$callClinit(),
54530
- 0,
54531
- asr_JsProgramStatement,
54532
- "JsProgramStatement",
54533
- 11,
54534
- jl_Object,
54535
- [],
54536
- 1,
54537
- 0,
54538
- 0,
54539
- 0,
54540
54532
  asr_JsRiscV$PokeRecord,
54541
54533
  "JsRiscV$PokeRecord",
54542
54534
  11,
@@ -54554,64 +54546,54 @@ $rt_metadata([
54554
54546
  0,
54555
54547
  0,
54556
54548
  0,
54557
- ju_Observer,
54549
+ asrs_BackStepper,
54558
54550
  0,
54559
54551
  jl_Object,
54560
54552
  [],
54561
- 1537,
54553
+ 1,
54562
54554
  0,
54555
+ () => asrs_BackStepper_$callClinit(),
54563
54556
  0,
54557
+ asr_JsRiscV$Body,
54564
54558
  0,
54565
- asr_JsMemoryObserver,
54566
- "JsMemoryObserver",
54567
- 11,
54568
54559
  jl_Object,
54569
- [ju_Observer],
54560
+ [],
54561
+ 1536,
54570
54562
  0,
54571
54563
  0,
54572
54564
  0,
54565
+ asr_JsRiscV$step$lambda$_24_0,
54573
54566
  0,
54574
- asr_JsCompilationResult,
54575
- "JsCompilationResult",
54576
- 11,
54577
54567
  jl_Object,
54578
- [],
54568
+ [asr_JsRiscV$Body],
54579
54569
  1,
54580
54570
  0,
54581
54571
  0,
54582
- 0,
54583
- juf_ToIntFunction,
54572
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_24_0_run)],
54573
+ asra_MemoryLayoutFacts,
54584
54574
  0,
54585
54575
  jl_Object,
54586
54576
  [],
54587
- 1537,
54588
- 0,
54589
- 0,
54590
- 0,
54591
- asr_JsRiscV$getRegistersValues$lambda$_43_0,
54592
- 0,
54593
- jl_Object,
54594
- [juf_ToIntFunction],
54595
- 1,
54596
- 0,
54577
+ 17,
54597
54578
  0,
54579
+ () => asra_MemoryLayoutFacts_$callClinit(),
54598
54580
  0,
54599
- asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0,
54581
+ asr_JsRiscV$simulate$lambda$_27_0,
54600
54582
  0,
54601
54583
  jl_Object,
54602
54584
  [asr_JsRiscV$Body],
54603
54585
  1,
54604
54586
  0,
54605
54587
  0,
54606
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run)],
54607
- asr_JsRiscV$step$lambda$_24_0,
54588
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_27_0_run)],
54589
+ asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0,
54608
54590
  0,
54609
54591
  jl_Object,
54610
54592
  [asr_JsRiscV$Body],
54611
54593
  1,
54612
54594
  0,
54613
54595
  0,
54614
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$step$lambda$_24_0_run)],
54596
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpoints$lambda$_31_0_run)],
54615
54597
  jl_Long,
54616
54598
  "Long",
54617
54599
  18,
@@ -54621,77 +54603,24 @@ $rt_metadata([
54621
54603
  0,
54622
54604
  () => jl_Long_$callClinit(),
54623
54605
  ["$toString", $rt_wrapFunction0(jl_Long_toString0), "$hashCode0", $rt_wrapFunction0(jl_Long_hashCode), "$equals", $rt_wrapFunction1(jl_Long_equals), "$compareTo0", $rt_wrapFunction1(jl_Long_compareTo)],
54624
- asr_JsStackFrame,
54625
- "JsStackFrame",
54626
- 11,
54627
- jl_Object,
54628
- [],
54629
- 1,
54630
- 0,
54631
- 0,
54632
- 0,
54633
- asrs_BackStepper,
54606
+ juf_ToIntFunction,
54634
54607
  0,
54635
54608
  jl_Object,
54636
54609
  [],
54637
- 1,
54638
- 0,
54639
- () => asrs_BackStepper_$callClinit(),
54640
- 0,
54641
- otjc_JSArrayReader,
54642
- 0,
54643
- jl_Object,
54644
- [otj_JSObject],
54645
54610
  1537,
54646
54611
  0,
54647
54612
  0,
54648
54613
  0,
54649
- otjc_JSArray,
54650
- 0,
54651
- jl_Object,
54652
- [otjc_JSArrayReader],
54653
- 1,
54654
- 0,
54655
- 0,
54656
- 0,
54657
- asr_JsBackStep,
54658
- 0,
54659
- jl_Object,
54660
- [],
54661
- 17,
54662
- 0,
54663
- 0,
54664
- 0
54665
- ]);
54666
- $rt_metadata([
54667
- asr_JsUndoGroup,
54668
- 0,
54669
- jl_Object,
54670
- [],
54671
- 17,
54672
- 0,
54673
- 0,
54614
+ asr_JsRiscV$getRegistersValues$lambda$_43_0,
54674
54615
  0,
54675
- asr_JsRiscVTokenizedLine,
54676
- "JsRiscVTokenizedLine",
54677
- 11,
54678
54616
  jl_Object,
54679
- [],
54617
+ [juf_ToIntFunction],
54680
54618
  1,
54681
54619
  0,
54682
54620
  0,
54683
54621
  0,
54684
- asra_TokenList,
54685
- "TokenList",
54686
- 9,
54687
- jl_Object,
54688
- [jl_Cloneable, jl_Iterable],
54689
- 1,
54690
- 0,
54691
- 0,
54692
- ["$toString", $rt_wrapFunction0(asra_TokenList_toString)],
54693
- asr_JsRiscVToken,
54694
- "JsRiscVToken",
54622
+ asr_JsProgramStatement,
54623
+ "JsProgramStatement",
54695
54624
  11,
54696
54625
  jl_Object,
54697
54626
  [],
@@ -54699,14 +54628,6 @@ $rt_metadata([
54699
54628
  0,
54700
54629
  0,
54701
54630
  0,
54702
- asr_JsRiscV$simulate$lambda$_27_0,
54703
- 0,
54704
- jl_Object,
54705
- [asr_JsRiscV$Body],
54706
- 1,
54707
- 0,
54708
- 0,
54709
- ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulate$lambda$_27_0_run)],
54710
54631
  jl_Double,
54711
54632
  0,
54712
54633
  jl_Number,
@@ -54731,6 +54652,93 @@ $rt_metadata([
54731
54652
  0,
54732
54653
  0,
54733
54654
  ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getStatementsAtSourceLocation$lambda$_82_1_apply)],
54655
+ asr_JsStackFrame,
54656
+ "JsStackFrame",
54657
+ 11,
54658
+ jl_Object,
54659
+ [],
54660
+ 1,
54661
+ 0,
54662
+ 0,
54663
+ 0,
54664
+ otjc_JSArrayReader,
54665
+ 0,
54666
+ jl_Object,
54667
+ [otj_JSObject],
54668
+ 1537,
54669
+ 0,
54670
+ 0,
54671
+ 0
54672
+ ]);
54673
+ $rt_metadata([
54674
+ otjc_JSArray,
54675
+ 0,
54676
+ jl_Object,
54677
+ [otjc_JSArrayReader],
54678
+ 1,
54679
+ 0,
54680
+ 0,
54681
+ 0,
54682
+ asr_JsBackStep,
54683
+ 0,
54684
+ jl_Object,
54685
+ [],
54686
+ 17,
54687
+ 0,
54688
+ 0,
54689
+ 0,
54690
+ asr_JsUndoGroup,
54691
+ 0,
54692
+ jl_Object,
54693
+ [],
54694
+ 17,
54695
+ 0,
54696
+ 0,
54697
+ 0,
54698
+ asr_JsRiscVTokenizedLine,
54699
+ "JsRiscVTokenizedLine",
54700
+ 11,
54701
+ jl_Object,
54702
+ [],
54703
+ 1,
54704
+ 0,
54705
+ 0,
54706
+ 0,
54707
+ asra_TokenList,
54708
+ "TokenList",
54709
+ 9,
54710
+ jl_Object,
54711
+ [jl_Cloneable, jl_Iterable],
54712
+ 1,
54713
+ 0,
54714
+ 0,
54715
+ ["$toString", $rt_wrapFunction0(asra_TokenList_toString)],
54716
+ asr_JsRiscVToken,
54717
+ "JsRiscVToken",
54718
+ 11,
54719
+ jl_Object,
54720
+ [],
54721
+ 1,
54722
+ 0,
54723
+ 0,
54724
+ 0,
54725
+ asr_JsCompilationResult,
54726
+ "JsCompilationResult",
54727
+ 11,
54728
+ jl_Object,
54729
+ [],
54730
+ 1,
54731
+ 0,
54732
+ 0,
54733
+ 0,
54734
+ asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0,
54735
+ 0,
54736
+ jl_Object,
54737
+ [asr_JsRiscV$Body],
54738
+ 1,
54739
+ 0,
54740
+ 0,
54741
+ ["$run3", $rt_wrapFunction0(asr_JsRiscV$simulateWithBreakpointsAndLimit$lambda$_32_0_run)],
54734
54742
  asr_JsRiscV$simulateWithLimit$lambda$_28_0,
54735
54743
  0,
54736
54744
  jl_Object,
@@ -55002,31 +55010,6 @@ $rt_metadata([
55002
55010
  0,
55003
55011
  0,
55004
55012
  ["$contains1", $rt_wrapFunction1(jur_CharClass$16_contains)],
55005
- otjc_JSPromise$Executor,
55006
- 0,
55007
- jl_Object,
55008
- [otj_JSObject],
55009
- 1537,
55010
- 0,
55011
- 0,
55012
- 0,
55013
- asr_JsRiscV$run$lambda$_22_0,
55014
- "JsRiscV$run$lambda$_22_0",
55015
- 11,
55016
- jl_Object,
55017
- [otjc_JSPromise$Executor],
55018
- 1,
55019
- 0,
55020
- 0,
55021
- 0,
55022
- otjc_JSPromise,
55023
- 0,
55024
- jl_Object,
55025
- [otj_JSObject],
55026
- 1,
55027
- 0,
55028
- 0,
55029
- 0,
55030
55013
  asr_JsRiscV$PokeRegisterWrite,
55031
55014
  "JsRiscV$PokeRegisterWrite",
55032
55015
  11,
@@ -55044,52 +55027,43 @@ $rt_metadata([
55044
55027
  0,
55045
55028
  0,
55046
55029
  0,
55047
- asr_JsCompilationResult$_init_$lambda$_0_0,
55048
- 0,
55049
- jl_Object,
55050
- [juf_Function],
55051
- 1,
55052
- 0,
55053
- 0,
55054
- ["$apply", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
55055
- juf_Supplier,
55030
+ asrs_BackStepper$BackstepStack,
55056
55031
  0,
55057
55032
  jl_Object,
55058
55033
  [],
55059
- 1537,
55034
+ 1,
55060
55035
  0,
55061
55036
  0,
55062
55037
  0,
55063
- asr_JsCompilationResult$_init_$lambda$_0_1,
55038
+ asrs_BackStepper$BackStep,
55064
55039
  0,
55065
55040
  jl_Object,
55066
- [juf_Supplier],
55041
+ [],
55067
55042
  1,
55068
55043
  0,
55069
55044
  0,
55070
55045
  0,
55071
- juf_BiConsumer,
55046
+ otjc_JSPromise$Executor,
55072
55047
  0,
55073
55048
  jl_Object,
55074
- [],
55049
+ [otj_JSObject],
55075
55050
  1537,
55076
55051
  0,
55077
55052
  0,
55078
- 0
55079
- ]);
55080
- $rt_metadata([
55081
- asr_JsCompilationResult$_init_$lambda$_0_2,
55082
55053
  0,
55054
+ asr_JsRiscV$run$lambda$_22_0,
55055
+ "JsRiscV$run$lambda$_22_0",
55056
+ 11,
55083
55057
  jl_Object,
55084
- [juf_BiConsumer],
55058
+ [otjc_JSPromise$Executor],
55085
55059
  1,
55086
55060
  0,
55087
55061
  0,
55088
55062
  0,
55089
- asr_JsCompilationResult$_init_$lambda$_0_3,
55063
+ otjc_JSPromise,
55090
55064
  0,
55091
55065
  jl_Object,
55092
- [juf_BiConsumer],
55066
+ [otj_JSObject],
55093
55067
  1,
55094
55068
  0,
55095
55069
  0,
@@ -55109,7 +55083,9 @@ $rt_metadata([
55109
55083
  1537,
55110
55084
  0,
55111
55085
  0,
55112
- 0,
55086
+ 0
55087
+ ]);
55088
+ $rt_metadata([
55113
55089
  jus_Stream,
55114
55090
  0,
55115
55091
  jl_Object,
@@ -55143,53 +55119,85 @@ $rt_metadata([
55143
55119
  0,
55144
55120
  0,
55145
55121
  0,
55146
- asrs_BackStepper$BackstepStack,
55122
+ otjc_JSObjects,
55147
55123
  0,
55148
55124
  jl_Object,
55149
55125
  [],
55150
- 1,
55126
+ 17,
55151
55127
  0,
55152
55128
  0,
55153
55129
  0,
55154
- asrs_BackStepper$BackStep,
55130
+ otji_JSWrapper$Helper,
55155
55131
  0,
55156
55132
  jl_Object,
55157
55133
  [],
55158
- 1,
55159
55134
  0,
55160
55135
  0,
55136
+ () => otji_JSWrapper$Helper_$callClinit(),
55161
55137
  0,
55162
- otjc_JSObjects,
55138
+ otjc_JSUndefined,
55163
55139
  0,
55164
55140
  jl_Object,
55141
+ [otj_JSObject],
55142
+ 1,
55143
+ 0,
55144
+ 0,
55145
+ 0,
55146
+ asra_TokenTypes,
55147
+ 0,
55148
+ jl_Enum,
55165
55149
  [],
55166
- 17,
55150
+ 65553,
55167
55151
  0,
55152
+ () => asra_TokenTypes_$callClinit(),
55168
55153
  0,
55154
+ asr_JsCompilationResult$_init_$lambda$_0_0,
55169
55155
  0,
55170
- otji_JSWrapper$Helper,
55156
+ jl_Object,
55157
+ [juf_Function],
55158
+ 1,
55159
+ 0,
55160
+ 0,
55161
+ ["$apply", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
55162
+ juf_Supplier,
55171
55163
  0,
55172
55164
  jl_Object,
55173
55165
  [],
55166
+ 1537,
55174
55167
  0,
55175
55168
  0,
55176
- () => otji_JSWrapper$Helper_$callClinit(),
55177
55169
  0,
55178
- otjc_JSUndefined,
55170
+ asr_JsCompilationResult$_init_$lambda$_0_1,
55179
55171
  0,
55180
55172
  jl_Object,
55181
- [otj_JSObject],
55173
+ [juf_Supplier],
55182
55174
  1,
55183
55175
  0,
55184
55176
  0,
55185
55177
  0,
55186
- asra_TokenTypes,
55178
+ juf_BiConsumer,
55187
55179
  0,
55188
- jl_Enum,
55180
+ jl_Object,
55189
55181
  [],
55190
- 65553,
55182
+ 1537,
55183
+ 0,
55184
+ 0,
55185
+ 0,
55186
+ asr_JsCompilationResult$_init_$lambda$_0_2,
55187
+ 0,
55188
+ jl_Object,
55189
+ [juf_BiConsumer],
55190
+ 1,
55191
+ 0,
55192
+ 0,
55193
+ 0,
55194
+ asr_JsCompilationResult$_init_$lambda$_0_3,
55195
+ 0,
55196
+ jl_Object,
55197
+ [juf_BiConsumer],
55198
+ 1,
55199
+ 0,
55191
55200
  0,
55192
- () => asra_TokenTypes_$callClinit(),
55193
55201
  0,
55194
55202
  asra_Token,
55195
55203
  "Token",
@@ -57913,21 +57921,21 @@ $rt_metadata([
57913
57921
  0,
57914
57922
  0,
57915
57923
  0,
57916
- asrrh_InterruptController,
57924
+ asr_RARS$getStatementsAtSourceLocation$lambda$_7_0,
57917
57925
  0,
57918
57926
  jl_Object,
57919
- [],
57927
+ [juf_Predicate],
57920
57928
  1,
57921
57929
  0,
57922
- () => asrrh_InterruptController_$callClinit(),
57923
57930
  0,
57924
- asrrh_ReservationTable,
57931
+ ["$test", $rt_wrapFunction1(asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test)],
57932
+ asrrh_Stack,
57925
57933
  0,
57926
57934
  jl_Object,
57927
57935
  [],
57928
57936
  1,
57929
57937
  0,
57930
- () => asrrh_ReservationTable_$callClinit(),
57938
+ () => asrrh_Stack_$callClinit(),
57931
57939
  0,
57932
57940
  asrs_ProgramExit,
57933
57941
  0,
@@ -57937,38 +57945,38 @@ $rt_metadata([
57937
57945
  0,
57938
57946
  0,
57939
57947
  0,
57940
- asrrs_RandomStreams,
57948
+ asrrh_InterruptController,
57941
57949
  0,
57942
57950
  jl_Object,
57943
57951
  [],
57944
- 17,
57952
+ 1,
57945
57953
  0,
57946
- () => asrrs_RandomStreams_$callClinit(),
57954
+ () => asrrh_InterruptController_$callClinit(),
57947
57955
  0,
57948
- asrrh_Stack,
57956
+ asrrh_ReservationTable,
57949
57957
  0,
57950
57958
  jl_Object,
57951
57959
  [],
57952
57960
  1,
57953
57961
  0,
57954
- () => asrrh_Stack_$callClinit(),
57962
+ () => asrrh_ReservationTable_$callClinit(),
57955
57963
  0,
57956
- asrs_Simulator,
57964
+ asrrs_RandomStreams,
57957
57965
  0,
57958
- ju_Observable,
57966
+ jl_Object,
57959
57967
  [],
57960
- 1,
57968
+ 17,
57961
57969
  0,
57962
- () => asrs_Simulator_$callClinit(),
57970
+ () => asrrs_RandomStreams_$callClinit(),
57963
57971
  0,
57964
- asr_RARS$getStatementsAtSourceLocation$lambda$_7_0,
57972
+ asrs_Simulator,
57965
57973
  0,
57966
- jl_Object,
57967
- [juf_Predicate],
57974
+ ju_Observable,
57975
+ [],
57968
57976
  1,
57969
57977
  0,
57978
+ () => asrs_Simulator_$callClinit(),
57970
57979
  0,
57971
- ["$test", $rt_wrapFunction1(asr_RARS$getStatementsAtSourceLocation$lambda$_7_0_test)],
57972
57980
  ju_LinkedHashMapValues,
57973
57981
  0,
57974
57982
  ju_AbstractCollection,
@@ -59463,38 +59471,38 @@ $rt_metadata([
59463
59471
  0,
59464
59472
  0,
59465
59473
  0,
59466
- asr_RARS$simulate$lambda$_17_0,
59474
+ asr_RARS$step$lambda$_23_0,
59467
59475
  0,
59468
59476
  jl_Object,
59469
59477
  [asr_RARS$Run],
59470
59478
  1,
59471
59479
  0,
59472
59480
  0,
59473
- ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_17_0_run)],
59474
- asr_RARS$simulate$lambda$_18_0,
59481
+ ["$run2", $rt_wrapFunction0(asr_RARS$step$lambda$_23_0_run)],
59482
+ asr_RARS$simulate$lambda$_19_0,
59475
59483
  0,
59476
59484
  jl_Object,
59477
59485
  [asr_RARS$Run],
59478
59486
  1,
59479
59487
  0,
59480
59488
  0,
59481
- ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_18_0_run)],
59482
- asr_RARS$step$lambda$_23_0,
59489
+ ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_19_0_run)],
59490
+ asr_RARS$simulate$lambda$_17_0,
59483
59491
  0,
59484
59492
  jl_Object,
59485
59493
  [asr_RARS$Run],
59486
59494
  1,
59487
59495
  0,
59488
59496
  0,
59489
- ["$run2", $rt_wrapFunction0(asr_RARS$step$lambda$_23_0_run)],
59490
- asr_RARS$simulate$lambda$_19_0,
59497
+ ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_17_0_run)],
59498
+ asr_RARS$simulate$lambda$_18_0,
59491
59499
  0,
59492
59500
  jl_Object,
59493
59501
  [asr_RARS$Run],
59494
59502
  1,
59495
59503
  0,
59496
59504
  0,
59497
- ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_19_0_run)],
59505
+ ["$run2", $rt_wrapFunction0(asr_RARS$simulate$lambda$_18_0_run)],
59498
59506
  asrs_Simulator$Reason,
59499
59507
  0,
59500
59508
  jl_Enum,
@@ -60825,13 +60833,13 @@ $rt_stringPool([
60825
60833
  "sequence: ",
60826
60834
  "UCI sequence: ",
60827
60835
  "CI sequence: ",
60836
+ "Instruction serial space exhausted",
60837
+ "An instruction or poke is already executing",
60828
60838
  "The value is too big for long type",
60829
60839
  "The value is too big for long type: ",
60830
60840
  "Can't parse empty string",
60831
60841
  "The string does not represent a number",
60832
60842
  "The string represents a too big number",
60833
- "Instruction serial space exhausted",
60834
- "An instruction or poke is already executing",
60835
60843
  " , ",
60836
60844
  'CONFIGURATION ERROR: Instruction example "',
60837
60845
  '" contains invalid token(s).',
@@ -62326,19 +62334,6 @@ var $rt_jso_marker = Symbol("jsoClass");
62326
62334
  Object.defineProperty(c, "sourcePath", {
62327
62335
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSourcePath$exported$1)
62328
62336
  });
62329
- c = asr_JsCompilationResult.prototype;
62330
- Object.defineProperty(c, "hasErrors", {
62331
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
62332
- });
62333
- Object.defineProperty(c, "hasWarnings", {
62334
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
62335
- });
62336
- Object.defineProperty(c, "report", {
62337
- get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
62338
- });
62339
- Object.defineProperty(c, "errors", {
62340
- get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
62341
- });
62342
62337
  c = asr_JsStackFrame.prototype;
62343
62338
  Object.defineProperty(c, "pc", {
62344
62339
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -62381,6 +62376,19 @@ var $rt_jso_marker = Symbol("jsoClass");
62381
62376
  Object.defineProperty(c, "sourceColumn", {
62382
62377
  get: $rt_callWithReceiver(asr_JsRiscVToken_getSourceColumn$exported$1)
62383
62378
  });
62379
+ c = asr_JsCompilationResult.prototype;
62380
+ Object.defineProperty(c, "hasErrors", {
62381
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$2)
62382
+ });
62383
+ Object.defineProperty(c, "hasWarnings", {
62384
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasWarnings$exported$0)
62385
+ });
62386
+ Object.defineProperty(c, "report", {
62387
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$3)
62388
+ });
62389
+ Object.defineProperty(c, "errors", {
62390
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$1)
62391
+ });
62384
62392
  c = asr_JsRiscV$run$lambda$_22_0.prototype;
62385
62393
  c.onExecute = $rt_callWithReceiver(asr_JsRiscV$run$lambda$_22_0_onExecute$exported$0);
62386
62394
  c = otji_JSWrapper$Helper$_clinit_$lambda$_3_0.prototype;
@@ -62436,26 +62444,26 @@ function $rt_export_class_JsRISCVIO_61() {
62436
62444
  return asr_JsRISCVIO__init_$exported$0();
62437
62445
  }
62438
62446
  $rt_export_class_JsRISCVIO_61.prototype = asr_JsRISCVIO.prototype;
62439
- function $rt_export_class_JsProgramStatement_283() {
62447
+ function $rt_export_class_JsProgramStatement_293() {
62440
62448
  throw new Error("Can't instantiate this class directly");
62441
62449
  }
62442
- $rt_export_class_JsProgramStatement_283.prototype = asr_JsProgramStatement.prototype;
62443
- function $rt_export_class_JsCompilationResult_288() {
62450
+ $rt_export_class_JsProgramStatement_293.prototype = asr_JsProgramStatement.prototype;
62451
+ function $rt_export_class_JsStackFrame_297() {
62444
62452
  throw new Error("Can't instantiate this class directly");
62445
62453
  }
62446
- $rt_export_class_JsCompilationResult_288.prototype = asr_JsCompilationResult.prototype;
62447
- function $rt_export_class_JsStackFrame_294() {
62454
+ $rt_export_class_JsStackFrame_297.prototype = asr_JsStackFrame.prototype;
62455
+ function $rt_export_class_JsRiscVTokenizedLine_302() {
62448
62456
  throw new Error("Can't instantiate this class directly");
62449
62457
  }
62450
- $rt_export_class_JsStackFrame_294.prototype = asr_JsStackFrame.prototype;
62451
- function $rt_export_class_JsRiscVTokenizedLine_300() {
62458
+ $rt_export_class_JsRiscVTokenizedLine_302.prototype = asr_JsRiscVTokenizedLine.prototype;
62459
+ function $rt_export_class_JsRiscVToken_304() {
62452
62460
  throw new Error("Can't instantiate this class directly");
62453
62461
  }
62454
- $rt_export_class_JsRiscVTokenizedLine_300.prototype = asr_JsRiscVTokenizedLine.prototype;
62455
- function $rt_export_class_JsRiscVToken_302() {
62462
+ $rt_export_class_JsRiscVToken_304.prototype = asr_JsRiscVToken.prototype;
62463
+ function $rt_export_class_JsCompilationResult_305() {
62456
62464
  throw new Error("Can't instantiate this class directly");
62457
62465
  }
62458
- $rt_export_class_JsRiscVToken_302.prototype = asr_JsRiscVToken.prototype;
62466
+ $rt_export_class_JsCompilationResult_305.prototype = asr_JsCompilationResult.prototype;
62459
62467
  function $rt_export_class_JsCompilationError_701() {
62460
62468
  throw new Error("Can't instantiate this class directly");
62461
62469
  }