@specy/risc-v 0.1.1 → 0.1.3

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.
package/dist/index.mjs CHANGED
@@ -2871,11 +2871,10 @@ var asr_JsRiscV_terminated$exported$11 = (var$1) => {
2871
2871
  return !!(var$1.$main.$stopReason !== asrs_Simulator$Reason_CLIFF_TERMINATION ? 0 : 1);
2872
2872
  };
2873
2873
  var asr_JsRiscV_initialize$exported$12 = (var$1, var$2) => {
2874
- let var$3, $$je;
2874
+ let $$je;
2875
2875
  asr_JsRiscV_$callClinit();
2876
2876
  var$2 ? 1 : 0;
2877
2877
  var$1;
2878
- var$3 = asrrh_RegisterFile_getProgramCounter();
2879
2878
  asrrh_RegisterFile_resetRegisters();
2880
2879
  asrrh_RegisterBlock_resetRegisters(asrrh_FloatingPointRegisterFile_instance);
2881
2880
  asrrh_RegisterBlock_resetRegisters(asrrh_ControlAndStatusRegisterFile_instance);
@@ -2895,7 +2894,7 @@ var asr_JsRiscV_initialize$exported$12 = (var$1, var$2) => {
2895
2894
  jl_Object_monitorExitSync(var$1);
2896
2895
  $rt_throw(var$2);
2897
2896
  }
2898
- asrrh_RegisterFile_initializeProgramCounter(var$3);
2897
+ asrrh_RegisterFile_initializeProgramCounter0(1);
2899
2898
  asr_Globals_$callClinit();
2900
2899
  asr_Globals_exitCode = 0;
2901
2900
  ju_ArrayList_clear(asrrh_Stack_callStack);
@@ -3277,8 +3276,8 @@ var asr_JsRiscV__clinit_ = () => {
3277
3276
  jnc_CoderResult__clinit_();
3278
3277
  jn_ByteOrder__clinit_();
3279
3278
  asrjt_Float32__clinit_();
3280
- asrjt_Float64__clinit_();
3281
3279
  jm_BigInteger__clinit_();
3280
+ asrjt_Float64__clinit_();
3282
3281
  asrjo_Arithmetic__clinit_();
3283
3282
  asrj_RoundingMode__clinit_();
3284
3283
  asrj_Flags__clinit_();
@@ -6993,83 +6992,6 @@ var jl_System_currentTimeMillis = () => {
6993
6992
  return Long_fromNumber((/* @__PURE__ */ new Date()).getTime());
6994
6993
  };
6995
6994
  var jl_CloneNotSupportedException = $rt_classWithoutFields(jl_Exception);
6996
- function asr_JsProgramStatement() {
6997
- let a = this;
6998
- jl_Object.call(a);
6999
- a.$sourceLine1 = 0;
7000
- a.$address2 = 0;
7001
- a.$binaryStatement0 = 0;
7002
- a.$source3 = null;
7003
- a.$assemblyStatement = null;
7004
- a.$machineStatement0 = null;
7005
- }
7006
- var asr_JsProgramStatement__init_0 = ($this, var$1) => {
7007
- let var$2, var$3, var$4, var$5, var$6;
7008
- $this.$sourceLine1 = var$1.$sourceLine0;
7009
- $this.$address2 = var$1.$textAddress0;
7010
- $this.$binaryStatement0 = var$1.$binaryStatement;
7011
- $this.$source3 = var$1.$source;
7012
- var$2 = var$1.$basicStatementList;
7013
- var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7014
- var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7015
- var$5 = new jl_StringBuffer();
7016
- jl_AbstractStringBuilder__init_(var$5);
7017
- var$6 = ju_AbstractList_iterator(var$2.$list);
7018
- while (ju_AbstractList$1_hasNext(var$6)) {
7019
- a: {
7020
- var$2 = ju_AbstractList$1_next(var$6);
7021
- switch (var$2.$type3) {
7022
- case 0:
7023
- break;
7024
- case 1:
7025
- if (var$3 == 10) {
7026
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7027
- break a;
7028
- }
7029
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7030
- break a;
7031
- case 2:
7032
- if (var$4 == 10) {
7033
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7034
- break a;
7035
- }
7036
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7037
- break a;
7038
- case 3:
7039
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7040
- break a;
7041
- default:
7042
- break a;
7043
- }
7044
- jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7045
- }
7046
- }
7047
- $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7048
- $this.$machineStatement0 = var$1.$machineStatement;
7049
- };
7050
- var asr_JsProgramStatement__init_ = (var_0) => {
7051
- let var_1 = new asr_JsProgramStatement();
7052
- asr_JsProgramStatement__init_0(var_1, var_0);
7053
- return var_1;
7054
- };
7055
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7056
- return var$1.$sourceLine1;
7057
- };
7058
- var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7059
- return $rt_ustr(var$1.$assemblyStatement);
7060
- };
7061
- var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7062
- return $rt_ustr(var$1.$source3);
7063
- };
7064
- var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7065
- return var$1.$address2;
7066
- };
7067
- var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7068
- return var$1.$binaryStatement0;
7069
- };
7070
- var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7071
- return $rt_ustr(var$1.$machineStatement0);
7072
- };
7073
6995
  var asrrh_RegisterFile = $rt_classWithoutFields();
7074
6996
  var asrrh_RegisterFile_instance = null;
7075
6997
  var asrrh_RegisterFile_programCounter = null;
@@ -7077,16 +6999,16 @@ var asrrh_RegisterFile_$callClinit = () => {
7077
6999
  asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7078
7000
  asrrh_RegisterFile__clinit_();
7079
7001
  };
7080
- var asrrh_RegisterFile_updateRegister = ($num, $val) => {
7002
+ var asrrh_RegisterFile_updateRegister = (var$1, var$2) => {
7081
7003
  let var$3;
7082
7004
  asrrh_RegisterFile_$callClinit();
7083
- if ($num) {
7005
+ if (var$1) {
7084
7006
  if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7085
- asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7007
+ asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7086
7008
  else {
7087
7009
  var$3 = asr_Globals_program.$backStepper;
7088
- $val = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7089
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
7010
+ var$2 = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7011
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), var$1, var$2);
7090
7012
  }
7091
7013
  }
7092
7014
  };
@@ -7116,6 +7038,16 @@ var asrrh_RegisterFile_initializeProgramCounter = ($value) => {
7116
7038
  asrrh_RegisterFile_$callClinit();
7117
7039
  asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7118
7040
  };
7041
+ var asrrh_RegisterFile_initializeProgramCounter0 = ($startAtMain) => {
7042
+ let $mainAddr;
7043
+ asrrh_RegisterFile_$callClinit();
7044
+ asr_Globals_$callClinit();
7045
+ $mainAddr = asra_SymbolTable_getAddress(asr_Globals_symbolTable, asra_SymbolTable_startLabel);
7046
+ if ($startAtMain && $mainAddr != -1 && asrrh_Memory_inTextSegment($mainAddr))
7047
+ asrrh_RegisterFile_initializeProgramCounter($mainAddr);
7048
+ else
7049
+ asrrh_RegisterFile_initializeProgramCounter(Long_lo(asrrh_RegisterFile_programCounter.$resetValue0));
7050
+ };
7119
7051
  var asrrh_RegisterFile_setProgramCounter = ($value) => {
7120
7052
  let $old, var$3;
7121
7053
  asrrh_RegisterFile_$callClinit();
@@ -7133,15 +7065,9 @@ var asrrh_RegisterFile_getProgramCounter = () => {
7133
7065
  return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7134
7066
  };
7135
7067
  var asrrh_RegisterFile_resetRegisters = () => {
7136
- let var$1, var$2;
7137
7068
  asrrh_RegisterFile_$callClinit();
7138
7069
  asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
7139
- var$1 = asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_START_AT_MAIN);
7140
- var$2 = asra_SymbolTable_getAddress(asr_Globals_symbolTable, asra_SymbolTable_startLabel);
7141
- if (var$1 && var$2 != -1 && asrrh_Memory_inTextSegment(var$2))
7142
- asrrh_RegisterFile_initializeProgramCounter(var$2);
7143
- else
7144
- asrrh_RegisterFile_initializeProgramCounter(Long_lo(asrrh_RegisterFile_programCounter.$resetValue0));
7070
+ asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_START_AT_MAIN));
7145
7071
  };
7146
7072
  var asrrh_RegisterFile_incrementPC = () => {
7147
7073
  let var$1;
@@ -7193,29 +7119,82 @@ var asrrh_RegisterFile__clinit_ = () => {
7193
7119
  asrrh_RegisterFile_instance = var$1;
7194
7120
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7195
7121
  };
7196
- function asr_JsStackFrame() {
7122
+ function asr_JsProgramStatement() {
7197
7123
  let a = this;
7198
7124
  jl_Object.call(a);
7199
- a.$pc3 = 0;
7200
- a.$toAddress = 0;
7201
- a.$sp = 0;
7202
- a.$fp = 0;
7203
- a.$registers = null;
7125
+ a.$sourceLine1 = 0;
7126
+ a.$address2 = 0;
7127
+ a.$binaryStatement0 = 0;
7128
+ a.$source3 = null;
7129
+ a.$assemblyStatement = null;
7130
+ a.$machineStatement0 = null;
7204
7131
  }
7205
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7206
- return var$1.$pc3;
7132
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7133
+ let var$2, var$3, var$4, var$5, var$6;
7134
+ $this.$sourceLine1 = $programStatement.$sourceLine0;
7135
+ $this.$address2 = $programStatement.$textAddress0;
7136
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
7137
+ $this.$source3 = $programStatement.$source;
7138
+ var$2 = $programStatement.$basicStatementList;
7139
+ var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7140
+ var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7141
+ var$5 = new jl_StringBuffer();
7142
+ jl_AbstractStringBuilder__init_(var$5);
7143
+ var$6 = ju_AbstractList_iterator(var$2.$list);
7144
+ while (ju_AbstractList$1_hasNext(var$6)) {
7145
+ a: {
7146
+ var$2 = ju_AbstractList$1_next(var$6);
7147
+ switch (var$2.$type3) {
7148
+ case 0:
7149
+ break;
7150
+ case 1:
7151
+ if (var$3 == 10) {
7152
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7153
+ break a;
7154
+ }
7155
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7156
+ break a;
7157
+ case 2:
7158
+ if (var$4 == 10) {
7159
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7160
+ break a;
7161
+ }
7162
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7163
+ break a;
7164
+ case 3:
7165
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7166
+ break a;
7167
+ default:
7168
+ break a;
7169
+ }
7170
+ jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7171
+ }
7172
+ }
7173
+ $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7174
+ $this.$machineStatement0 = $programStatement.$machineStatement;
7207
7175
  };
7208
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7209
- return var$1.$toAddress;
7176
+ var asr_JsProgramStatement__init_ = (var_0) => {
7177
+ let var_1 = new asr_JsProgramStatement();
7178
+ asr_JsProgramStatement__init_0(var_1, var_0);
7179
+ return var_1;
7210
7180
  };
7211
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7212
- return otji_JS_wrap0(var$1.$registers);
7181
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7182
+ return var$1.$sourceLine1;
7213
7183
  };
7214
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7215
- return var$1.$sp;
7184
+ var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7185
+ return $rt_ustr(var$1.$assemblyStatement);
7216
7186
  };
7217
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7218
- return var$1.$fp;
7187
+ var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7188
+ return $rt_ustr(var$1.$source3);
7189
+ };
7190
+ var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7191
+ return var$1.$address2;
7192
+ };
7193
+ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7194
+ return var$1.$binaryStatement0;
7195
+ };
7196
+ var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7197
+ return $rt_ustr(var$1.$machineStatement0);
7219
7198
  };
7220
7199
  var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7221
7200
  var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
@@ -7444,6 +7423,43 @@ var ju_Arrays_stream = ($array) => {
7444
7423
  };
7445
7424
  var juf_ToIntFunction = $rt_classWithoutFields(0);
7446
7425
  var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7426
+ var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7427
+ var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7428
+ let var$2, var$3;
7429
+ var$1 = var$1;
7430
+ var$2 = new asr_JsBackStep();
7431
+ var$3 = var$1.$action;
7432
+ var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7433
+ var$2.$pc2 = var$1.$pc1;
7434
+ var$2.$param10 = var$1.$param1;
7435
+ var$2.$param20 = Long_lo(var$1.$param2);
7436
+ return var$2;
7437
+ };
7438
+ var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7439
+ var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7440
+ asr_JsRiscV_$callClinit();
7441
+ return $rt_createArray(asr_JsBackStep, var$1);
7442
+ };
7443
+ function asr_JsBackStep() {
7444
+ let a = this;
7445
+ jl_Object.call(a);
7446
+ a.$action0 = 0;
7447
+ a.$pc2 = 0;
7448
+ a.$param10 = 0;
7449
+ a.$param20 = 0;
7450
+ }
7451
+ var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7452
+ return var$1.$pc2;
7453
+ };
7454
+ var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7455
+ return var$1.$param20;
7456
+ };
7457
+ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7458
+ return var$1.$action0;
7459
+ };
7460
+ var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7461
+ return var$1.$param10;
7462
+ };
7447
7463
  function asr_JsCompilationResult() {
7448
7464
  let a = this;
7449
7465
  jl_Object.call(a);
@@ -7506,42 +7522,29 @@ var asr_AssemblyException__init_ = (var_0) => {
7506
7522
  asr_AssemblyException__init_0(var_1, var_0);
7507
7523
  return var_1;
7508
7524
  };
7509
- var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7510
- var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7511
- let var$2, var$3;
7512
- var$1 = var$1;
7513
- var$2 = new asr_JsBackStep();
7514
- var$3 = var$1.$action;
7515
- var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7516
- var$2.$pc2 = var$1.$pc1;
7517
- var$2.$param10 = var$1.$param1;
7518
- var$2.$param20 = Long_lo(var$1.$param2);
7519
- return var$2;
7520
- };
7521
- var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7522
- var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7523
- asr_JsRiscV_$callClinit();
7524
- return $rt_createArray(asr_JsBackStep, var$1);
7525
- };
7526
- function asr_JsBackStep() {
7525
+ function asr_JsStackFrame() {
7527
7526
  let a = this;
7528
7527
  jl_Object.call(a);
7529
- a.$action0 = 0;
7530
- a.$pc2 = 0;
7531
- a.$param10 = 0;
7532
- a.$param20 = 0;
7528
+ a.$pc3 = 0;
7529
+ a.$toAddress = 0;
7530
+ a.$sp = 0;
7531
+ a.$fp = 0;
7532
+ a.$registers = null;
7533
7533
  }
7534
- var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7535
- return var$1.$pc2;
7534
+ var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7535
+ return var$1.$pc3;
7536
7536
  };
7537
- var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7538
- return var$1.$param20;
7537
+ var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7538
+ return var$1.$toAddress;
7539
7539
  };
7540
- var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7541
- return var$1.$action0;
7540
+ var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7541
+ return otji_JS_wrap0(var$1.$registers);
7542
7542
  };
7543
- var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7544
- return var$1.$param10;
7543
+ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7544
+ return var$1.$sp;
7545
+ };
7546
+ var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7547
+ return var$1.$fp;
7545
7548
  };
7546
7549
  var ju_Map$Entry = $rt_classWithoutFields(0);
7547
7550
  function ju_MapEntry() {
@@ -8087,23 +8090,6 @@ var asr_RISCVFile_getName = ($this) => {
8087
8090
  return $this.$name2;
8088
8091
  };
8089
8092
  var jl_StringIndexOutOfBoundsException = $rt_classWithoutFields(jl_IndexOutOfBoundsException);
8090
- function asrs_BackStepper() {
8091
- let a = this;
8092
- jl_Object.call(a);
8093
- a.$engaged = 0;
8094
- a.$backSteps = null;
8095
- }
8096
- var asrs_BackStepper_pc = ($this) => {
8097
- return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
8098
- };
8099
- var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value) => {
8100
- asrs_BackStepper$BackstepStack_push($this.$backSteps, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value);
8101
- return $value;
8102
- };
8103
- var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8104
- if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8105
- asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8106
- };
8107
8093
  function asrrh_Register() {
8108
8094
  let a = this;
8109
8095
  ju_Observable.call(a);
@@ -8198,6 +8184,23 @@ var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8198
8184
  ju_Observable_notifyObservers(var$2, var$3);
8199
8185
  }
8200
8186
  };
8187
+ function asrs_BackStepper() {
8188
+ let a = this;
8189
+ jl_Object.call(a);
8190
+ a.$engaged = 0;
8191
+ a.$backSteps = null;
8192
+ }
8193
+ var asrs_BackStepper_pc = ($this) => {
8194
+ return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
8195
+ };
8196
+ var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value) => {
8197
+ asrs_BackStepper$BackstepStack_push($this.$backSteps, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value);
8198
+ return $value;
8199
+ };
8200
+ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8201
+ if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8202
+ asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8203
+ };
8201
8204
  var jl_AutoCloseable = $rt_classWithoutFields(0);
8202
8205
  var jus_BaseStream = $rt_classWithoutFields(0);
8203
8206
  var jus_Stream = $rt_classWithoutFields(0);
@@ -8296,29 +8299,6 @@ var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8296
8299
  var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8297
8300
  return $this.$size2;
8298
8301
  };
8299
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
8300
- jl_Object.call(this);
8301
- this.$_06 = null;
8302
- }
8303
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8304
- let var$2, var$3;
8305
- var$1 = var$1;
8306
- var$2 = var$0.$_06;
8307
- var$3 = new asr_JsCompilationResult$JsCompilationError();
8308
- var$3.$this$016 = var$2;
8309
- var$3.$isWarning0 = var$1.$isWarning;
8310
- var$3.$message2 = var$1.$message0;
8311
- var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8312
- var$3.$filename2 = var$1.$filename0;
8313
- var$3.$lineNumber0 = var$1.$line;
8314
- var$3.$columnNumber = var$1.$position2;
8315
- return var$3;
8316
- };
8317
- var juf_Supplier = $rt_classWithoutFields(0);
8318
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8319
- var juf_BiConsumer = $rt_classWithoutFields(0);
8320
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8321
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8322
8302
  function asrs_BackStepper$BackstepStack() {
8323
8303
  let a = this;
8324
8304
  jl_Object.call(a);
@@ -8421,6 +8401,29 @@ var asrs_BackStepper$BackstepStack_peek = ($this) => {
8421
8401
  jl_Object_monitorExitSync($this);
8422
8402
  }
8423
8403
  };
8404
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
8405
+ jl_Object.call(this);
8406
+ this.$_06 = null;
8407
+ }
8408
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8409
+ let var$2, var$3;
8410
+ var$1 = var$1;
8411
+ var$2 = var$0.$_06;
8412
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
8413
+ var$3.$this$016 = var$2;
8414
+ var$3.$isWarning0 = var$1.$isWarning;
8415
+ var$3.$message2 = var$1.$message0;
8416
+ var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8417
+ var$3.$filename2 = var$1.$filename0;
8418
+ var$3.$lineNumber0 = var$1.$line;
8419
+ var$3.$columnNumber = var$1.$position2;
8420
+ return var$3;
8421
+ };
8422
+ var juf_Supplier = $rt_classWithoutFields(0);
8423
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8424
+ var juf_BiConsumer = $rt_classWithoutFields(0);
8425
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8426
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8424
8427
  var jl_Math = $rt_classWithoutFields();
8425
8428
  var jl_Math_pow = ($x, $y) => {
8426
8429
  return jl_Math_powImpl($x, $y);
@@ -11729,7 +11732,6 @@ var asrrh_RegisterBlock_resetRegisters = ($this) => {
11729
11732
  var$3 = var$3 + 1 | 0;
11730
11733
  }
11731
11734
  };
11732
- var asrrh_StackFrame = $rt_classWithoutFields();
11733
11735
  function asr_ErrorList() {
11734
11736
  let a = this;
11735
11737
  jl_Object.call(a);
@@ -11837,6 +11839,7 @@ var asr_ErrorList_generateReport = ($this, $isWarning) => {
11837
11839
  }
11838
11840
  return jl_AbstractStringBuilder_toString($report);
11839
11841
  };
11842
+ var asrrh_StackFrame = $rt_classWithoutFields();
11840
11843
  function asrrh_MemoryConfiguration() {
11841
11844
  let a = this;
11842
11845
  jl_Object.call(a);
@@ -15873,7 +15876,6 @@ var jl_Thread__clinit_ = () => {
15873
15876
  };
15874
15877
  var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
15875
15878
  var jl_IllegalMonitorStateException = $rt_classWithoutFields(jl_RuntimeException);
15876
- var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
15877
15879
  var otjc_JSObjects = $rt_classWithoutFields();
15878
15880
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
15879
15881
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -15909,6 +15911,7 @@ var otji_JSWrapper$Helper__clinit_ = () => {
15909
15911
  otji_JSWrapper$Helper_numberFinalizationRegistry = var$1;
15910
15912
  };
15911
15913
  var otjc_JSUndefined = $rt_classWithoutFields();
15914
+ var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
15912
15915
  function ju_Arrays$ArrayAsList() {
15913
15916
  ju_AbstractList.call(this);
15914
15917
  this.$array3 = null;
@@ -31340,330 +31343,6 @@ var asrjt_Float32__clinit_ = () => {
31340
31343
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
31341
31344
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
31342
31345
  };
31343
- var asrjo_Conversions = $rt_classWithoutFields();
31344
- var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
31345
- let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
31346
- if ($f.$isNaN()) {
31347
- $f = $env.$flags;
31348
- $min = asrj_Flags_invalid;
31349
- ju_GenericEnumSet_add($f, $min);
31350
- return $max;
31351
- }
31352
- if ($f.$isInfinite()) {
31353
- $env = $env.$flags;
31354
- $copy = asrj_Flags_invalid;
31355
- ju_GenericEnumSet_add($env, $copy);
31356
- if ($f.$isSignMinus())
31357
- $max = $min;
31358
- return $max;
31359
- }
31360
- $copy = asrj_Environment__init_();
31361
- $copy.$mode = $env.$mode;
31362
- if ($f.$isZero())
31363
- $rounded = jm_BigInteger_ZERO;
31364
- else {
31365
- $f = $f.$toExactFloat();
31366
- if (asrji_ExactFloat_isZero($f))
31367
- $rounded = jm_BigInteger_ZERO;
31368
- else {
31369
- if (asrji_ExactFloat_isZero($f))
31370
- $rounded = $f;
31371
- else {
31372
- $rounded = asrji_ExactFloat_normalize($f);
31373
- var$8 = $rounded.$exponent0;
31374
- if (var$8 < 0) {
31375
- var$8 = -var$8 | 0;
31376
- var$9 = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($rounded.$significand, var$8), var$8);
31377
- var$10 = jm_BigInteger_subtract($rounded.$significand, var$9);
31378
- var$9 = asrji_ExactFloat_normalize(asrji_ExactFloat__init_($rounded.$sign, $rounded.$exponent0, var$9));
31379
- var$11 = asrji_ExactFloat_add(var$9, asrji_ExactFloat__init_($rounded.$sign, 0, jm_BigInteger_valueOf(Long_fromInt(1))));
31380
- var$12 = $env.$mode;
31381
- if (var$12 === asrj_RoundingMode_zero)
31382
- $rounded = var$9;
31383
- else {
31384
- var$13 = asrj_RoundingMode_max;
31385
- if (var$12 !== var$13 && var$12 !== asrj_RoundingMode_min) {
31386
- $rounded = jm_BigInteger_ONE;
31387
- var$8 = var$8 - 1 | 0;
31388
- $rounded = !jm_BigInteger_equals(var$10, jm_BigInteger_shiftLeft($rounded, var$8)) ? jm_BigInteger_compareTo(var$10, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, var$8)) <= 0 ? var$9 : var$11 : $env.$mode !== asrj_RoundingMode_away && !jm_BigInteger_testBit(var$9.$significand, 0) ? var$9 : var$11;
31389
- } else
31390
- $rounded = (var$12 !== var$13 ? 0 : 1) != $rounded.$sign ? var$11 : var$9;
31391
- }
31392
- }
31393
- }
31394
- $rounded = asrji_ExactFloat_normalize($rounded);
31395
- if (asrji_ExactFloat_compareTo($rounded, $f)) {
31396
- var$9 = $env.$flags;
31397
- var$10 = asrj_Flags_inexact;
31398
- ju_GenericEnumSet_add(var$9, var$10);
31399
- }
31400
- if (!asrji_ExactFloat_$assertionsDisabled && $rounded.$exponent0 < 0)
31401
- $rt_throw(jl_AssertionError__init_($rt_s(1624)));
31402
- $rounded = jm_BigInteger_multiply(jm_BigInteger_shiftLeft($rounded.$significand, $rounded.$exponent0), jm_BigInteger_valueOf(!$f.$sign ? Long_fromInt(1) : Long_fromInt(-1)));
31403
- }
31404
- }
31405
- if (!(jm_BigInteger_compareTo($rounded, $max) <= 0 && jm_BigInteger_compareTo($rounded, $min) >= 0)) {
31406
- $f = $env.$flags;
31407
- $env = asrj_Flags_invalid;
31408
- ju_GenericEnumSet_add($f, $env);
31409
- } else if (!$quiet) {
31410
- $f = $copy.$flags;
31411
- $copy = asrj_Flags_inexact;
31412
- if (ju_GenericEnumSet_contains($f, $copy)) {
31413
- $f = $env.$flags;
31414
- $env = asrj_Flags_inexact;
31415
- ju_GenericEnumSet_add($f, $env);
31416
- }
31417
- }
31418
- if (jm_BigInteger_compareTo($rounded, $max) == -1)
31419
- $max = $rounded;
31420
- if (jm_BigInteger_compareTo($max, $min) == 1)
31421
- $min = $max;
31422
- return $min;
31423
- };
31424
- var asrjo_Conversions_convertToInt = ($f, $env, $quiet) => {
31425
- return jm_BigInteger_intValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_fromInt(2147483647)), jm_BigInteger_valueOf(Long_fromInt(-2147483648)), $env, $quiet));
31426
- };
31427
- var asrjo_Conversions_convertToUnsignedInt = ($f, $env, $quiet) => {
31428
- return Long_lo(Long_and(jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 0)), jm_BigInteger_ZERO, $env, $quiet)), Long_create(4294967295, 0)));
31429
- };
31430
- var asrjo_Conversions_convertToLong = ($f, $env, $quiet) => {
31431
- return jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 2147483647)), jm_BigInteger_valueOf(Long_create(0, 2147483648)), $env, $quiet));
31432
- };
31433
- var asrjo_Conversions_convertToUnsignedLong = ($f, $env, $quiet) => {
31434
- return jm_BigInteger_longValue(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_add(jm_BigInteger_valueOf(Long_fromInt(-1)), jm_BigInteger_shiftLeft(jm_BigInteger_ONE, 64)), jm_BigInteger_ZERO, $env, $quiet));
31435
- };
31436
- var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31437
- let var$4;
31438
- if (jm_BigInteger_equals($i, jm_BigInteger_ZERO))
31439
- return $helper.$Zero();
31440
- var$4 = new asrji_ExactFloat();
31441
- if (jm_BigInteger_compareTo($i, jm_BigInteger_ZERO) >= 0)
31442
- var$4.$sign = 0;
31443
- else {
31444
- var$4.$sign = 1;
31445
- $i = jm_BigInteger_negate($i);
31446
- }
31447
- var$4.$exponent0 = 0;
31448
- var$4.$significand = $i;
31449
- return $helper.$fromExactFloat(var$4, $env);
31450
- };
31451
- function asrjt_Float64() {
31452
- asrjt_Floating.call(this);
31453
- this.$bits1 = Long_ZERO;
31454
- }
31455
- var asrjt_Float64_Zero = null;
31456
- var asrjt_Float64_NegativeZero = null;
31457
- var asrjt_Float64_NaN = null;
31458
- var asrjt_Float64_Infinity = null;
31459
- var asrjt_Float64_NegativeInfinity = null;
31460
- var asrjt_Float64_$assertionsDisabled = 0;
31461
- var asrjt_Float64__init_1 = ($this, $bits) => {
31462
- $this.$bits1 = $bits;
31463
- };
31464
- var asrjt_Float64__init_ = (var_0) => {
31465
- let var_1 = new asrjt_Float64();
31466
- asrjt_Float64__init_1(var_1, var_0);
31467
- return var_1;
31468
- };
31469
- var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31470
- asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31471
- };
31472
- var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31473
- let var_3 = new asrjt_Float64();
31474
- asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31475
- return var_3;
31476
- };
31477
- var asrjt_Float64_exponent = ($this) => {
31478
- return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31479
- };
31480
- var asrjt_Float64_negate = ($this) => {
31481
- return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31482
- };
31483
- var asrjt_Float64_isSignMinus = ($this) => {
31484
- return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31485
- };
31486
- var asrjt_Float64_isInfinite = ($this) => {
31487
- return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31488
- };
31489
- var asrjt_Float64_isNormal = ($this) => {
31490
- return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31491
- };
31492
- var asrjt_Float64_isSubnormal = ($this) => {
31493
- return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31494
- };
31495
- var asrjt_Float64_isNaN = ($this) => {
31496
- return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31497
- };
31498
- var asrjt_Float64_isSignalling = ($this) => {
31499
- if (!asrjt_Float64_isNaN($this))
31500
- return 0;
31501
- return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31502
- };
31503
- var asrjt_Float64_isZero = ($this) => {
31504
- let var$1;
31505
- var$1 = $this.$bits1;
31506
- return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31507
- };
31508
- var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31509
- let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31510
- if (asrji_ExactFloat_isZero($ef))
31511
- return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31512
- $ef = asrji_ExactFloat_normalize($ef);
31513
- $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31514
- if ($normalizedExponent > -1022) {
31515
- if ($normalizedExponent > 1024) {
31516
- $mainBits = $env.$flags;
31517
- $roundedBits = asrj_Flags_overflow;
31518
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31519
- $mainBits = $env.$flags;
31520
- $roundedBits = asrj_Flags_inexact;
31521
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31522
- asrjt_Float64$1_$callClinit();
31523
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31524
- case 1:
31525
- break;
31526
- case 2:
31527
- case 3:
31528
- $normalizedExponent = $ef.$sign;
31529
- if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31530
- return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31531
- return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31532
- case 4:
31533
- case 5:
31534
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31535
- default:
31536
- if (!asrjt_Float64_$assertionsDisabled)
31537
- $rt_throw(jl_AssertionError__init_($rt_s(1617)));
31538
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31539
- }
31540
- return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31541
- }
31542
- if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31543
- if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31544
- $rt_throw(jl_AssertionError__init_($rt_s(1618)));
31545
- $a = new asrjt_Float64();
31546
- $normalizedExponent = $ef.$sign;
31547
- $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31548
- $ef = $ef.$significand;
31549
- asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
31550
- return $a;
31551
- }
31552
- $mainBits = $env.$flags;
31553
- $roundedBits = asrj_Flags_inexact;
31554
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31555
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31556
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31557
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31558
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31559
- $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
31560
- $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31561
- } else {
31562
- if ($ef.$exponent0 > -1075) {
31563
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31564
- $rt_throw(jl_AssertionError__init_($rt_s(1619)));
31565
- return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31566
- }
31567
- $mainBits = $env.$flags;
31568
- $roundedBits = asrj_Flags_inexact;
31569
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31570
- $mainBits = $env.$flags;
31571
- $roundedBits = asrj_Flags_underflow;
31572
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31573
- $bitsToRound = -1074 - $ef.$exponent0 | 0;
31574
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31575
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31576
- $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31577
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31578
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31579
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31580
- else {
31581
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31582
- $rt_throw(jl_AssertionError__init_1());
31583
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31584
- }
31585
- }
31586
- asrjt_Float64$1_$callClinit();
31587
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31588
- case 1:
31589
- break;
31590
- case 2:
31591
- case 3:
31592
- if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31593
- return $towardsZero;
31594
- return $awayZero;
31595
- default:
31596
- $ef = jm_BigInteger_ONE;
31597
- $normalizedExponent = $bitsToRound - 1 | 0;
31598
- if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
31599
- if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
31600
- return $towardsZero;
31601
- return $awayZero;
31602
- }
31603
- if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
31604
- return $towardsZero;
31605
- return $awayZero;
31606
- }
31607
- return $towardsZero;
31608
- };
31609
- var asrjt_Float64_toExactFloat = ($this) => {
31610
- let $sign, $exponent, $significand;
31611
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
31612
- $rt_throw(jl_AssertionError__init_($rt_s(1620)));
31613
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
31614
- $rt_throw(jl_AssertionError__init_($rt_s(1621)));
31615
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
31616
- $rt_throw(jl_AssertionError__init_($rt_s(1622)));
31617
- $sign = asrjt_Float64_isSignMinus($this);
31618
- if (asrjt_Float64_isZero($this)) {
31619
- $exponent = 0;
31620
- $significand = jm_BigInteger_ZERO;
31621
- } else if (asrjt_Float64_isNormal($this)) {
31622
- $exponent = asrjt_Float64_exponent($this) - 52 | 0;
31623
- $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
31624
- } else {
31625
- if (!asrjt_Float64_isSubnormal($this)) {
31626
- if (asrjt_Float64_$assertionsDisabled)
31627
- return null;
31628
- $rt_throw(jl_AssertionError__init_($rt_s(1623)));
31629
- }
31630
- $exponent = asrjt_Float64_exponent($this) - 51 | 0;
31631
- $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
31632
- }
31633
- return asrji_ExactFloat__init_($sign, $exponent, $significand);
31634
- };
31635
- var asrjt_Float64_maxPrecision = ($this) => {
31636
- return 60;
31637
- };
31638
- var asrjt_Float64_negate0 = ($this) => {
31639
- return asrjt_Float64_negate($this);
31640
- };
31641
- var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
31642
- return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
31643
- };
31644
- var asrjt_Float64_NegativeInfinity0 = ($this) => {
31645
- return asrjt_Float64_NegativeInfinity;
31646
- };
31647
- var asrjt_Float64_Infinity0 = ($this) => {
31648
- return asrjt_Float64_Infinity;
31649
- };
31650
- var asrjt_Float64_NegativeZero0 = ($this) => {
31651
- return asrjt_Float64_NegativeZero;
31652
- };
31653
- var asrjt_Float64_Zero0 = ($this) => {
31654
- return asrjt_Float64_Zero;
31655
- };
31656
- var asrjt_Float64_NaN0 = ($this) => {
31657
- return asrjt_Float64_NaN;
31658
- };
31659
- var asrjt_Float64__clinit_ = () => {
31660
- asrjt_Float64_$assertionsDisabled = 0;
31661
- asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
31662
- asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
31663
- asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
31664
- asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31665
- asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31666
- };
31667
31346
  var asrjo_Comparisons = $rt_classWithoutFields();
31668
31347
  var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31669
31348
  if ($a.$isZero()) {
@@ -31968,7 +31647,7 @@ var jm_BigInteger_testBit = ($this, $n) => {
31968
31647
  return !($this.$digits.data[0] & 1) ? 0 : 1;
31969
31648
  if ($n < 0) {
31970
31649
  var$2 = new jl_ArithmeticException();
31971
- jl_Throwable__init_0(var$2, $rt_s(1625));
31650
+ jl_Throwable__init_0(var$2, $rt_s(1624));
31972
31651
  $rt_throw(var$2);
31973
31652
  }
31974
31653
  $intCount = $n >> 5;
@@ -31996,7 +31675,7 @@ var jm_BigInteger_intValueExact = ($this) => {
31996
31675
  if ($this.$numberLength <= 1 && jm_BigInteger_bitLength($this) <= 31)
31997
31676
  return $rt_imul($this.$sign0, $this.$digits.data[0]);
31998
31677
  var$1 = new jl_ArithmeticException();
31999
- jl_Throwable__init_0(var$1, $rt_s(1626));
31678
+ jl_Throwable__init_0(var$1, $rt_s(1625));
32000
31679
  $rt_throw(var$1);
32001
31680
  };
32002
31681
  var jm_BigInteger_longValue = ($this) => {
@@ -32014,7 +31693,7 @@ var jm_BigInteger_longValueExact = ($this) => {
32014
31693
  if ($this.$numberLength <= 2 && jm_BigInteger_bitLength($this) <= 63)
32015
31694
  return jm_BigInteger_longValue($this);
32016
31695
  var$1 = new jl_ArithmeticException();
32017
- jl_Throwable__init_0(var$1, $rt_s(1627));
31696
+ jl_Throwable__init_0(var$1, $rt_s(1626));
32018
31697
  $rt_throw(var$1);
32019
31698
  };
32020
31699
  var jm_BigInteger_compareTo = ($this, $val) => {
@@ -32135,6 +31814,330 @@ var jm_BigInteger__clinit_ = () => {
32135
31814
  $i = $i + 1 | 0;
32136
31815
  }
32137
31816
  };
31817
+ var asrjo_Conversions = $rt_classWithoutFields();
31818
+ var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
31819
+ let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
31820
+ if ($f.$isNaN()) {
31821
+ $f = $env.$flags;
31822
+ $min = asrj_Flags_invalid;
31823
+ ju_GenericEnumSet_add($f, $min);
31824
+ return $max;
31825
+ }
31826
+ if ($f.$isInfinite()) {
31827
+ $env = $env.$flags;
31828
+ $copy = asrj_Flags_invalid;
31829
+ ju_GenericEnumSet_add($env, $copy);
31830
+ if ($f.$isSignMinus())
31831
+ $max = $min;
31832
+ return $max;
31833
+ }
31834
+ $copy = asrj_Environment__init_();
31835
+ $copy.$mode = $env.$mode;
31836
+ if ($f.$isZero())
31837
+ $rounded = jm_BigInteger_ZERO;
31838
+ else {
31839
+ $f = $f.$toExactFloat();
31840
+ if (asrji_ExactFloat_isZero($f))
31841
+ $rounded = jm_BigInteger_ZERO;
31842
+ else {
31843
+ if (asrji_ExactFloat_isZero($f))
31844
+ $rounded = $f;
31845
+ else {
31846
+ $rounded = asrji_ExactFloat_normalize($f);
31847
+ var$8 = $rounded.$exponent0;
31848
+ if (var$8 < 0) {
31849
+ var$8 = -var$8 | 0;
31850
+ var$9 = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($rounded.$significand, var$8), var$8);
31851
+ var$10 = jm_BigInteger_subtract($rounded.$significand, var$9);
31852
+ var$9 = asrji_ExactFloat_normalize(asrji_ExactFloat__init_($rounded.$sign, $rounded.$exponent0, var$9));
31853
+ var$11 = asrji_ExactFloat_add(var$9, asrji_ExactFloat__init_($rounded.$sign, 0, jm_BigInteger_valueOf(Long_fromInt(1))));
31854
+ var$12 = $env.$mode;
31855
+ if (var$12 === asrj_RoundingMode_zero)
31856
+ $rounded = var$9;
31857
+ else {
31858
+ var$13 = asrj_RoundingMode_max;
31859
+ if (var$12 !== var$13 && var$12 !== asrj_RoundingMode_min) {
31860
+ $rounded = jm_BigInteger_ONE;
31861
+ var$8 = var$8 - 1 | 0;
31862
+ $rounded = !jm_BigInteger_equals(var$10, jm_BigInteger_shiftLeft($rounded, var$8)) ? jm_BigInteger_compareTo(var$10, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, var$8)) <= 0 ? var$9 : var$11 : $env.$mode !== asrj_RoundingMode_away && !jm_BigInteger_testBit(var$9.$significand, 0) ? var$9 : var$11;
31863
+ } else
31864
+ $rounded = (var$12 !== var$13 ? 0 : 1) != $rounded.$sign ? var$11 : var$9;
31865
+ }
31866
+ }
31867
+ }
31868
+ $rounded = asrji_ExactFloat_normalize($rounded);
31869
+ if (asrji_ExactFloat_compareTo($rounded, $f)) {
31870
+ var$9 = $env.$flags;
31871
+ var$10 = asrj_Flags_inexact;
31872
+ ju_GenericEnumSet_add(var$9, var$10);
31873
+ }
31874
+ if (!asrji_ExactFloat_$assertionsDisabled && $rounded.$exponent0 < 0)
31875
+ $rt_throw(jl_AssertionError__init_($rt_s(1627)));
31876
+ $rounded = jm_BigInteger_multiply(jm_BigInteger_shiftLeft($rounded.$significand, $rounded.$exponent0), jm_BigInteger_valueOf(!$f.$sign ? Long_fromInt(1) : Long_fromInt(-1)));
31877
+ }
31878
+ }
31879
+ if (!(jm_BigInteger_compareTo($rounded, $max) <= 0 && jm_BigInteger_compareTo($rounded, $min) >= 0)) {
31880
+ $f = $env.$flags;
31881
+ $env = asrj_Flags_invalid;
31882
+ ju_GenericEnumSet_add($f, $env);
31883
+ } else if (!$quiet) {
31884
+ $f = $copy.$flags;
31885
+ $copy = asrj_Flags_inexact;
31886
+ if (ju_GenericEnumSet_contains($f, $copy)) {
31887
+ $f = $env.$flags;
31888
+ $env = asrj_Flags_inexact;
31889
+ ju_GenericEnumSet_add($f, $env);
31890
+ }
31891
+ }
31892
+ if (jm_BigInteger_compareTo($rounded, $max) == -1)
31893
+ $max = $rounded;
31894
+ if (jm_BigInteger_compareTo($max, $min) == 1)
31895
+ $min = $max;
31896
+ return $min;
31897
+ };
31898
+ var asrjo_Conversions_convertToInt = ($f, $env, $quiet) => {
31899
+ return jm_BigInteger_intValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_fromInt(2147483647)), jm_BigInteger_valueOf(Long_fromInt(-2147483648)), $env, $quiet));
31900
+ };
31901
+ var asrjo_Conversions_convertToUnsignedInt = ($f, $env, $quiet) => {
31902
+ return Long_lo(Long_and(jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 0)), jm_BigInteger_ZERO, $env, $quiet)), Long_create(4294967295, 0)));
31903
+ };
31904
+ var asrjo_Conversions_convertToLong = ($f, $env, $quiet) => {
31905
+ return jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 2147483647)), jm_BigInteger_valueOf(Long_create(0, 2147483648)), $env, $quiet));
31906
+ };
31907
+ var asrjo_Conversions_convertToUnsignedLong = ($f, $env, $quiet) => {
31908
+ return jm_BigInteger_longValue(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_add(jm_BigInteger_valueOf(Long_fromInt(-1)), jm_BigInteger_shiftLeft(jm_BigInteger_ONE, 64)), jm_BigInteger_ZERO, $env, $quiet));
31909
+ };
31910
+ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31911
+ let var$4;
31912
+ if (jm_BigInteger_equals($i, jm_BigInteger_ZERO))
31913
+ return $helper.$Zero();
31914
+ var$4 = new asrji_ExactFloat();
31915
+ if (jm_BigInteger_compareTo($i, jm_BigInteger_ZERO) >= 0)
31916
+ var$4.$sign = 0;
31917
+ else {
31918
+ var$4.$sign = 1;
31919
+ $i = jm_BigInteger_negate($i);
31920
+ }
31921
+ var$4.$exponent0 = 0;
31922
+ var$4.$significand = $i;
31923
+ return $helper.$fromExactFloat(var$4, $env);
31924
+ };
31925
+ function asrjt_Float64() {
31926
+ asrjt_Floating.call(this);
31927
+ this.$bits1 = Long_ZERO;
31928
+ }
31929
+ var asrjt_Float64_Zero = null;
31930
+ var asrjt_Float64_NegativeZero = null;
31931
+ var asrjt_Float64_NaN = null;
31932
+ var asrjt_Float64_Infinity = null;
31933
+ var asrjt_Float64_NegativeInfinity = null;
31934
+ var asrjt_Float64_$assertionsDisabled = 0;
31935
+ var asrjt_Float64__init_1 = ($this, $bits) => {
31936
+ $this.$bits1 = $bits;
31937
+ };
31938
+ var asrjt_Float64__init_ = (var_0) => {
31939
+ let var_1 = new asrjt_Float64();
31940
+ asrjt_Float64__init_1(var_1, var_0);
31941
+ return var_1;
31942
+ };
31943
+ var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31944
+ asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31945
+ };
31946
+ var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31947
+ let var_3 = new asrjt_Float64();
31948
+ asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31949
+ return var_3;
31950
+ };
31951
+ var asrjt_Float64_exponent = ($this) => {
31952
+ return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31953
+ };
31954
+ var asrjt_Float64_negate = ($this) => {
31955
+ return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31956
+ };
31957
+ var asrjt_Float64_isSignMinus = ($this) => {
31958
+ return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31959
+ };
31960
+ var asrjt_Float64_isInfinite = ($this) => {
31961
+ return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31962
+ };
31963
+ var asrjt_Float64_isNormal = ($this) => {
31964
+ return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31965
+ };
31966
+ var asrjt_Float64_isSubnormal = ($this) => {
31967
+ return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31968
+ };
31969
+ var asrjt_Float64_isNaN = ($this) => {
31970
+ return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31971
+ };
31972
+ var asrjt_Float64_isSignalling = ($this) => {
31973
+ if (!asrjt_Float64_isNaN($this))
31974
+ return 0;
31975
+ return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31976
+ };
31977
+ var asrjt_Float64_isZero = ($this) => {
31978
+ let var$1;
31979
+ var$1 = $this.$bits1;
31980
+ return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31981
+ };
31982
+ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31983
+ let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31984
+ if (asrji_ExactFloat_isZero($ef))
31985
+ return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31986
+ $ef = asrji_ExactFloat_normalize($ef);
31987
+ $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31988
+ if ($normalizedExponent > -1022) {
31989
+ if ($normalizedExponent > 1024) {
31990
+ $mainBits = $env.$flags;
31991
+ $roundedBits = asrj_Flags_overflow;
31992
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31993
+ $mainBits = $env.$flags;
31994
+ $roundedBits = asrj_Flags_inexact;
31995
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31996
+ asrjt_Float64$1_$callClinit();
31997
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31998
+ case 1:
31999
+ break;
32000
+ case 2:
32001
+ case 3:
32002
+ $normalizedExponent = $ef.$sign;
32003
+ if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32004
+ return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
32005
+ return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32006
+ case 4:
32007
+ case 5:
32008
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32009
+ default:
32010
+ if (!asrjt_Float64_$assertionsDisabled)
32011
+ $rt_throw(jl_AssertionError__init_($rt_s(1617)));
32012
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32013
+ }
32014
+ return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
32015
+ }
32016
+ if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
32017
+ if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
32018
+ $rt_throw(jl_AssertionError__init_($rt_s(1618)));
32019
+ $a = new asrjt_Float64();
32020
+ $normalizedExponent = $ef.$sign;
32021
+ $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
32022
+ $ef = $ef.$significand;
32023
+ asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
32024
+ return $a;
32025
+ }
32026
+ $mainBits = $env.$flags;
32027
+ $roundedBits = asrj_Flags_inexact;
32028
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
32029
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
32030
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32031
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32032
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32033
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
32034
+ $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32035
+ } else {
32036
+ if ($ef.$exponent0 > -1075) {
32037
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
32038
+ $rt_throw(jl_AssertionError__init_($rt_s(1619)));
32039
+ return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
32040
+ }
32041
+ $mainBits = $env.$flags;
32042
+ $roundedBits = asrj_Flags_inexact;
32043
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
32044
+ $mainBits = $env.$flags;
32045
+ $roundedBits = asrj_Flags_underflow;
32046
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
32047
+ $bitsToRound = -1074 - $ef.$exponent0 | 0;
32048
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32049
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32050
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32051
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32052
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
32053
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32054
+ else {
32055
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
32056
+ $rt_throw(jl_AssertionError__init_1());
32057
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
32058
+ }
32059
+ }
32060
+ asrjt_Float64$1_$callClinit();
32061
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32062
+ case 1:
32063
+ break;
32064
+ case 2:
32065
+ case 3:
32066
+ if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32067
+ return $towardsZero;
32068
+ return $awayZero;
32069
+ default:
32070
+ $ef = jm_BigInteger_ONE;
32071
+ $normalizedExponent = $bitsToRound - 1 | 0;
32072
+ if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
32073
+ if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
32074
+ return $towardsZero;
32075
+ return $awayZero;
32076
+ }
32077
+ if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
32078
+ return $towardsZero;
32079
+ return $awayZero;
32080
+ }
32081
+ return $towardsZero;
32082
+ };
32083
+ var asrjt_Float64_toExactFloat = ($this) => {
32084
+ let $sign, $exponent, $significand;
32085
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
32086
+ $rt_throw(jl_AssertionError__init_($rt_s(1620)));
32087
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
32088
+ $rt_throw(jl_AssertionError__init_($rt_s(1621)));
32089
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
32090
+ $rt_throw(jl_AssertionError__init_($rt_s(1622)));
32091
+ $sign = asrjt_Float64_isSignMinus($this);
32092
+ if (asrjt_Float64_isZero($this)) {
32093
+ $exponent = 0;
32094
+ $significand = jm_BigInteger_ZERO;
32095
+ } else if (asrjt_Float64_isNormal($this)) {
32096
+ $exponent = asrjt_Float64_exponent($this) - 52 | 0;
32097
+ $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
32098
+ } else {
32099
+ if (!asrjt_Float64_isSubnormal($this)) {
32100
+ if (asrjt_Float64_$assertionsDisabled)
32101
+ return null;
32102
+ $rt_throw(jl_AssertionError__init_($rt_s(1623)));
32103
+ }
32104
+ $exponent = asrjt_Float64_exponent($this) - 51 | 0;
32105
+ $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
32106
+ }
32107
+ return asrji_ExactFloat__init_($sign, $exponent, $significand);
32108
+ };
32109
+ var asrjt_Float64_maxPrecision = ($this) => {
32110
+ return 60;
32111
+ };
32112
+ var asrjt_Float64_negate0 = ($this) => {
32113
+ return asrjt_Float64_negate($this);
32114
+ };
32115
+ var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
32116
+ return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
32117
+ };
32118
+ var asrjt_Float64_NegativeInfinity0 = ($this) => {
32119
+ return asrjt_Float64_NegativeInfinity;
32120
+ };
32121
+ var asrjt_Float64_Infinity0 = ($this) => {
32122
+ return asrjt_Float64_Infinity;
32123
+ };
32124
+ var asrjt_Float64_NegativeZero0 = ($this) => {
32125
+ return asrjt_Float64_NegativeZero;
32126
+ };
32127
+ var asrjt_Float64_Zero0 = ($this) => {
32128
+ return asrjt_Float64_Zero;
32129
+ };
32130
+ var asrjt_Float64_NaN0 = ($this) => {
32131
+ return asrjt_Float64_NaN;
32132
+ };
32133
+ var asrjt_Float64__clinit_ = () => {
32134
+ asrjt_Float64_$assertionsDisabled = 0;
32135
+ asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
32136
+ asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
32137
+ asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
32138
+ asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32139
+ asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32140
+ };
32138
32141
  var asrjo_Arithmetic = $rt_classWithoutFields();
32139
32142
  var asrjo_Arithmetic_$assertionsDisabled = 0;
32140
32143
  var asrjo_Arithmetic_add = ($a, $b, $env) => {
@@ -32659,7 +32662,6 @@ var jm_Elementary_subtract = ($a, $aSize, $b, $bSize) => {
32659
32662
  }
32660
32663
  return $res;
32661
32664
  };
32662
- var jl_ArithmeticException = $rt_classWithoutFields(jl_RuntimeException);
32663
32665
  var jm_BitLevel = $rt_classWithoutFields();
32664
32666
  var jm_BitLevel_shiftLeft = ($source, $count) => {
32665
32667
  let $intCount, var$4, var$5, $resLength, $resDigits, var$8, var$9, var$10, var$11, var$12, $result;
@@ -32774,6 +32776,7 @@ var jm_BitLevel_shiftRight = ($source, $count) => {
32774
32776
  jm_BigInteger_cutOffLeadingZeroes($result);
32775
32777
  return $result;
32776
32778
  };
32779
+ var jl_ArithmeticException = $rt_classWithoutFields(jl_RuntimeException);
32777
32780
  var asrrs_NullString = $rt_classWithoutFields();
32778
32781
  var asrrs_NullString_get = ($statement) => {
32779
32782
  return asrrs_NullString_get0($statement, $rt_s(220));
@@ -33729,34 +33732,34 @@ function ju_Hashtable$Entry() {
33729
33732
  var ju_Hashtable$Entry_equalsKey = ($this, $aKey, $hash) => {
33730
33733
  return $this.$hashcode == jl_String_hashCode($aKey) && $this.$key.$equals($aKey) ? 1 : 0;
33731
33734
  };
33732
- var asrjt_Float32$1 = $rt_classWithoutFields();
33733
- var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33734
- var asrjt_Float32$1_$callClinit = () => {
33735
- asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33736
- asrjt_Float32$1__clinit_();
33735
+ var asrjt_Float64$1 = $rt_classWithoutFields();
33736
+ var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33737
+ var asrjt_Float64$1_$callClinit = () => {
33738
+ asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33739
+ asrjt_Float64$1__clinit_();
33737
33740
  };
33738
- var asrjt_Float32$1__clinit_ = () => {
33741
+ var asrjt_Float64$1__clinit_ = () => {
33739
33742
  let var$1, var$2;
33740
33743
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33741
33744
  var$2 = var$1.data;
33742
- asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33745
+ asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33743
33746
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33744
33747
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33745
33748
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
33746
33749
  var$2[asrj_RoundingMode_away.$ordinal0] = 4;
33747
33750
  var$2[asrj_RoundingMode_even.$ordinal0] = 5;
33748
33751
  };
33749
- var asrjt_Float64$1 = $rt_classWithoutFields();
33750
- var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33751
- var asrjt_Float64$1_$callClinit = () => {
33752
- asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33753
- asrjt_Float64$1__clinit_();
33752
+ var asrjt_Float32$1 = $rt_classWithoutFields();
33753
+ var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33754
+ var asrjt_Float32$1_$callClinit = () => {
33755
+ asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33756
+ asrjt_Float32$1__clinit_();
33754
33757
  };
33755
- var asrjt_Float64$1__clinit_ = () => {
33758
+ var asrjt_Float32$1__clinit_ = () => {
33756
33759
  let var$1, var$2;
33757
33760
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33758
33761
  var$2 = var$1.data;
33759
- asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33762
+ asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33760
33763
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33761
33764
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33762
33765
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
@@ -34896,16 +34899,6 @@ $rt_metadata([
34896
34899
  0,
34897
34900
  0,
34898
34901
  0,
34899
- asr_JsProgramStatement,
34900
- "JsProgramStatement",
34901
- 10,
34902
- jl_Object,
34903
- [],
34904
- 0,
34905
- 3,
34906
- 0,
34907
- 0,
34908
- 0,
34909
34902
  asrrh_RegisterFile,
34910
34903
  0,
34911
34904
  jl_Object,
@@ -34915,8 +34908,8 @@ $rt_metadata([
34915
34908
  0,
34916
34909
  asrrh_RegisterFile_$callClinit,
34917
34910
  0,
34918
- asr_JsStackFrame,
34919
- "JsStackFrame",
34911
+ asr_JsProgramStatement,
34912
+ "JsProgramStatement",
34920
34913
  10,
34921
34914
  jl_Object,
34922
34915
  [],
@@ -34980,45 +34973,55 @@ $rt_metadata([
34980
34973
  0,
34981
34974
  0,
34982
34975
  0,
34983
- asr_JsCompilationResult,
34984
- "JsCompilationResult",
34985
- 10,
34976
+ asr_JsRiscV$getUndoStack$lambda$_21_0,
34977
+ 0,
34986
34978
  jl_Object,
34987
- [],
34979
+ [juf_Function],
34988
34980
  0,
34989
34981
  3,
34990
34982
  0,
34991
34983
  0,
34984
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_0_apply)],
34985
+ asr_JsRiscV$getUndoStack$lambda$_21_1,
34986
+ 0,
34987
+ jl_Object,
34988
+ [juf_IntFunction],
34992
34989
  0,
34993
- asr_AssemblyException,
34990
+ 3,
34994
34991
  0,
34995
- jl_Exception,
34992
+ 0,
34993
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_1_apply)],
34994
+ asr_JsBackStep,
34995
+ "JsBackStep",
34996
+ 10,
34997
+ jl_Object,
34996
34998
  [],
34997
34999
  0,
34998
35000
  3,
34999
35001
  0,
35000
35002
  0,
35001
35003
  0,
35002
- asr_JsRiscV$getUndoStack$lambda$_21_0,
35003
- 0,
35004
+ asr_JsCompilationResult,
35005
+ "JsCompilationResult",
35006
+ 10,
35004
35007
  jl_Object,
35005
- [juf_Function],
35008
+ [],
35006
35009
  0,
35007
35010
  3,
35008
35011
  0,
35009
35012
  0,
35010
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_0_apply)],
35011
- asr_JsRiscV$getUndoStack$lambda$_21_1,
35012
35013
  0,
35013
- jl_Object,
35014
- [juf_IntFunction],
35014
+ asr_AssemblyException,
35015
+ 0,
35016
+ jl_Exception,
35017
+ [],
35015
35018
  0,
35016
35019
  3,
35017
35020
  0,
35018
35021
  0,
35019
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_1_apply)],
35020
- asr_JsBackStep,
35021
- "JsBackStep",
35022
+ 0,
35023
+ asr_JsStackFrame,
35024
+ "JsStackFrame",
35022
35025
  10,
35023
35026
  jl_Object,
35024
35027
  [],
@@ -35120,25 +35123,25 @@ $rt_metadata([
35120
35123
  0,
35121
35124
  0,
35122
35125
  0,
35123
- asrs_BackStepper,
35124
- 0,
35125
- jl_Object,
35126
+ asrrh_Register,
35127
+ "Register",
35128
+ 7,
35129
+ ju_Observable,
35126
35130
  [],
35127
35131
  0,
35128
35132
  3,
35129
35133
  0,
35130
35134
  0,
35135
+ ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35136
+ asrs_BackStepper,
35131
35137
  0,
35132
- asrrh_Register,
35133
- "Register",
35134
- 7,
35135
- ju_Observable,
35138
+ jl_Object,
35136
35139
  [],
35137
35140
  0,
35138
35141
  3,
35139
35142
  0,
35140
35143
  0,
35141
- ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35144
+ 0,
35142
35145
  jl_AutoCloseable,
35143
35146
  0,
35144
35147
  jl_Object,
@@ -35186,6 +35189,15 @@ $rt_metadata([
35186
35189
  0,
35187
35190
  0,
35188
35191
  ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35192
+ asrs_BackStepper$BackstepStack,
35193
+ 0,
35194
+ jl_Object,
35195
+ [],
35196
+ 0,
35197
+ 3,
35198
+ 0,
35199
+ 0,
35200
+ 0,
35189
35201
  asr_JsCompilationResult$_init_$lambda$_0_0,
35190
35202
  0,
35191
35203
  jl_Object,
@@ -35240,15 +35252,6 @@ $rt_metadata([
35240
35252
  0,
35241
35253
  0,
35242
35254
  0,
35243
- asrs_BackStepper$BackstepStack,
35244
- 0,
35245
- jl_Object,
35246
- [],
35247
- 0,
35248
- 3,
35249
- 0,
35250
- 0,
35251
- 0,
35252
35255
  jl_Math,
35253
35256
  0,
35254
35257
  jl_Object,
@@ -36799,7 +36802,7 @@ $rt_metadata([
36799
36802
  0,
36800
36803
  0,
36801
36804
  0,
36802
- asrrh_StackFrame,
36805
+ asr_ErrorList,
36803
36806
  0,
36804
36807
  jl_Object,
36805
36808
  [],
@@ -36808,7 +36811,7 @@ $rt_metadata([
36808
36811
  0,
36809
36812
  0,
36810
36813
  0,
36811
- asr_ErrorList,
36814
+ asrrh_StackFrame,
36812
36815
  0,
36813
36816
  jl_Object,
36814
36817
  [],
@@ -37709,15 +37712,6 @@ $rt_metadata([
37709
37712
  0,
37710
37713
  0,
37711
37714
  0,
37712
- jl_NegativeArraySizeException,
37713
- 0,
37714
- jl_RuntimeException,
37715
- [],
37716
- 0,
37717
- 3,
37718
- 0,
37719
- 0,
37720
- 0,
37721
37715
  otjc_JSObjects,
37722
37716
  0,
37723
37717
  jl_Object,
@@ -37745,6 +37739,15 @@ $rt_metadata([
37745
37739
  0,
37746
37740
  0,
37747
37741
  0,
37742
+ jl_NegativeArraySizeException,
37743
+ 0,
37744
+ jl_RuntimeException,
37745
+ [],
37746
+ 0,
37747
+ 3,
37748
+ 0,
37749
+ 0,
37750
+ 0,
37748
37751
  ju_Arrays$ArrayAsList,
37749
37752
  0,
37750
37753
  ju_AbstractList,
@@ -40615,6 +40618,24 @@ $rt_metadata([
40615
40618
  "$NaN",
40616
40619
  $rt_wrapFunction0(asrjt_Float32_NaN0)
40617
40620
  ],
40621
+ asrjo_Comparisons,
40622
+ 0,
40623
+ jl_Object,
40624
+ [],
40625
+ 0,
40626
+ 3,
40627
+ 0,
40628
+ 0,
40629
+ 0,
40630
+ jm_BigInteger,
40631
+ 0,
40632
+ jl_Number,
40633
+ [jl_Comparable, ji_Serializable],
40634
+ 0,
40635
+ 3,
40636
+ 0,
40637
+ 0,
40638
+ 0,
40618
40639
  asrjo_Conversions,
40619
40640
  0,
40620
40641
  jl_Object,
@@ -40666,24 +40687,6 @@ $rt_metadata([
40666
40687
  "$NaN",
40667
40688
  $rt_wrapFunction0(asrjt_Float64_NaN0)
40668
40689
  ],
40669
- asrjo_Comparisons,
40670
- 0,
40671
- jl_Object,
40672
- [],
40673
- 0,
40674
- 3,
40675
- 0,
40676
- 0,
40677
- 0,
40678
- jm_BigInteger,
40679
- 0,
40680
- jl_Number,
40681
- [jl_Comparable, ji_Serializable],
40682
- 0,
40683
- 3,
40684
- 0,
40685
- 0,
40686
- 0,
40687
40690
  asrjo_Arithmetic,
40688
40691
  0,
40689
40692
  jl_Object,
@@ -40767,21 +40770,21 @@ $rt_metadata([
40767
40770
  0,
40768
40771
  0,
40769
40772
  0,
40770
- jl_ArithmeticException,
40773
+ jm_BitLevel,
40771
40774
  0,
40772
- jl_RuntimeException,
40775
+ jl_Object,
40773
40776
  [],
40774
40777
  0,
40775
- 3,
40776
40778
  0,
40777
40779
  0,
40778
40780
  0,
40779
- jm_BitLevel,
40780
40781
  0,
40781
- jl_Object,
40782
- [],
40782
+ jl_ArithmeticException,
40783
40783
  0,
40784
+ jl_RuntimeException,
40785
+ [],
40784
40786
  0,
40787
+ 3,
40785
40788
  0,
40786
40789
  0,
40787
40790
  0,
@@ -40922,23 +40925,23 @@ $rt_metadata([
40922
40925
  0,
40923
40926
  0,
40924
40927
  0,
40925
- asrjt_Float32$1,
40928
+ asrjt_Float64$1,
40926
40929
  0,
40927
40930
  jl_Object,
40928
40931
  [],
40929
40932
  32,
40930
40933
  0,
40931
40934
  0,
40932
- asrjt_Float32$1_$callClinit,
40935
+ asrjt_Float64$1_$callClinit,
40933
40936
  0,
40934
- asrjt_Float64$1,
40937
+ asrjt_Float32$1,
40935
40938
  0,
40936
40939
  jl_Object,
40937
40940
  [],
40938
40941
  32,
40939
40942
  0,
40940
40943
  0,
40941
- asrjt_Float64$1_$callClinit,
40944
+ asrjt_Float32$1_$callClinit,
40942
40945
  0,
40943
40946
  jm_Multiplication,
40944
40947
  0,
@@ -41112,7 +41115,7 @@ $rt_stringPool([
41112
41115
  "store address out of range ",
41113
41116
  "store address not aligned on halfword boundary ",
41114
41117
  "Store address to text segment out of range",
41115
- "Cannot read directly from text segment!",
41118
+ "cCannot read directly from text segment!",
41116
41119
  "Load address not aligned to word boundary ",
41117
41120
  "Load address not aligned on halfword boundary ",
41118
41121
  "fetch address for text segment out of range ",
@@ -42663,10 +42666,10 @@ $rt_stringPool([
42663
42666
  "NaNs are not exact",
42664
42667
  "Zeros should be handled explicitly",
42665
42668
  "This should not be reachable",
42666
- "There can't be any fractions at this point",
42667
42669
  "Negative bit address",
42668
42670
  "BigInteger out of int range",
42669
42671
  "BigInteger out of long range",
42672
+ "There can't be any fractions at this point",
42670
42673
  "Square root of a negative number is not real",
42671
42674
  "Cannot get here",
42672
42675
  "Both should definitely be finite by this point",
@@ -42768,22 +42771,6 @@ var $rt_jso_marker = Symbol("jsoClass");
42768
42771
  Object.defineProperty(c, "source", {
42769
42772
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
42770
42773
  });
42771
- c = asr_JsStackFrame.prototype;
42772
- Object.defineProperty(c, "pc", {
42773
- get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
42774
- });
42775
- Object.defineProperty(c, "registers", {
42776
- get: $rt_callWithReceiver(asr_JsStackFrame_getRegisters$exported$2)
42777
- });
42778
- Object.defineProperty(c, "fp", {
42779
- get: $rt_callWithReceiver(asr_JsStackFrame_getFp$exported$4)
42780
- });
42781
- Object.defineProperty(c, "sp", {
42782
- get: $rt_callWithReceiver(asr_JsStackFrame_getSp$exported$3)
42783
- });
42784
- Object.defineProperty(c, "toAddress", {
42785
- get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
42786
- });
42787
42774
  c = asr_JsRiscVTokenizedLine.prototype;
42788
42775
  Object.defineProperty(c, "line", {
42789
42776
  get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
@@ -42791,6 +42778,19 @@ var $rt_jso_marker = Symbol("jsoClass");
42791
42778
  Object.defineProperty(c, "tokens", {
42792
42779
  get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42793
42780
  });
42781
+ c = asr_JsBackStep.prototype;
42782
+ Object.defineProperty(c, "pc", {
42783
+ get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42784
+ });
42785
+ Object.defineProperty(c, "action", {
42786
+ get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42787
+ });
42788
+ Object.defineProperty(c, "param1", {
42789
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42790
+ });
42791
+ Object.defineProperty(c, "param2", {
42792
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42793
+ });
42794
42794
  c = asr_JsCompilationResult.prototype;
42795
42795
  Object.defineProperty(c, "hasErrors", {
42796
42796
  get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
@@ -42801,18 +42801,21 @@ var $rt_jso_marker = Symbol("jsoClass");
42801
42801
  Object.defineProperty(c, "errors", {
42802
42802
  get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
42803
42803
  });
42804
- c = asr_JsBackStep.prototype;
42804
+ c = asr_JsStackFrame.prototype;
42805
42805
  Object.defineProperty(c, "pc", {
42806
- get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42806
+ get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
42807
42807
  });
42808
- Object.defineProperty(c, "action", {
42809
- get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42808
+ Object.defineProperty(c, "registers", {
42809
+ get: $rt_callWithReceiver(asr_JsStackFrame_getRegisters$exported$2)
42810
42810
  });
42811
- Object.defineProperty(c, "param1", {
42812
- get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42811
+ Object.defineProperty(c, "fp", {
42812
+ get: $rt_callWithReceiver(asr_JsStackFrame_getFp$exported$4)
42813
42813
  });
42814
- Object.defineProperty(c, "param2", {
42815
- get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42814
+ Object.defineProperty(c, "sp", {
42815
+ get: $rt_callWithReceiver(asr_JsStackFrame_getSp$exported$3)
42816
+ });
42817
+ Object.defineProperty(c, "toAddress", {
42818
+ get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
42816
42819
  });
42817
42820
  c = asr_JsCompilationResult$JsCompilationError.prototype;
42818
42821
  Object.defineProperty(c, "macroExpansionHistory", {
@@ -42860,26 +42863,26 @@ function $rt_export_class_JsInstruction_32() {
42860
42863
  throw new Error("Can't instantiate this class directly");
42861
42864
  }
42862
42865
  $rt_export_class_JsInstruction_32.prototype = asr_JsInstruction.prototype;
42863
- function $rt_export_class_JsProgramStatement_70() {
42866
+ function $rt_export_class_JsProgramStatement_71() {
42864
42867
  throw new Error("Can't instantiate this class directly");
42865
42868
  }
42866
- $rt_export_class_JsProgramStatement_70.prototype = asr_JsProgramStatement.prototype;
42867
- function $rt_export_class_JsStackFrame_72() {
42869
+ $rt_export_class_JsProgramStatement_71.prototype = asr_JsProgramStatement.prototype;
42870
+ function $rt_export_class_JsRiscVTokenizedLine_74() {
42868
42871
  throw new Error("Can't instantiate this class directly");
42869
42872
  }
42870
- $rt_export_class_JsStackFrame_72.prototype = asr_JsStackFrame.prototype;
42871
- function $rt_export_class_JsRiscVTokenizedLine_75() {
42873
+ $rt_export_class_JsRiscVTokenizedLine_74.prototype = asr_JsRiscVTokenizedLine.prototype;
42874
+ function $rt_export_class_JsBackStep_80() {
42872
42875
  throw new Error("Can't instantiate this class directly");
42873
42876
  }
42874
- $rt_export_class_JsRiscVTokenizedLine_75.prototype = asr_JsRiscVTokenizedLine.prototype;
42875
- function $rt_export_class_JsCompilationResult_79() {
42877
+ $rt_export_class_JsBackStep_80.prototype = asr_JsBackStep.prototype;
42878
+ function $rt_export_class_JsCompilationResult_81() {
42876
42879
  throw new Error("Can't instantiate this class directly");
42877
42880
  }
42878
- $rt_export_class_JsCompilationResult_79.prototype = asr_JsCompilationResult.prototype;
42879
- function $rt_export_class_JsBackStep_83() {
42881
+ $rt_export_class_JsCompilationResult_81.prototype = asr_JsCompilationResult.prototype;
42882
+ function $rt_export_class_JsStackFrame_83() {
42880
42883
  throw new Error("Can't instantiate this class directly");
42881
42884
  }
42882
- $rt_export_class_JsBackStep_83.prototype = asr_JsBackStep.prototype;
42885
+ $rt_export_class_JsStackFrame_83.prototype = asr_JsStackFrame.prototype;
42883
42886
  function $rt_export_class_JsCompilationError_349() {
42884
42887
  throw new Error("Can't instantiate this class directly");
42885
42888
  }
@@ -42925,15 +42928,15 @@ var RISCV = class {
42925
42928
  };
42926
42929
  var BackStepAction = /* @__PURE__ */ ((BackStepAction2) => {
42927
42930
  BackStepAction2[BackStepAction2["MEMORY_RESTORE_RAW_WORD"] = 0] = "MEMORY_RESTORE_RAW_WORD";
42928
- BackStepAction2[BackStepAction2["MEMORY_RESTORE_WORD"] = 1] = "MEMORY_RESTORE_WORD";
42929
- BackStepAction2[BackStepAction2["MEMORY_RESTORE_HALF"] = 2] = "MEMORY_RESTORE_HALF";
42930
- BackStepAction2[BackStepAction2["MEMORY_RESTORE_BYTE"] = 3] = "MEMORY_RESTORE_BYTE";
42931
- BackStepAction2[BackStepAction2["REGISTER_RESTORE"] = 4] = "REGISTER_RESTORE";
42932
- BackStepAction2[BackStepAction2["PC_RESTORE"] = 5] = "PC_RESTORE";
42933
- BackStepAction2[BackStepAction2["COPROC0_REGISTER_RESTORE"] = 6] = "COPROC0_REGISTER_RESTORE";
42934
- BackStepAction2[BackStepAction2["COPROC1_REGISTER_RESTORE"] = 7] = "COPROC1_REGISTER_RESTORE";
42935
- BackStepAction2[BackStepAction2["COPROC1_CONDITION_CLEAR"] = 8] = "COPROC1_CONDITION_CLEAR";
42936
- BackStepAction2[BackStepAction2["COPROC1_CONDITION_SET"] = 9] = "COPROC1_CONDITION_SET";
42931
+ BackStepAction2[BackStepAction2["MEMORY_RESTORE_DOUBLE_WORD"] = 1] = "MEMORY_RESTORE_DOUBLE_WORD";
42932
+ BackStepAction2[BackStepAction2["MEMORY_RESTORE_WORD"] = 2] = "MEMORY_RESTORE_WORD";
42933
+ BackStepAction2[BackStepAction2["MEMORY_RESTORE_HALF"] = 3] = "MEMORY_RESTORE_HALF";
42934
+ BackStepAction2[BackStepAction2["MEMORY_RESTORE_BYTE"] = 4] = "MEMORY_RESTORE_BYTE";
42935
+ BackStepAction2[BackStepAction2["REGISTER_RESTORE"] = 5] = "REGISTER_RESTORE";
42936
+ BackStepAction2[BackStepAction2["PC_RESTORE"] = 6] = "PC_RESTORE";
42937
+ BackStepAction2[BackStepAction2["CONTROL_AND_STATUS_REGISTER_RESTORE"] = 7] = "CONTROL_AND_STATUS_REGISTER_RESTORE";
42938
+ BackStepAction2[BackStepAction2["CONTROL_AND_STATUS_REGISTER_BACKDOOR"] = 8] = "CONTROL_AND_STATUS_REGISTER_BACKDOOR";
42939
+ BackStepAction2[BackStepAction2["FLOATING_POINT_REGISTER_RESTORE"] = 9] = "FLOATING_POINT_REGISTER_RESTORE";
42937
42940
  BackStepAction2[BackStepAction2["DO_NOTHING"] = 10] = "DO_NOTHING";
42938
42941
  return BackStepAction2;
42939
42942
  })(BackStepAction || {});