@specy/risc-v 1.0.2 → 1.0.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.js CHANGED
@@ -2743,7 +2743,7 @@ var asr_JsRiscV_getRegistersValues$exported$6 = (var$1) => {
2743
2743
  asr_JsRiscV_$callClinit();
2744
2744
  var$1;
2745
2745
  var$1 = ju_Arrays_stream(asrrh_RegisterFile_getRegisters());
2746
- var$2 = new asr_JsRiscV$getRegistersValues$lambda$_24_0();
2746
+ var$2 = new asr_JsRiscV$getRegistersValues$lambda$_25_0();
2747
2747
  var$1 = var$1;
2748
2748
  var$3 = new jusi_MappingToIntStreamImpl();
2749
2749
  var$3.$source1 = var$1;
@@ -2954,9 +2954,9 @@ var asr_JsRiscV_getUndoStack$exported$14 = (var$1) => {
2954
2954
  var$6 = var$6 + 1 | 0;
2955
2955
  }
2956
2956
  var$1 = ju_Arrays_stream(var$4);
2957
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_25_0();
2957
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_26_0();
2958
2958
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
2959
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_25_1();
2959
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_26_1();
2960
2960
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
2961
2961
  };
2962
2962
  var asr_JsRiscV_setMemoryBytes$exported$15 = (var$1, var$2, var$3) => {
@@ -3148,21 +3148,26 @@ var asr_JsRiscV_simulateWithBreakpoints$exported$27 = (var$1, var$2) => {
3148
3148
  }
3149
3149
  $rt_nativeThread().push(var$1, var$2, var$3, var$4, $ptr);
3150
3150
  };
3151
- var asr_JsRiscV_getCurrentStatementIndex$exported$28 = (var$1) => {
3151
+ var asr_JsRiscV_getProgramCounterLong$exported$28 = (var$1) => {
3152
+ asr_JsRiscV_$callClinit();
3153
+ var$1;
3154
+ return jm_BigInteger_valueOf(asrrh_Register_getValue(asrrh_RegisterFile_getProgramCounterRegister()));
3155
+ };
3156
+ var asr_JsRiscV_getCurrentStatementIndex$exported$29 = (var$1) => {
3152
3157
  asr_JsRiscV_$callClinit();
3153
3158
  return asr_RARS_getStatementAtAddress(var$1.$main, asrrh_RegisterFile_getProgramCounter()).$sourceLine0;
3154
3159
  };
3155
- var asr_JsRiscV_getProgramCounter$exported$29 = (var$1) => {
3160
+ var asr_JsRiscV_getProgramCounter$exported$30 = (var$1) => {
3156
3161
  asr_JsRiscV_$callClinit();
3157
3162
  var$1;
3158
3163
  return asrrh_RegisterFile_getProgramCounter();
3159
3164
  };
3160
- var asr_JsRiscV_getStackPointerLong$exported$30 = (var$1) => {
3165
+ var asr_JsRiscV_getStackPointerLong$exported$31 = (var$1) => {
3161
3166
  asr_JsRiscV_$callClinit();
3162
3167
  var$1;
3163
3168
  return jm_BigInteger_valueOf(asrrh_RegisterFile_getStackPointerRegister().$getValue());
3164
3169
  };
3165
- var asr_JsRiscV_getRegistersValuesLong$exported$31 = (var$1) => {
3170
+ var asr_JsRiscV_getRegistersValuesLong$exported$32 = (var$1) => {
3166
3171
  let var$2, var$3, var$4, var$5, var$6;
3167
3172
  asr_JsRiscV_$callClinit();
3168
3173
  var$1;
@@ -3177,7 +3182,7 @@ var asr_JsRiscV_getRegistersValuesLong$exported$31 = (var$1) => {
3177
3182
  }
3178
3183
  return otji_JS_wrap(var$4);
3179
3184
  };
3180
- var asr_JsRiscV_readMemoryBytes$exported$32 = (var$1, var$2, var$3) => {
3185
+ var asr_JsRiscV_readMemoryBytes$exported$33 = (var$1, var$2, var$3) => {
3181
3186
  let var$4, var$5, var$6, var$7, var$8;
3182
3187
  asr_JsRiscV_$callClinit();
3183
3188
  var$4 = var$2;
@@ -3193,7 +3198,7 @@ var asr_JsRiscV_readMemoryBytes$exported$32 = (var$1, var$2, var$3) => {
3193
3198
  }
3194
3199
  return otji_JS_wrap0(var$6);
3195
3200
  };
3196
- var asr_JsRiscV_getStackPointer$exported$33 = (var$1) => {
3201
+ var asr_JsRiscV_getStackPointer$exported$34 = (var$1) => {
3197
3202
  asr_JsRiscV_$callClinit();
3198
3203
  var$1;
3199
3204
  return Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
@@ -3312,9 +3317,9 @@ var asr_JsRiscV_getInstructionSet$exported$4 = () => {
3312
3317
  if (asr_Globals_instructionSet === null)
3313
3318
  asr_RARS_initializeRISCV();
3314
3319
  var$1 = ju_Collection_stream(asr_Globals_instructionSet.$instructionList);
3315
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_38_0();
3320
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_39_0();
3316
3321
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
3317
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_38_1();
3322
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_39_1();
3318
3323
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
3319
3324
  };
3320
3325
  var asr_JsRiscV__clinit_ = () => {
@@ -3342,11 +3347,11 @@ var asr_JsRiscV__clinit_ = () => {
3342
3347
  ju_Comparator$NaturalOrder__clinit_();
3343
3348
  asrr_BasicInstructionFormat__clinit_();
3344
3349
  jl_Long__clinit_();
3345
- asrrh_Stack__clinit_();
3350
+ asrs_Simulator$Reason__clinit_();
3346
3351
  asrrh_FloatingPointRegisterFile__clinit_();
3347
3352
  asrrh_ControlAndStatusRegisterFile__clinit_();
3348
3353
  asrrh_InterruptController__clinit_();
3349
- asrs_Simulator$Reason__clinit_();
3354
+ asrrh_Stack__clinit_();
3350
3355
  asra_Tokenizer__clinit_();
3351
3356
  asrs_Simulator__clinit_();
3352
3357
  asra_Directives__clinit_();
@@ -3364,11 +3369,11 @@ var asr_JsRiscV__clinit_ = () => {
3364
3369
  jnc_CoderResult__clinit_();
3365
3370
  jn_ByteOrder__clinit_();
3366
3371
  asrjt_Float64__clinit_();
3367
- asrjo_Arithmetic__clinit_();
3368
3372
  asrjt_Float32__clinit_();
3373
+ asrjo_Arithmetic__clinit_();
3369
3374
  asrj_RoundingMode__clinit_();
3370
- asrj_Flags__clinit_();
3371
3375
  asrji_ExactFloat__clinit_();
3376
+ asrj_Flags__clinit_();
3372
3377
  asrrs_RandomStreams__clinit_();
3373
3378
  otcit_FloatSynthesizer__clinit_();
3374
3379
  jl_Byte__clinit_();
@@ -4044,8 +4049,8 @@ var asr_RARS_simulate = ($this, $limit) => {
4044
4049
  $rt_nativeThread().push($this, $limit, var$2, $ptr);
4045
4050
  };
4046
4051
  var juf_Function = $rt_classWithoutFields(0);
4047
- var asr_JsRiscV$getInstructionSet$lambda$_38_0 = $rt_classWithoutFields();
4048
- var asr_JsRiscV$getInstructionSet$lambda$_38_0_apply = (var$0, var$1) => {
4052
+ var asr_JsRiscV$getInstructionSet$lambda$_39_0 = $rt_classWithoutFields();
4053
+ var asr_JsRiscV$getInstructionSet$lambda$_39_0_apply = (var$0, var$1) => {
4049
4054
  let var$2, var$3;
4050
4055
  var$1 = var$1;
4051
4056
  var$2 = new asr_JsInstruction();
@@ -4061,8 +4066,8 @@ var asr_JsRiscV$getInstructionSet$lambda$_38_0_apply = (var$0, var$1) => {
4061
4066
  return var$2;
4062
4067
  };
4063
4068
  var juf_IntFunction = $rt_classWithoutFields(0);
4064
- var asr_JsRiscV$getInstructionSet$lambda$_38_1 = $rt_classWithoutFields();
4065
- var asr_JsRiscV$getInstructionSet$lambda$_38_1_apply = (var$0, var$1) => {
4069
+ var asr_JsRiscV$getInstructionSet$lambda$_39_1 = $rt_classWithoutFields();
4070
+ var asr_JsRiscV$getInstructionSet$lambda$_39_1_apply = (var$0, var$1) => {
4066
4071
  asr_JsRiscV_$callClinit();
4067
4072
  return $rt_createArray(asr_JsInstruction, var$1);
4068
4073
  };
@@ -6317,7 +6322,7 @@ var asrrh_MemoryConfigurations_buildConfigurationCollection = () => {
6317
6322
  asrrh_Memory_clear(asr_Globals_memory);
6318
6323
  asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(164)), Long_fromInt(asrrh_MemoryConfiguration_getGlobalPointer(var$2)));
6319
6324
  asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(165)), Long_fromInt(asrrh_MemoryConfiguration_getStackPointer(var$2)));
6320
- asrrh_Register_changeResetValue(asrrh_RegisterFile_programCounter, Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6325
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_getProgramCounterRegister(), Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6321
6326
  asrrh_RegisterFile_initializeProgramCounter(asrrh_MemoryConfiguration_getTextBaseAddress(var$2));
6322
6327
  asrrh_RegisterFile_resetRegisters();
6323
6328
  }
@@ -7225,6 +7230,10 @@ var asrrh_RegisterFile_getProgramCounter = () => {
7225
7230
  asrrh_RegisterFile_$callClinit();
7226
7231
  return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7227
7232
  };
7233
+ var asrrh_RegisterFile_getProgramCounterRegister = () => {
7234
+ asrrh_RegisterFile_$callClinit();
7235
+ return asrrh_RegisterFile_programCounter;
7236
+ };
7228
7237
  var asrrh_RegisterFile_resetRegisters = () => {
7229
7238
  asrrh_RegisterFile_$callClinit();
7230
7239
  asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
@@ -7280,30 +7289,6 @@ var asrrh_RegisterFile__clinit_ = () => {
7280
7289
  asrrh_RegisterFile_instance = var$1;
7281
7290
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(243), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7282
7291
  };
7283
- function asr_JsStackFrame() {
7284
- let a = this;
7285
- jl_Object.call(a);
7286
- a.$pc3 = 0;
7287
- a.$toAddress0 = 0;
7288
- a.$sp = 0;
7289
- a.$fp = 0;
7290
- a.$registers = null;
7291
- }
7292
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7293
- return var$1.$pc3;
7294
- };
7295
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7296
- return var$1.$toAddress0;
7297
- };
7298
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7299
- return otji_JS_wrap0(var$1.$registers);
7300
- };
7301
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7302
- return var$1.$sp;
7303
- };
7304
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7305
- return var$1.$fp;
7306
- };
7307
7292
  function jm_BigInteger() {
7308
7293
  let a = this;
7309
7294
  jl_Number.call(a);
@@ -7676,97 +7661,6 @@ var jm_BigInteger__clinit_ = () => {
7676
7661
  $i = $i + 1 | 0;
7677
7662
  }
7678
7663
  };
7679
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7680
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7681
- let var$2, var$3, var$4, var$5;
7682
- var$1 = var$1;
7683
- asr_JsRiscV_$callClinit();
7684
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7685
- var$3 = var$2.data;
7686
- var$4 = 0;
7687
- while (var$4 < asra_TokenList_size(var$1)) {
7688
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7689
- var$4 = var$4 + 1 | 0;
7690
- }
7691
- var$5 = new asr_JsRiscVTokenizedLine();
7692
- var$5.$line0 = var$1.$processedLine;
7693
- var$5.$tokens0 = var$2;
7694
- return var$5;
7695
- };
7696
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7697
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7698
- asr_JsRiscV_$callClinit();
7699
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7700
- };
7701
- function asr_JsRiscVTokenizedLine() {
7702
- let a = this;
7703
- jl_Object.call(a);
7704
- a.$line0 = null;
7705
- a.$tokens0 = null;
7706
- }
7707
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7708
- return $rt_ustr(var$1.$line0);
7709
- };
7710
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7711
- return otji_JS_wrap(var$1.$tokens0);
7712
- };
7713
- function asr_JsCompilationResult() {
7714
- let a = this;
7715
- jl_Object.call(a);
7716
- a.$report = null;
7717
- a.$errors1 = null;
7718
- }
7719
- var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
7720
- let var$2, var$3, var$4;
7721
- $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
7722
- $errorReport = ju_Collection_stream($errorReport.$messages);
7723
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
7724
- var$2.$_06 = $this;
7725
- $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
7726
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
7727
- $errorReport = $errorReport;
7728
- var$3 = ju_ArrayList__init_();
7729
- var$4 = $errorReport;
7730
- while (true) {
7731
- $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
7732
- $errorReport.$_08 = var$2;
7733
- $errorReport.$_12 = var$3;
7734
- if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
7735
- break;
7736
- }
7737
- $this.$errors1 = var$3;
7738
- };
7739
- var asr_JsCompilationResult__init_ = (var_0) => {
7740
- let var_1 = new asr_JsCompilationResult();
7741
- asr_JsCompilationResult__init_0(var_1, var_0);
7742
- return var_1;
7743
- };
7744
- var asr_JsCompilationResult_getErrors$exported$0 = (var$1) => {
7745
- let var$2;
7746
- var$1 = var$1.$errors1;
7747
- var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
7748
- return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
7749
- };
7750
- var asr_JsCompilationResult_hasErrors$exported$1 = (var$1) => {
7751
- var$1 = var$1;
7752
- return !!(ju_AbstractCollection_isEmpty(var$1.$errors1) ? 0 : 1);
7753
- };
7754
- var asr_JsCompilationResult_getReport$exported$2 = (var$1) => {
7755
- return $rt_ustr(var$1.$report);
7756
- };
7757
- function asr_AssemblyException() {
7758
- jl_Exception.call(this);
7759
- this.$errs = null;
7760
- }
7761
- var asr_AssemblyException__init_0 = ($this, $errs) => {
7762
- jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
7763
- $this.$errs = $errs;
7764
- };
7765
- var asr_AssemblyException__init_ = (var_0) => {
7766
- let var_1 = new asr_AssemblyException();
7767
- asr_AssemblyException__init_0(var_1, var_0);
7768
- return var_1;
7769
- };
7770
7664
  var ju_Arrays = $rt_classWithoutFields();
7771
7665
  var ju_Arrays_copyOf1 = ($array, $length) => {
7772
7666
  let $result, var$4, $sz, $i;
@@ -7959,9 +7853,43 @@ var ju_Arrays_stream = ($array) => {
7959
7853
  return var$3;
7960
7854
  };
7961
7855
  var juf_ToIntFunction = $rt_classWithoutFields(0);
7962
- var asr_JsRiscV$getRegistersValues$lambda$_24_0 = $rt_classWithoutFields();
7963
- var asr_JsRiscV$getUndoStack$lambda$_25_0 = $rt_classWithoutFields();
7964
- var asr_JsRiscV$getUndoStack$lambda$_25_0_apply = (var$0, var$1) => {
7856
+ var asr_JsRiscV$getRegistersValues$lambda$_25_0 = $rt_classWithoutFields();
7857
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7858
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7859
+ let var$2, var$3, var$4, var$5;
7860
+ var$1 = var$1;
7861
+ asr_JsRiscV_$callClinit();
7862
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7863
+ var$3 = var$2.data;
7864
+ var$4 = 0;
7865
+ while (var$4 < asra_TokenList_size(var$1)) {
7866
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7867
+ var$4 = var$4 + 1 | 0;
7868
+ }
7869
+ var$5 = new asr_JsRiscVTokenizedLine();
7870
+ var$5.$line0 = var$1.$processedLine;
7871
+ var$5.$tokens0 = var$2;
7872
+ return var$5;
7873
+ };
7874
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7875
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7876
+ asr_JsRiscV_$callClinit();
7877
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7878
+ };
7879
+ function asr_JsRiscVTokenizedLine() {
7880
+ let a = this;
7881
+ jl_Object.call(a);
7882
+ a.$line0 = null;
7883
+ a.$tokens0 = null;
7884
+ }
7885
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7886
+ return $rt_ustr(var$1.$line0);
7887
+ };
7888
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7889
+ return otji_JS_wrap(var$1.$tokens0);
7890
+ };
7891
+ var asr_JsRiscV$getUndoStack$lambda$_26_0 = $rt_classWithoutFields();
7892
+ var asr_JsRiscV$getUndoStack$lambda$_26_0_apply = (var$0, var$1) => {
7965
7893
  let var$2, var$3;
7966
7894
  var$1 = var$1;
7967
7895
  var$2 = new asr_JsBackStep();
@@ -7972,8 +7900,8 @@ var asr_JsRiscV$getUndoStack$lambda$_25_0_apply = (var$0, var$1) => {
7972
7900
  var$2.$param20 = Long_lo(var$1.$param2);
7973
7901
  return var$2;
7974
7902
  };
7975
- var asr_JsRiscV$getUndoStack$lambda$_25_1 = $rt_classWithoutFields();
7976
- var asr_JsRiscV$getUndoStack$lambda$_25_1_apply = (var$0, var$1) => {
7903
+ var asr_JsRiscV$getUndoStack$lambda$_26_1 = $rt_classWithoutFields();
7904
+ var asr_JsRiscV$getUndoStack$lambda$_26_1_apply = (var$0, var$1) => {
7977
7905
  asr_JsRiscV_$callClinit();
7978
7906
  return $rt_createArray(asr_JsBackStep, var$1);
7979
7907
  };
@@ -7997,6 +7925,87 @@ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7997
7925
  var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7998
7926
  return var$1.$param10;
7999
7927
  };
7928
+ function asr_JsStackFrame() {
7929
+ let a = this;
7930
+ jl_Object.call(a);
7931
+ a.$pc3 = 0;
7932
+ a.$toAddress0 = 0;
7933
+ a.$sp = 0;
7934
+ a.$fp = 0;
7935
+ a.$registers = null;
7936
+ }
7937
+ var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7938
+ return var$1.$pc3;
7939
+ };
7940
+ var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7941
+ return var$1.$toAddress0;
7942
+ };
7943
+ var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7944
+ return otji_JS_wrap0(var$1.$registers);
7945
+ };
7946
+ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7947
+ return var$1.$sp;
7948
+ };
7949
+ var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7950
+ return var$1.$fp;
7951
+ };
7952
+ function asr_JsCompilationResult() {
7953
+ let a = this;
7954
+ jl_Object.call(a);
7955
+ a.$report = null;
7956
+ a.$errors1 = null;
7957
+ }
7958
+ var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
7959
+ let var$2, var$3, var$4;
7960
+ $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
7961
+ $errorReport = ju_Collection_stream($errorReport.$messages);
7962
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
7963
+ var$2.$_06 = $this;
7964
+ $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
7965
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
7966
+ $errorReport = $errorReport;
7967
+ var$3 = ju_ArrayList__init_();
7968
+ var$4 = $errorReport;
7969
+ while (true) {
7970
+ $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
7971
+ $errorReport.$_08 = var$2;
7972
+ $errorReport.$_12 = var$3;
7973
+ if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
7974
+ break;
7975
+ }
7976
+ $this.$errors1 = var$3;
7977
+ };
7978
+ var asr_JsCompilationResult__init_ = (var_0) => {
7979
+ let var_1 = new asr_JsCompilationResult();
7980
+ asr_JsCompilationResult__init_0(var_1, var_0);
7981
+ return var_1;
7982
+ };
7983
+ var asr_JsCompilationResult_getErrors$exported$0 = (var$1) => {
7984
+ let var$2;
7985
+ var$1 = var$1.$errors1;
7986
+ var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
7987
+ return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
7988
+ };
7989
+ var asr_JsCompilationResult_hasErrors$exported$1 = (var$1) => {
7990
+ var$1 = var$1;
7991
+ return !!(ju_AbstractCollection_isEmpty(var$1.$errors1) ? 0 : 1);
7992
+ };
7993
+ var asr_JsCompilationResult_getReport$exported$2 = (var$1) => {
7994
+ return $rt_ustr(var$1.$report);
7995
+ };
7996
+ function asr_AssemblyException() {
7997
+ jl_Exception.call(this);
7998
+ this.$errs = null;
7999
+ }
8000
+ var asr_AssemblyException__init_0 = ($this, $errs) => {
8001
+ jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
8002
+ $this.$errs = $errs;
8003
+ };
8004
+ var asr_AssemblyException__init_ = (var_0) => {
8005
+ let var_1 = new asr_AssemblyException();
8006
+ asr_AssemblyException__init_0(var_1, var_0);
8007
+ return var_1;
8008
+ };
8000
8009
  var ju_Map$Entry = $rt_classWithoutFields(0);
8001
8010
  function ju_MapEntry() {
8002
8011
  let a = this;
@@ -8651,29 +8660,6 @@ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8651
8660
  if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8652
8661
  asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8653
8662
  };
8654
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
8655
- jl_Object.call(this);
8656
- this.$_06 = null;
8657
- }
8658
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8659
- let var$2, var$3;
8660
- var$1 = var$1;
8661
- var$2 = var$0.$_06;
8662
- var$3 = new asr_JsCompilationResult$JsCompilationError();
8663
- var$3.$this$016 = var$2;
8664
- var$3.$isWarning0 = var$1.$isWarning;
8665
- var$3.$message2 = var$1.$message0;
8666
- var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8667
- var$3.$filename2 = var$1.$filename0;
8668
- var$3.$lineNumber0 = var$1.$line;
8669
- var$3.$columnNumber = var$1.$position2;
8670
- return var$3;
8671
- };
8672
- var juf_Supplier = $rt_classWithoutFields(0);
8673
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8674
- var juf_BiConsumer = $rt_classWithoutFields(0);
8675
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8676
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8677
8663
  var jl_AutoCloseable = $rt_classWithoutFields(0);
8678
8664
  var jus_BaseStream = $rt_classWithoutFields(0);
8679
8665
  var jus_Stream = $rt_classWithoutFields(0);
@@ -8874,6 +8860,29 @@ var asrs_BackStepper$BackstepStack_peek = ($this) => {
8874
8860
  jl_Object_monitorExitSync($this);
8875
8861
  }
8876
8862
  };
8863
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
8864
+ jl_Object.call(this);
8865
+ this.$_06 = null;
8866
+ }
8867
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8868
+ let var$2, var$3;
8869
+ var$1 = var$1;
8870
+ var$2 = var$0.$_06;
8871
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
8872
+ var$3.$this$016 = var$2;
8873
+ var$3.$isWarning0 = var$1.$isWarning;
8874
+ var$3.$message2 = var$1.$message0;
8875
+ var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8876
+ var$3.$filename2 = var$1.$filename0;
8877
+ var$3.$lineNumber0 = var$1.$line;
8878
+ var$3.$columnNumber = var$1.$position2;
8879
+ return var$3;
8880
+ };
8881
+ var juf_Supplier = $rt_classWithoutFields(0);
8882
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8883
+ var juf_BiConsumer = $rt_classWithoutFields(0);
8884
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8885
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8877
8886
  var jl_Math = $rt_classWithoutFields();
8878
8887
  var jl_Math_pow = ($x, $y) => {
8879
8888
  return jl_Math_powImpl($x, $y);
@@ -14184,376 +14193,6 @@ var ju_AbstractList$1_next = ($this) => {
14184
14193
  $this.$index4 = var$3 + 1 | 0;
14185
14194
  return var$2.$get0(var$3);
14186
14195
  };
14187
- var jlr_Array = $rt_classWithoutFields();
14188
- var jlr_Array_getLength = (var$1) => {
14189
- if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
14190
- $rt_throw(jl_IllegalArgumentException__init_());
14191
- }
14192
- return var$1.data.length;
14193
- };
14194
- var jlr_Array_newInstance = (var$1, $length) => {
14195
- if (var$1 === null) {
14196
- var$1 = new jl_NullPointerException();
14197
- jl_Throwable__init_(var$1);
14198
- $rt_throw(var$1);
14199
- }
14200
- if (var$1 === $rt_cls($rt_voidcls)) {
14201
- var$1 = new jl_IllegalArgumentException();
14202
- jl_Throwable__init_(var$1);
14203
- $rt_throw(var$1);
14204
- }
14205
- if ($length >= 0)
14206
- return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
14207
- var$1 = new jl_NegativeArraySizeException();
14208
- jl_Throwable__init_(var$1);
14209
- $rt_throw(var$1);
14210
- };
14211
- var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14212
- if (var$1.$meta.primitive) {
14213
- switch (var$1) {
14214
- }
14215
- ;
14216
- }
14217
- return $rt_createArray(var$1, var$2);
14218
- };
14219
- var asrrh_Stack = $rt_classWithoutFields();
14220
- var asrrh_Stack_callStack = null;
14221
- var asrrh_Stack__clinit_ = () => {
14222
- asrrh_Stack_callStack = ju_ArrayList__init_();
14223
- };
14224
- var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
14225
- var asrrh_FloatingPointRegisterFile_instance = null;
14226
- var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
14227
- asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
14228
- };
14229
- var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
14230
- let $lval;
14231
- $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
14232
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14233
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
14234
- else
14235
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval));
14236
- };
14237
- var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
14238
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14239
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
14240
- else
14241
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val));
14242
- };
14243
- var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
14244
- let $lval;
14245
- $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14246
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14247
- return 2143289344;
14248
- return Long_lo($lval);
14249
- };
14250
- var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
14251
- return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14252
- };
14253
- var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
14254
- let $lval;
14255
- $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
14256
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14257
- return 2143289344;
14258
- return Long_lo($lval);
14259
- };
14260
- var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
14261
- return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
14262
- };
14263
- var asrrh_FloatingPointRegisterFile__clinit_ = () => {
14264
- let var$1, var$2, var$3;
14265
- var$1 = new asrrh_RegisterBlock();
14266
- var$2 = $rt_createArray(asrrh_Register, 32);
14267
- var$3 = var$2.data;
14268
- var$3[0] = asrrh_Register__init_($rt_s(1083), 0, Long_ZERO);
14269
- var$3[1] = asrrh_Register__init_($rt_s(1084), 1, Long_ZERO);
14270
- var$3[2] = asrrh_Register__init_($rt_s(1085), 2, Long_ZERO);
14271
- var$3[3] = asrrh_Register__init_($rt_s(1086), 3, Long_ZERO);
14272
- var$3[4] = asrrh_Register__init_($rt_s(1087), 4, Long_ZERO);
14273
- var$3[5] = asrrh_Register__init_($rt_s(1088), 5, Long_ZERO);
14274
- var$3[6] = asrrh_Register__init_($rt_s(1089), 6, Long_ZERO);
14275
- var$3[7] = asrrh_Register__init_($rt_s(1090), 7, Long_ZERO);
14276
- var$3[8] = asrrh_Register__init_($rt_s(1091), 8, Long_ZERO);
14277
- var$3[9] = asrrh_Register__init_($rt_s(1092), 9, Long_ZERO);
14278
- var$3[10] = asrrh_Register__init_($rt_s(1042), 10, Long_ZERO);
14279
- var$3[11] = asrrh_Register__init_($rt_s(1036), 11, Long_ZERO);
14280
- var$3[12] = asrrh_Register__init_($rt_s(1093), 12, Long_ZERO);
14281
- var$3[13] = asrrh_Register__init_($rt_s(1094), 13, Long_ZERO);
14282
- var$3[14] = asrrh_Register__init_($rt_s(1095), 14, Long_ZERO);
14283
- var$3[15] = asrrh_Register__init_($rt_s(1096), 15, Long_ZERO);
14284
- var$3[16] = asrrh_Register__init_($rt_s(1097), 16, Long_ZERO);
14285
- var$3[17] = asrrh_Register__init_($rt_s(1098), 17, Long_ZERO);
14286
- var$3[18] = asrrh_Register__init_($rt_s(1099), 18, Long_ZERO);
14287
- var$3[19] = asrrh_Register__init_($rt_s(1100), 19, Long_ZERO);
14288
- var$3[20] = asrrh_Register__init_($rt_s(1101), 20, Long_ZERO);
14289
- var$3[21] = asrrh_Register__init_($rt_s(1102), 21, Long_ZERO);
14290
- var$3[22] = asrrh_Register__init_($rt_s(1103), 22, Long_ZERO);
14291
- var$3[23] = asrrh_Register__init_($rt_s(1104), 23, Long_ZERO);
14292
- var$3[24] = asrrh_Register__init_($rt_s(1105), 24, Long_ZERO);
14293
- var$3[25] = asrrh_Register__init_($rt_s(1106), 25, Long_ZERO);
14294
- var$3[26] = asrrh_Register__init_($rt_s(1107), 26, Long_ZERO);
14295
- var$3[27] = asrrh_Register__init_($rt_s(1108), 27, Long_ZERO);
14296
- var$3[28] = asrrh_Register__init_($rt_s(1109), 28, Long_ZERO);
14297
- var$3[29] = asrrh_Register__init_($rt_s(1110), 29, Long_ZERO);
14298
- var$3[30] = asrrh_Register__init_($rt_s(1111), 30, Long_ZERO);
14299
- var$3[31] = asrrh_Register__init_($rt_s(1112), 31, Long_ZERO);
14300
- asrrh_RegisterBlock__init_(var$1, 102, var$2);
14301
- asrrh_FloatingPointRegisterFile_instance = var$1;
14302
- };
14303
- var asrrh_ControlAndStatusRegisterFile = $rt_classWithoutFields();
14304
- var asrrh_ControlAndStatusRegisterFile_instance = null;
14305
- var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
14306
- let var$3;
14307
- if (asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num) instanceof asrrh_ReadOnlyRegister)
14308
- return 1;
14309
- if ($num >= 3200 && $num <= 3202)
14310
- return 1;
14311
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14312
- asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14313
- else {
14314
- var$3 = asr_Globals_program.$backStepper;
14315
- $val = asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14316
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
14317
- }
14318
- return 0;
14319
- };
14320
- var asrrh_ControlAndStatusRegisterFile_updateRegister = ($name, $val) => {
14321
- asrrh_ControlAndStatusRegisterFile_updateRegister0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14322
- };
14323
- var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0 = ($num, $val) => {
14324
- let var$3;
14325
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14326
- asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14327
- else {
14328
- var$3 = asr_Globals_program.$backStepper;
14329
- $val = asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14330
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, asrs_BackStepper_pc(var$3), $num, $val);
14331
- }
14332
- };
14333
- var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($name, $val) => {
14334
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14335
- };
14336
- var asrrh_ControlAndStatusRegisterFile_orRegister0 = ($num, $val) => {
14337
- return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_or(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), $val));
14338
- };
14339
- var asrrh_ControlAndStatusRegisterFile_orRegister = ($name, $val) => {
14340
- asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_or(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), $val));
14341
- };
14342
- var asrrh_ControlAndStatusRegisterFile_clearRegister0 = ($num, $val) => {
14343
- return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_and(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), Long_xor($val, Long_fromInt(-1))));
14344
- };
14345
- var asrrh_ControlAndStatusRegisterFile_clearRegister = ($name, $val) => {
14346
- asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_and(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), Long_xor($val, Long_fromInt(-1))));
14347
- };
14348
- var asrrh_ControlAndStatusRegisterFile_getValueLong = ($num) => {
14349
- return asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num);
14350
- };
14351
- var asrrh_ControlAndStatusRegisterFile_getValue = ($name) => {
14352
- return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name));
14353
- };
14354
- var asrrh_ControlAndStatusRegisterFile_getValueNoNotify = ($name) => {
14355
- return asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$getValueNoNotify();
14356
- };
14357
- var asrrh_ControlAndStatusRegisterFile_getRegisters = () => {
14358
- return asrrh_ControlAndStatusRegisterFile_instance.$regFile;
14359
- };
14360
- var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
14361
- let $tmp_0, var$2;
14362
- $tmp_0 = $rt_createArray(asrrh_Register, 17);
14363
- var$2 = $tmp_0.data;
14364
- var$2[0] = asrrh_MaskedRegister__init_($rt_s(679), 0, Long_ZERO, Long_fromInt(-18));
14365
- var$2[1] = null;
14366
- var$2[2] = null;
14367
- var$2[3] = asrrh_MaskedRegister__init_($rt_s(1113), 3, Long_ZERO, Long_fromInt(-256));
14368
- var$2[4] = asrrh_Register__init_($rt_s(1114), 4, Long_ZERO);
14369
- var$2[5] = asrrh_Register__init_($rt_s(1115), 5, Long_ZERO);
14370
- var$2[6] = asrrh_Register__init_($rt_s(1116), 64, Long_ZERO);
14371
- var$2[7] = asrrh_Register__init_($rt_s(680), 65, Long_ZERO);
14372
- var$2[8] = asrrh_Register__init_($rt_s(1117), 66, Long_ZERO);
14373
- var$2[9] = asrrh_Register__init_($rt_s(1118), 67, Long_ZERO);
14374
- var$2[10] = asrrh_Register__init_($rt_s(1119), 68, Long_ZERO);
14375
- var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1120), 3072, 0);
14376
- var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1121), 3073, 0);
14377
- var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1122), 3074, 0);
14378
- var$2[14] = null;
14379
- var$2[15] = null;
14380
- var$2[16] = null;
14381
- var$2[1] = asrrh_LinkedRegister__init_($rt_s(446), 1, var$2[3], Long_fromInt(31));
14382
- var$2[2] = asrrh_LinkedRegister__init_($rt_s(447), 2, var$2[3], Long_fromInt(224));
14383
- var$2[14] = asrrh_LinkedRegister__init_($rt_s(1123), 3200, var$2[11], Long_create(0, 4294967295));
14384
- var$2[15] = asrrh_LinkedRegister__init_($rt_s(1124), 3201, var$2[12], Long_create(0, 4294967295));
14385
- var$2[16] = asrrh_LinkedRegister__init_($rt_s(1125), 3202, var$2[13], Long_create(0, 4294967295));
14386
- asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
14387
- };
14388
- var asrrh_InterruptController = $rt_classWithoutFields();
14389
- var asrrh_InterruptController_lock = null;
14390
- var asrrh_InterruptController_externalPending = 0;
14391
- var asrrh_InterruptController_externalValue = 0;
14392
- var asrrh_InterruptController_timerPending = 0;
14393
- var asrrh_InterruptController_timerValue = 0;
14394
- var asrrh_InterruptController_trapPending = 0;
14395
- var asrrh_InterruptController_trapSE = null;
14396
- var asrrh_InterruptController_trapPC = 0;
14397
- var asrrh_InterruptController_$assertionsDisabled = 0;
14398
- var asrrh_InterruptController_registerSynchronousTrap = ($se, $pc) => {
14399
- let var$3, $$je;
14400
- var$3 = asrrh_InterruptController_lock;
14401
- jl_Object_monitorEnterSync(var$3);
14402
- a: {
14403
- b: {
14404
- try {
14405
- if (!asrrh_InterruptController_trapPending)
14406
- break b;
14407
- jl_Object_monitorExitSync(var$3);
14408
- } catch ($$e) {
14409
- $$je = $rt_wrapException($$e);
14410
- $se = $$je;
14411
- break a;
14412
- }
14413
- return 0;
14414
- }
14415
- try {
14416
- asrrh_InterruptController_trapSE = $se;
14417
- asrrh_InterruptController_trapPC = $pc;
14418
- asrrh_InterruptController_trapPending = 1;
14419
- jl_Object_monitorExitSync(var$3);
14420
- } catch ($$e) {
14421
- $$je = $rt_wrapException($$e);
14422
- $se = $$je;
14423
- break a;
14424
- }
14425
- return 1;
14426
- }
14427
- jl_Object_monitorExitSync(var$3);
14428
- $rt_throw($se);
14429
- };
14430
- var asrrh_InterruptController_externalPending0 = () => {
14431
- let var$1, var$2, var$3, $$je;
14432
- var$1 = asrrh_InterruptController_lock;
14433
- jl_Object_monitorEnterSync(var$1);
14434
- a: {
14435
- try {
14436
- var$2 = asrrh_InterruptController_externalPending;
14437
- jl_Object_monitorExitSync(var$1);
14438
- } catch ($$e) {
14439
- $$je = $rt_wrapException($$e);
14440
- var$3 = $$je;
14441
- break a;
14442
- }
14443
- return var$2;
14444
- }
14445
- jl_Object_monitorExitSync(var$1);
14446
- $rt_throw(var$3);
14447
- };
14448
- var asrrh_InterruptController_timerPending0 = () => {
14449
- let var$1, var$2, var$3, $$je;
14450
- var$1 = asrrh_InterruptController_lock;
14451
- jl_Object_monitorEnterSync(var$1);
14452
- a: {
14453
- try {
14454
- var$2 = asrrh_InterruptController_timerPending;
14455
- jl_Object_monitorExitSync(var$1);
14456
- } catch ($$e) {
14457
- $$je = $rt_wrapException($$e);
14458
- var$3 = $$je;
14459
- break a;
14460
- }
14461
- return var$2;
14462
- }
14463
- jl_Object_monitorExitSync(var$1);
14464
- $rt_throw(var$3);
14465
- };
14466
- var asrrh_InterruptController_trapPending0 = () => {
14467
- let var$1, var$2, var$3, $$je;
14468
- var$1 = asrrh_InterruptController_lock;
14469
- jl_Object_monitorEnterSync(var$1);
14470
- a: {
14471
- try {
14472
- var$2 = asrrh_InterruptController_trapPending;
14473
- jl_Object_monitorExitSync(var$1);
14474
- } catch ($$e) {
14475
- $$je = $rt_wrapException($$e);
14476
- var$3 = $$je;
14477
- break a;
14478
- }
14479
- return var$2;
14480
- }
14481
- jl_Object_monitorExitSync(var$1);
14482
- $rt_throw(var$3);
14483
- };
14484
- var asrrh_InterruptController_claimExternal = () => {
14485
- let var$1, var$2, var$3, $$je;
14486
- var$1 = asrrh_InterruptController_lock;
14487
- jl_Object_monitorEnterSync(var$1);
14488
- a: {
14489
- try {
14490
- if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14491
- $rt_throw(jl_AssertionError__init_($rt_s(1126)));
14492
- asrrh_InterruptController_externalPending = 0;
14493
- var$2 = asrrh_InterruptController_externalValue;
14494
- jl_Object_monitorExitSync(var$1);
14495
- } catch ($$e) {
14496
- $$je = $rt_wrapException($$e);
14497
- var$3 = $$je;
14498
- break a;
14499
- }
14500
- return var$2;
14501
- }
14502
- jl_Object_monitorExitSync(var$1);
14503
- $rt_throw(var$3);
14504
- };
14505
- var asrrh_InterruptController_claimTimer = () => {
14506
- let var$1, var$2, var$3, $$je;
14507
- var$1 = asrrh_InterruptController_lock;
14508
- jl_Object_monitorEnterSync(var$1);
14509
- a: {
14510
- try {
14511
- if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14512
- $rt_throw(jl_AssertionError__init_($rt_s(1127)));
14513
- asrrh_InterruptController_timerPending = 0;
14514
- var$2 = asrrh_InterruptController_timerValue;
14515
- jl_Object_monitorExitSync(var$1);
14516
- } catch ($$e) {
14517
- $$je = $rt_wrapException($$e);
14518
- var$3 = $$je;
14519
- break a;
14520
- }
14521
- return var$2;
14522
- }
14523
- jl_Object_monitorExitSync(var$1);
14524
- $rt_throw(var$3);
14525
- };
14526
- var asrrh_InterruptController_claimTrap = () => {
14527
- let var$1, var$2, var$3, $$je;
14528
- var$1 = asrrh_InterruptController_lock;
14529
- jl_Object_monitorEnterSync(var$1);
14530
- a: {
14531
- try {
14532
- var$2 = asrrh_InterruptController_$assertionsDisabled;
14533
- if (!var$2 && !asrrh_InterruptController_trapPending)
14534
- $rt_throw(jl_AssertionError__init_($rt_s(1128)));
14535
- if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14536
- $rt_throw(jl_AssertionError__init_($rt_s(1129)));
14537
- asrrh_InterruptController_trapPending = 0;
14538
- var$3 = asrrh_InterruptController_trapSE;
14539
- jl_Object_monitorExitSync(var$1);
14540
- } catch ($$e) {
14541
- $$je = $rt_wrapException($$e);
14542
- var$3 = $$je;
14543
- break a;
14544
- }
14545
- return var$3;
14546
- }
14547
- jl_Object_monitorExitSync(var$1);
14548
- $rt_throw(var$3);
14549
- };
14550
- var asrrh_InterruptController__clinit_ = () => {
14551
- asrrh_InterruptController_$assertionsDisabled = 0;
14552
- asrrh_InterruptController_lock = new jl_Object();
14553
- asrrh_InterruptController_externalPending = 0;
14554
- asrrh_InterruptController_timerPending = 0;
14555
- asrrh_InterruptController_trapPending = 0;
14556
- };
14557
14196
  var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14558
14197
  var asrs_Simulator$Reason_BREAKPOINT = null;
14559
14198
  var asrs_Simulator$Reason_EXCEPTION = null;
@@ -14569,25 +14208,25 @@ var asrs_Simulator$Reason_values = () => {
14569
14208
  var asrs_Simulator$Reason__clinit_ = () => {
14570
14209
  let var$1, var$2, var$3;
14571
14210
  var$1 = new asrs_Simulator$Reason();
14572
- jl_Enum__init_(var$1, $rt_s(1130), 0);
14211
+ jl_Enum__init_(var$1, $rt_s(1083), 0);
14573
14212
  asrs_Simulator$Reason_BREAKPOINT = var$1;
14574
14213
  var$1 = new asrs_Simulator$Reason();
14575
- jl_Enum__init_(var$1, $rt_s(1131), 1);
14214
+ jl_Enum__init_(var$1, $rt_s(1084), 1);
14576
14215
  asrs_Simulator$Reason_EXCEPTION = var$1;
14577
14216
  var$1 = new asrs_Simulator$Reason();
14578
- jl_Enum__init_(var$1, $rt_s(1132), 2);
14217
+ jl_Enum__init_(var$1, $rt_s(1085), 2);
14579
14218
  asrs_Simulator$Reason_MAX_STEPS = var$1;
14580
14219
  var$1 = new asrs_Simulator$Reason();
14581
- jl_Enum__init_(var$1, $rt_s(1133), 3);
14220
+ jl_Enum__init_(var$1, $rt_s(1086), 3);
14582
14221
  asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14583
14222
  var$1 = new asrs_Simulator$Reason();
14584
- jl_Enum__init_(var$1, $rt_s(1134), 4);
14223
+ jl_Enum__init_(var$1, $rt_s(1087), 4);
14585
14224
  asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14586
14225
  var$1 = new asrs_Simulator$Reason();
14587
- jl_Enum__init_(var$1, $rt_s(1135), 5);
14226
+ jl_Enum__init_(var$1, $rt_s(1088), 5);
14588
14227
  asrs_Simulator$Reason_PAUSE = var$1;
14589
14228
  var$1 = new asrs_Simulator$Reason();
14590
- jl_Enum__init_(var$1, $rt_s(1136), 6);
14229
+ jl_Enum__init_(var$1, $rt_s(1089), 6);
14591
14230
  asrs_Simulator$Reason_STOP = var$1;
14592
14231
  var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14593
14232
  var$3 = var$2.data;
@@ -14600,6 +14239,376 @@ var asrs_Simulator$Reason__clinit_ = () => {
14600
14239
  var$3[6] = var$1;
14601
14240
  asrs_Simulator$Reason_$VALUES = var$2;
14602
14241
  };
14242
+ var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
14243
+ var asrrh_FloatingPointRegisterFile_instance = null;
14244
+ var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
14245
+ asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
14246
+ };
14247
+ var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
14248
+ let $lval;
14249
+ $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
14250
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14251
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
14252
+ else
14253
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval));
14254
+ };
14255
+ var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
14256
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14257
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
14258
+ else
14259
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val));
14260
+ };
14261
+ var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
14262
+ let $lval;
14263
+ $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14264
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14265
+ return 2143289344;
14266
+ return Long_lo($lval);
14267
+ };
14268
+ var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
14269
+ return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14270
+ };
14271
+ var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
14272
+ let $lval;
14273
+ $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
14274
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14275
+ return 2143289344;
14276
+ return Long_lo($lval);
14277
+ };
14278
+ var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
14279
+ return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
14280
+ };
14281
+ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
14282
+ let var$1, var$2, var$3;
14283
+ var$1 = new asrrh_RegisterBlock();
14284
+ var$2 = $rt_createArray(asrrh_Register, 32);
14285
+ var$3 = var$2.data;
14286
+ var$3[0] = asrrh_Register__init_($rt_s(1090), 0, Long_ZERO);
14287
+ var$3[1] = asrrh_Register__init_($rt_s(1091), 1, Long_ZERO);
14288
+ var$3[2] = asrrh_Register__init_($rt_s(1092), 2, Long_ZERO);
14289
+ var$3[3] = asrrh_Register__init_($rt_s(1093), 3, Long_ZERO);
14290
+ var$3[4] = asrrh_Register__init_($rt_s(1094), 4, Long_ZERO);
14291
+ var$3[5] = asrrh_Register__init_($rt_s(1095), 5, Long_ZERO);
14292
+ var$3[6] = asrrh_Register__init_($rt_s(1096), 6, Long_ZERO);
14293
+ var$3[7] = asrrh_Register__init_($rt_s(1097), 7, Long_ZERO);
14294
+ var$3[8] = asrrh_Register__init_($rt_s(1098), 8, Long_ZERO);
14295
+ var$3[9] = asrrh_Register__init_($rt_s(1099), 9, Long_ZERO);
14296
+ var$3[10] = asrrh_Register__init_($rt_s(1042), 10, Long_ZERO);
14297
+ var$3[11] = asrrh_Register__init_($rt_s(1036), 11, Long_ZERO);
14298
+ var$3[12] = asrrh_Register__init_($rt_s(1100), 12, Long_ZERO);
14299
+ var$3[13] = asrrh_Register__init_($rt_s(1101), 13, Long_ZERO);
14300
+ var$3[14] = asrrh_Register__init_($rt_s(1102), 14, Long_ZERO);
14301
+ var$3[15] = asrrh_Register__init_($rt_s(1103), 15, Long_ZERO);
14302
+ var$3[16] = asrrh_Register__init_($rt_s(1104), 16, Long_ZERO);
14303
+ var$3[17] = asrrh_Register__init_($rt_s(1105), 17, Long_ZERO);
14304
+ var$3[18] = asrrh_Register__init_($rt_s(1106), 18, Long_ZERO);
14305
+ var$3[19] = asrrh_Register__init_($rt_s(1107), 19, Long_ZERO);
14306
+ var$3[20] = asrrh_Register__init_($rt_s(1108), 20, Long_ZERO);
14307
+ var$3[21] = asrrh_Register__init_($rt_s(1109), 21, Long_ZERO);
14308
+ var$3[22] = asrrh_Register__init_($rt_s(1110), 22, Long_ZERO);
14309
+ var$3[23] = asrrh_Register__init_($rt_s(1111), 23, Long_ZERO);
14310
+ var$3[24] = asrrh_Register__init_($rt_s(1112), 24, Long_ZERO);
14311
+ var$3[25] = asrrh_Register__init_($rt_s(1113), 25, Long_ZERO);
14312
+ var$3[26] = asrrh_Register__init_($rt_s(1114), 26, Long_ZERO);
14313
+ var$3[27] = asrrh_Register__init_($rt_s(1115), 27, Long_ZERO);
14314
+ var$3[28] = asrrh_Register__init_($rt_s(1116), 28, Long_ZERO);
14315
+ var$3[29] = asrrh_Register__init_($rt_s(1117), 29, Long_ZERO);
14316
+ var$3[30] = asrrh_Register__init_($rt_s(1118), 30, Long_ZERO);
14317
+ var$3[31] = asrrh_Register__init_($rt_s(1119), 31, Long_ZERO);
14318
+ asrrh_RegisterBlock__init_(var$1, 102, var$2);
14319
+ asrrh_FloatingPointRegisterFile_instance = var$1;
14320
+ };
14321
+ var asrrh_ControlAndStatusRegisterFile = $rt_classWithoutFields();
14322
+ var asrrh_ControlAndStatusRegisterFile_instance = null;
14323
+ var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
14324
+ let var$3;
14325
+ if (asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num) instanceof asrrh_ReadOnlyRegister)
14326
+ return 1;
14327
+ if ($num >= 3200 && $num <= 3202)
14328
+ return 1;
14329
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14330
+ asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14331
+ else {
14332
+ var$3 = asr_Globals_program.$backStepper;
14333
+ $val = asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14334
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
14335
+ }
14336
+ return 0;
14337
+ };
14338
+ var asrrh_ControlAndStatusRegisterFile_updateRegister = ($name, $val) => {
14339
+ asrrh_ControlAndStatusRegisterFile_updateRegister0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14340
+ };
14341
+ var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0 = ($num, $val) => {
14342
+ let var$3;
14343
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14344
+ asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14345
+ else {
14346
+ var$3 = asr_Globals_program.$backStepper;
14347
+ $val = asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14348
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, asrs_BackStepper_pc(var$3), $num, $val);
14349
+ }
14350
+ };
14351
+ var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($name, $val) => {
14352
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14353
+ };
14354
+ var asrrh_ControlAndStatusRegisterFile_orRegister0 = ($num, $val) => {
14355
+ return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_or(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), $val));
14356
+ };
14357
+ var asrrh_ControlAndStatusRegisterFile_orRegister = ($name, $val) => {
14358
+ asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_or(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), $val));
14359
+ };
14360
+ var asrrh_ControlAndStatusRegisterFile_clearRegister0 = ($num, $val) => {
14361
+ return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_and(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), Long_xor($val, Long_fromInt(-1))));
14362
+ };
14363
+ var asrrh_ControlAndStatusRegisterFile_clearRegister = ($name, $val) => {
14364
+ asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_and(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), Long_xor($val, Long_fromInt(-1))));
14365
+ };
14366
+ var asrrh_ControlAndStatusRegisterFile_getValueLong = ($num) => {
14367
+ return asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num);
14368
+ };
14369
+ var asrrh_ControlAndStatusRegisterFile_getValue = ($name) => {
14370
+ return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name));
14371
+ };
14372
+ var asrrh_ControlAndStatusRegisterFile_getValueNoNotify = ($name) => {
14373
+ return asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$getValueNoNotify();
14374
+ };
14375
+ var asrrh_ControlAndStatusRegisterFile_getRegisters = () => {
14376
+ return asrrh_ControlAndStatusRegisterFile_instance.$regFile;
14377
+ };
14378
+ var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
14379
+ let $tmp_0, var$2;
14380
+ $tmp_0 = $rt_createArray(asrrh_Register, 17);
14381
+ var$2 = $tmp_0.data;
14382
+ var$2[0] = asrrh_MaskedRegister__init_($rt_s(679), 0, Long_ZERO, Long_fromInt(-18));
14383
+ var$2[1] = null;
14384
+ var$2[2] = null;
14385
+ var$2[3] = asrrh_MaskedRegister__init_($rt_s(1120), 3, Long_ZERO, Long_fromInt(-256));
14386
+ var$2[4] = asrrh_Register__init_($rt_s(1121), 4, Long_ZERO);
14387
+ var$2[5] = asrrh_Register__init_($rt_s(1122), 5, Long_ZERO);
14388
+ var$2[6] = asrrh_Register__init_($rt_s(1123), 64, Long_ZERO);
14389
+ var$2[7] = asrrh_Register__init_($rt_s(680), 65, Long_ZERO);
14390
+ var$2[8] = asrrh_Register__init_($rt_s(1124), 66, Long_ZERO);
14391
+ var$2[9] = asrrh_Register__init_($rt_s(1125), 67, Long_ZERO);
14392
+ var$2[10] = asrrh_Register__init_($rt_s(1126), 68, Long_ZERO);
14393
+ var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1127), 3072, 0);
14394
+ var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1128), 3073, 0);
14395
+ var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1129), 3074, 0);
14396
+ var$2[14] = null;
14397
+ var$2[15] = null;
14398
+ var$2[16] = null;
14399
+ var$2[1] = asrrh_LinkedRegister__init_($rt_s(446), 1, var$2[3], Long_fromInt(31));
14400
+ var$2[2] = asrrh_LinkedRegister__init_($rt_s(447), 2, var$2[3], Long_fromInt(224));
14401
+ var$2[14] = asrrh_LinkedRegister__init_($rt_s(1130), 3200, var$2[11], Long_create(0, 4294967295));
14402
+ var$2[15] = asrrh_LinkedRegister__init_($rt_s(1131), 3201, var$2[12], Long_create(0, 4294967295));
14403
+ var$2[16] = asrrh_LinkedRegister__init_($rt_s(1132), 3202, var$2[13], Long_create(0, 4294967295));
14404
+ asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
14405
+ };
14406
+ var asrrh_InterruptController = $rt_classWithoutFields();
14407
+ var asrrh_InterruptController_lock = null;
14408
+ var asrrh_InterruptController_externalPending = 0;
14409
+ var asrrh_InterruptController_externalValue = 0;
14410
+ var asrrh_InterruptController_timerPending = 0;
14411
+ var asrrh_InterruptController_timerValue = 0;
14412
+ var asrrh_InterruptController_trapPending = 0;
14413
+ var asrrh_InterruptController_trapSE = null;
14414
+ var asrrh_InterruptController_trapPC = 0;
14415
+ var asrrh_InterruptController_$assertionsDisabled = 0;
14416
+ var asrrh_InterruptController_registerSynchronousTrap = ($se, $pc) => {
14417
+ let var$3, $$je;
14418
+ var$3 = asrrh_InterruptController_lock;
14419
+ jl_Object_monitorEnterSync(var$3);
14420
+ a: {
14421
+ b: {
14422
+ try {
14423
+ if (!asrrh_InterruptController_trapPending)
14424
+ break b;
14425
+ jl_Object_monitorExitSync(var$3);
14426
+ } catch ($$e) {
14427
+ $$je = $rt_wrapException($$e);
14428
+ $se = $$je;
14429
+ break a;
14430
+ }
14431
+ return 0;
14432
+ }
14433
+ try {
14434
+ asrrh_InterruptController_trapSE = $se;
14435
+ asrrh_InterruptController_trapPC = $pc;
14436
+ asrrh_InterruptController_trapPending = 1;
14437
+ jl_Object_monitorExitSync(var$3);
14438
+ } catch ($$e) {
14439
+ $$je = $rt_wrapException($$e);
14440
+ $se = $$je;
14441
+ break a;
14442
+ }
14443
+ return 1;
14444
+ }
14445
+ jl_Object_monitorExitSync(var$3);
14446
+ $rt_throw($se);
14447
+ };
14448
+ var asrrh_InterruptController_externalPending0 = () => {
14449
+ let var$1, var$2, var$3, $$je;
14450
+ var$1 = asrrh_InterruptController_lock;
14451
+ jl_Object_monitorEnterSync(var$1);
14452
+ a: {
14453
+ try {
14454
+ var$2 = asrrh_InterruptController_externalPending;
14455
+ jl_Object_monitorExitSync(var$1);
14456
+ } catch ($$e) {
14457
+ $$je = $rt_wrapException($$e);
14458
+ var$3 = $$je;
14459
+ break a;
14460
+ }
14461
+ return var$2;
14462
+ }
14463
+ jl_Object_monitorExitSync(var$1);
14464
+ $rt_throw(var$3);
14465
+ };
14466
+ var asrrh_InterruptController_timerPending0 = () => {
14467
+ let var$1, var$2, var$3, $$je;
14468
+ var$1 = asrrh_InterruptController_lock;
14469
+ jl_Object_monitorEnterSync(var$1);
14470
+ a: {
14471
+ try {
14472
+ var$2 = asrrh_InterruptController_timerPending;
14473
+ jl_Object_monitorExitSync(var$1);
14474
+ } catch ($$e) {
14475
+ $$je = $rt_wrapException($$e);
14476
+ var$3 = $$je;
14477
+ break a;
14478
+ }
14479
+ return var$2;
14480
+ }
14481
+ jl_Object_monitorExitSync(var$1);
14482
+ $rt_throw(var$3);
14483
+ };
14484
+ var asrrh_InterruptController_trapPending0 = () => {
14485
+ let var$1, var$2, var$3, $$je;
14486
+ var$1 = asrrh_InterruptController_lock;
14487
+ jl_Object_monitorEnterSync(var$1);
14488
+ a: {
14489
+ try {
14490
+ var$2 = asrrh_InterruptController_trapPending;
14491
+ jl_Object_monitorExitSync(var$1);
14492
+ } catch ($$e) {
14493
+ $$je = $rt_wrapException($$e);
14494
+ var$3 = $$je;
14495
+ break a;
14496
+ }
14497
+ return var$2;
14498
+ }
14499
+ jl_Object_monitorExitSync(var$1);
14500
+ $rt_throw(var$3);
14501
+ };
14502
+ var asrrh_InterruptController_claimExternal = () => {
14503
+ let var$1, var$2, var$3, $$je;
14504
+ var$1 = asrrh_InterruptController_lock;
14505
+ jl_Object_monitorEnterSync(var$1);
14506
+ a: {
14507
+ try {
14508
+ if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14509
+ $rt_throw(jl_AssertionError__init_($rt_s(1133)));
14510
+ asrrh_InterruptController_externalPending = 0;
14511
+ var$2 = asrrh_InterruptController_externalValue;
14512
+ jl_Object_monitorExitSync(var$1);
14513
+ } catch ($$e) {
14514
+ $$je = $rt_wrapException($$e);
14515
+ var$3 = $$je;
14516
+ break a;
14517
+ }
14518
+ return var$2;
14519
+ }
14520
+ jl_Object_monitorExitSync(var$1);
14521
+ $rt_throw(var$3);
14522
+ };
14523
+ var asrrh_InterruptController_claimTimer = () => {
14524
+ let var$1, var$2, var$3, $$je;
14525
+ var$1 = asrrh_InterruptController_lock;
14526
+ jl_Object_monitorEnterSync(var$1);
14527
+ a: {
14528
+ try {
14529
+ if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14530
+ $rt_throw(jl_AssertionError__init_($rt_s(1134)));
14531
+ asrrh_InterruptController_timerPending = 0;
14532
+ var$2 = asrrh_InterruptController_timerValue;
14533
+ jl_Object_monitorExitSync(var$1);
14534
+ } catch ($$e) {
14535
+ $$je = $rt_wrapException($$e);
14536
+ var$3 = $$je;
14537
+ break a;
14538
+ }
14539
+ return var$2;
14540
+ }
14541
+ jl_Object_monitorExitSync(var$1);
14542
+ $rt_throw(var$3);
14543
+ };
14544
+ var asrrh_InterruptController_claimTrap = () => {
14545
+ let var$1, var$2, var$3, $$je;
14546
+ var$1 = asrrh_InterruptController_lock;
14547
+ jl_Object_monitorEnterSync(var$1);
14548
+ a: {
14549
+ try {
14550
+ var$2 = asrrh_InterruptController_$assertionsDisabled;
14551
+ if (!var$2 && !asrrh_InterruptController_trapPending)
14552
+ $rt_throw(jl_AssertionError__init_($rt_s(1135)));
14553
+ if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14554
+ $rt_throw(jl_AssertionError__init_($rt_s(1136)));
14555
+ asrrh_InterruptController_trapPending = 0;
14556
+ var$3 = asrrh_InterruptController_trapSE;
14557
+ jl_Object_monitorExitSync(var$1);
14558
+ } catch ($$e) {
14559
+ $$je = $rt_wrapException($$e);
14560
+ var$3 = $$je;
14561
+ break a;
14562
+ }
14563
+ return var$3;
14564
+ }
14565
+ jl_Object_monitorExitSync(var$1);
14566
+ $rt_throw(var$3);
14567
+ };
14568
+ var asrrh_InterruptController__clinit_ = () => {
14569
+ asrrh_InterruptController_$assertionsDisabled = 0;
14570
+ asrrh_InterruptController_lock = new jl_Object();
14571
+ asrrh_InterruptController_externalPending = 0;
14572
+ asrrh_InterruptController_timerPending = 0;
14573
+ asrrh_InterruptController_trapPending = 0;
14574
+ };
14575
+ var asrrh_Stack = $rt_classWithoutFields();
14576
+ var asrrh_Stack_callStack = null;
14577
+ var asrrh_Stack__clinit_ = () => {
14578
+ asrrh_Stack_callStack = ju_ArrayList__init_();
14579
+ };
14580
+ var jlr_Array = $rt_classWithoutFields();
14581
+ var jlr_Array_getLength = (var$1) => {
14582
+ if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
14583
+ $rt_throw(jl_IllegalArgumentException__init_());
14584
+ }
14585
+ return var$1.data.length;
14586
+ };
14587
+ var jlr_Array_newInstance = (var$1, $length) => {
14588
+ if (var$1 === null) {
14589
+ var$1 = new jl_NullPointerException();
14590
+ jl_Throwable__init_(var$1);
14591
+ $rt_throw(var$1);
14592
+ }
14593
+ if (var$1 === $rt_cls($rt_voidcls)) {
14594
+ var$1 = new jl_IllegalArgumentException();
14595
+ jl_Throwable__init_(var$1);
14596
+ $rt_throw(var$1);
14597
+ }
14598
+ if ($length >= 0)
14599
+ return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
14600
+ var$1 = new jl_NegativeArraySizeException();
14601
+ jl_Throwable__init_(var$1);
14602
+ $rt_throw(var$1);
14603
+ };
14604
+ var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14605
+ if (var$1.$meta.primitive) {
14606
+ switch (var$1) {
14607
+ }
14608
+ ;
14609
+ }
14610
+ return $rt_createArray(var$1, var$2);
14611
+ };
14603
14612
  function jur_Pattern() {
14604
14613
  let a = this;
14605
14614
  jl_Object.call(a);
@@ -14612,16 +14621,16 @@ function jur_Pattern() {
14612
14621
  a.$consCount = 0;
14613
14622
  a.$start2 = null;
14614
14623
  }
14615
- var jur_Pattern_matcher = ($this, $input) => {
14624
+ var jur_Pattern_matcher = ($this, var$1) => {
14616
14625
  let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
14617
14626
  var$2 = new jur_Matcher();
14618
14627
  var$2.$leftBound0 = -1;
14619
14628
  var$2.$rightBound0 = -1;
14620
14629
  var$2.$pat = $this;
14621
14630
  var$2.$start6 = $this.$start2;
14622
- var$2.$string1 = $input;
14631
+ var$2.$string1 = var$1;
14623
14632
  var$2.$leftBound0 = 0;
14624
- var$3 = $input.$nativeString.length;
14633
+ var$3 = var$1.$nativeString.length;
14625
14634
  var$2.$rightBound0 = var$3;
14626
14635
  var$4 = new jur_MatchResultImpl();
14627
14636
  var$5 = var$2.$leftBound0;
@@ -14638,7 +14647,7 @@ var jur_Pattern_matcher = ($this, $input) => {
14638
14647
  if (var$7 > 0)
14639
14648
  var$4.$compQuantCounters = $rt_createIntArray(var$7);
14640
14649
  ju_Arrays_fill(var$4.$groupBounds, -1);
14641
- jur_MatchResultImpl_reset(var$4, $input, var$5, var$3);
14650
+ jur_MatchResultImpl_reset(var$4, var$1, var$5, var$3);
14642
14651
  var$2.$matchResult = var$4;
14643
14652
  var$4.$anchoringBounds = 1;
14644
14653
  return var$2;
@@ -24411,10 +24420,10 @@ var asrs_Simulator$SimThread_handleTrap = ($this, $se, $pc) => {
24411
24420
  if (!$utvec && $se.$cause < 0)
24412
24421
  $rt_throw(jl_AssertionError__init_($rt_s(1506)));
24413
24422
  a: {
24414
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1117), Long_fromInt($se.$cause));
24423
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1124), Long_fromInt($se.$cause));
24415
24424
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24416
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($se.$value5));
24417
- $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1115)) & -4;
24425
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($se.$value5));
24426
+ $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122)) & -4;
24418
24427
  $exceptionHandler = null;
24419
24428
  if (!(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1))
24420
24429
  var$6 = $exceptionHandler;
@@ -24450,12 +24459,12 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
24450
24459
  if (!$mode && !($cause & -2147483648))
24451
24460
  $rt_throw(jl_AssertionError__init_($rt_s(1507)));
24452
24461
  $code = $cause & 2147483647;
24453
- if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1114)) & 1 << $code))
24462
+ if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1121)) & 1 << $code))
24454
24463
  $rt_throw(jl_AssertionError__init_($rt_s(1508)));
24455
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1117), Long_fromInt($cause));
24464
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1124), Long_fromInt($cause));
24456
24465
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24457
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($value));
24458
- $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1115));
24466
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($value));
24467
+ $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122));
24459
24468
  $base = $utvec & -4;
24460
24469
  if (($utvec & 3) == 2)
24461
24470
  $base = $base + (4 * $code | 0) | 0;
@@ -24535,8 +24544,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24535
24544
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24536
24545
  return;
24537
24546
  }
24538
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24539
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24547
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24548
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24540
24549
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24541
24550
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24542
24551
  $se = asrrh_InterruptController_lock;
@@ -24727,8 +24736,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24727
24736
  jl_Object_monitorExit($se);
24728
24737
  $rt_throw($instruction);
24729
24738
  }
24730
- if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119))))
24731
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1119), $cycle);
24739
+ if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126))))
24740
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), $cycle);
24732
24741
  var$14 = $this.$maxSteps;
24733
24742
  if (var$14 > 0) {
24734
24743
  $steps = $steps + 1 | 0;
@@ -24849,12 +24858,12 @@ var asrs_Simulator$SimThread_run = ($this) => {
24849
24858
  $waiting = 1;
24850
24859
  }
24851
24860
  v: {
24852
- $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24853
- $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24861
+ $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24862
+ $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
24854
24863
  $time = jl_System_currentTimeMillis();
24855
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1120), Long_add($cycle, Long_fromInt(1)));
24856
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1122), Long_add($instret, Long_fromInt(1)));
24857
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1121), $time);
24864
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1127), Long_add($cycle, Long_fromInt(1)));
24865
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1129), Long_add($instret, Long_fromInt(1)));
24866
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1128), $time);
24858
24867
  if (!$ebreak) {
24859
24868
  var$1 = $this.$breakPoints;
24860
24869
  if (var$1 === null)
@@ -24877,8 +24886,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24877
24886
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24878
24887
  return;
24879
24888
  }
24880
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24881
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24889
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24890
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24882
24891
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24883
24892
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24884
24893
  $se = asrrh_InterruptController_lock;
@@ -24914,8 +24923,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24914
24923
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24915
24924
  return;
24916
24925
  }
24917
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24918
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24926
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24927
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24919
24928
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24920
24929
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24921
24930
  $se = asrrh_InterruptController_lock;
@@ -24953,8 +24962,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24953
24962
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24954
24963
  return;
24955
24964
  }
24956
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24957
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24965
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24966
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24958
24967
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24959
24968
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24960
24969
  $se = asrrh_InterruptController_lock;
@@ -31847,241 +31856,6 @@ var asrjt_Float64__clinit_ = () => {
31847
31856
  asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31848
31857
  asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31849
31858
  };
31850
- var asrjo_Arithmetic = $rt_classWithoutFields();
31851
- var asrjo_Arithmetic_$assertionsDisabled = 0;
31852
- var asrjo_Arithmetic_add = ($a, $b, $env) => {
31853
- let $out;
31854
- if ($a.$isNaN())
31855
- return $a;
31856
- if ($b.$isNaN())
31857
- return $b;
31858
- if ($a.$isInfinite()) {
31859
- if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
31860
- $b = $env.$flags;
31861
- $env = asrj_Flags_invalid;
31862
- ju_GenericEnumSet_add($b, $env);
31863
- return $a.$NaN();
31864
- }
31865
- return $a;
31866
- }
31867
- if ($b.$isInfinite())
31868
- return $b;
31869
- if ($a.$isZero()) {
31870
- if (!$b.$isZero())
31871
- return $b;
31872
- if ($a.$isSignMinus() == $b.$isSignMinus())
31873
- return $a;
31874
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31875
- }
31876
- if ($b.$isZero())
31877
- return $a;
31878
- $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
31879
- if (!asrji_ExactFloat_isZero($out))
31880
- return $a.$fromExactFloat($out, $env);
31881
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31882
- };
31883
- var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
31884
- if ($a.$isNaN())
31885
- return $a;
31886
- if ($b.$isNaN())
31887
- return $b;
31888
- return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
31889
- };
31890
- var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
31891
- if ($a.$isNaN())
31892
- return $a;
31893
- if ($b.$isNaN())
31894
- return $b;
31895
- a: {
31896
- if (!($a.$isZero() && $b.$isInfinite())) {
31897
- if (!$b.$isZero())
31898
- break a;
31899
- if (!$a.$isInfinite())
31900
- break a;
31901
- }
31902
- $b = $env.$flags;
31903
- $env = asrj_Flags_invalid;
31904
- ju_GenericEnumSet_add($b, $env);
31905
- return $a.$NaN();
31906
- }
31907
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
31908
- if (!$a.$isZero() && !$b.$isZero())
31909
- return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
31910
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
31911
- }
31912
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31913
- };
31914
- var asrjo_Arithmetic_squareRoot = ($a, $env) => {
31915
- let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
31916
- if ($a.$isNaN())
31917
- return $a;
31918
- if ($a.$isZero())
31919
- return $a;
31920
- if ($a.$isSignMinus()) {
31921
- $env = $env.$flags;
31922
- var$3 = asrj_Flags_invalid;
31923
- ju_GenericEnumSet_add($env, var$3);
31924
- return $a.$NaN();
31925
- }
31926
- if ($a.$isInfinite())
31927
- return $a;
31928
- var$3 = $a.$toExactFloat();
31929
- var$4 = $a.$maxPrecision();
31930
- if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
31931
- $rt_throw(jl_AssertionError__init_($rt_s(1628)));
31932
- var$5 = asrji_ExactFloat_normalize(var$3);
31933
- var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
31934
- a: {
31935
- while (true) {
31936
- var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31937
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31938
- if (!var$8)
31939
- break;
31940
- if (var$8 > 0) {
31941
- var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31942
- var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
31943
- var$6 = 0;
31944
- while (true) {
31945
- if (var$6 >= var$4) {
31946
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31947
- var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31948
- if (!var$4)
31949
- break a;
31950
- if (var$4 > 0) {
31951
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
31952
- break a;
31953
- }
31954
- if (var$4 < 0) {
31955
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
31956
- break a;
31957
- }
31958
- if (!asrji_ExactFloat_$assertionsDisabled)
31959
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31960
- var$7 = null;
31961
- break a;
31962
- }
31963
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31964
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31965
- if (!var$8)
31966
- break;
31967
- if (var$8 <= 0) {
31968
- if (var$8 < 0) {
31969
- var$10 = var$7;
31970
- var$7 = var$9;
31971
- } else {
31972
- if (!asrji_ExactFloat_$assertionsDisabled)
31973
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31974
- var$7 = var$9;
31975
- }
31976
- }
31977
- var$6 = var$6 + 1 | 0;
31978
- var$9 = var$7;
31979
- }
31980
- break a;
31981
- }
31982
- var$6 = var$6 + -1 | 0;
31983
- }
31984
- }
31985
- return $a.$fromExactFloat(var$7, $env);
31986
- };
31987
- var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
31988
- if ($a.$isNaN())
31989
- return $a;
31990
- if ($b.$isNaN())
31991
- return $b;
31992
- if ($c.$isNaN())
31993
- return $c;
31994
- a: {
31995
- if (!($a.$isZero() && $b.$isInfinite())) {
31996
- if (!$b.$isZero())
31997
- break a;
31998
- if (!$a.$isInfinite())
31999
- break a;
32000
- }
32001
- $b = $env.$flags;
32002
- $c = asrj_Flags_invalid;
32003
- ju_GenericEnumSet_add($b, $c);
32004
- return $a.$NaN();
32005
- }
32006
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32007
- if (!$a.$isZero() && !$b.$isZero())
32008
- return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
32009
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
32010
- }
32011
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
32012
- };
32013
- var asrjo_Arithmetic_division = ($a, $b, $env) => {
32014
- let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
32015
- if ($a.$isNaN())
32016
- return $a;
32017
- if ($b.$isNaN())
32018
- return $b;
32019
- a: {
32020
- if (!($a.$isZero() && $b.$isZero())) {
32021
- if (!$a.$isInfinite())
32022
- break a;
32023
- if (!$b.$isInfinite())
32024
- break a;
32025
- }
32026
- $b = $env.$flags;
32027
- $env = asrj_Flags_invalid;
32028
- ju_GenericEnumSet_add($b, $env);
32029
- return $a.$NaN();
32030
- }
32031
- if ($a.$isInfinite())
32032
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32033
- if (!$b.$isInfinite() && !$a.$isZero()) {
32034
- if ($b.$isZero()) {
32035
- $env = $env.$flags;
32036
- var$4 = asrj_Flags_divByZero;
32037
- ju_GenericEnumSet_add($env, var$4);
32038
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32039
- }
32040
- if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
32041
- $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32042
- var$4 = $a.$toExactFloat();
32043
- $b = $b.$toExactFloat();
32044
- var$5 = $a.$maxPrecision();
32045
- var$6 = asrji_ExactFloat_$assertionsDisabled;
32046
- if (!var$6 && var$5 <= 0)
32047
- $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32048
- if (!var$6 && asrji_ExactFloat_isZero($b))
32049
- $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32050
- var$4 = asrji_ExactFloat_normalize(var$4);
32051
- var$7 = asrji_ExactFloat_normalize($b);
32052
- var$8 = var$4.$significand;
32053
- var$9 = var$7.$significand;
32054
- var$10 = jm_BigInteger_ZERO;
32055
- var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
32056
- if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
32057
- var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
32058
- else
32059
- var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
32060
- var$6 = 0;
32061
- b: {
32062
- while (jm_BigInteger_bitLength(var$10) < var$5) {
32063
- var$10 = jm_BigInteger_shiftLeft(var$10, 1);
32064
- if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
32065
- var$8 = jm_BigInteger_subtract(var$8, var$9);
32066
- var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
32067
- }
32068
- var$6 = var$6 + 1 | 0;
32069
- var$8 = jm_BigInteger_shiftLeft(var$8, 1);
32070
- if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
32071
- break b;
32072
- }
32073
- }
32074
- if (jm_BigInteger_bitLength(var$10) >= var$5) {
32075
- var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
32076
- var$6 = var$6 + 1 | 0;
32077
- }
32078
- return $a.$fromExactFloat(asrji_ExactFloat__init_(var$4.$sign == var$7.$sign ? 0 : 1, (((var$4.$exponent0 - var$7.$exponent0 | 0) - var$6 | 0) - var$11 | 0) + 1 | 0, var$10), $env);
32079
- }
32080
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32081
- };
32082
- var asrjo_Arithmetic__clinit_ = () => {
32083
- asrjo_Arithmetic_$assertionsDisabled = 0;
32084
- };
32085
31859
  var asrjo_Conversions = $rt_classWithoutFields();
32086
31860
  var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
32087
31861
  let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
@@ -32140,7 +31914,7 @@ var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
32140
31914
  ju_GenericEnumSet_add(var$9, var$10);
32141
31915
  }
32142
31916
  if (!asrji_ExactFloat_$assertionsDisabled && $rounded.$exponent0 < 0)
32143
- $rt_throw(jl_AssertionError__init_($rt_s(1633)));
31917
+ $rt_throw(jl_AssertionError__init_($rt_s(1628)));
32144
31918
  $rounded = jm_BigInteger_multiply(jm_BigInteger_shiftLeft($rounded.$significand, $rounded.$exponent0), jm_BigInteger_valueOf(!$f.$sign ? Long_fromInt(1) : Long_fromInt(-1)));
32145
31919
  }
32146
31920
  }
@@ -32190,6 +31964,108 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
32190
31964
  var$4.$significand = $i;
32191
31965
  return $helper.$fromExactFloat(var$4, $env);
32192
31966
  };
31967
+ var asrjo_Comparisons = $rt_classWithoutFields();
31968
+ var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31969
+ if ($a.$isZero()) {
31970
+ if ($b.$isZero())
31971
+ return 0;
31972
+ return !$b.$isSignMinus() ? -1 : 1;
31973
+ }
31974
+ if ($b.$isZero())
31975
+ return !$a.$isSignMinus() ? 1 : -1;
31976
+ if (!$a.$isInfinite()) {
31977
+ if (!$b.$isInfinite())
31978
+ return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
31979
+ return !$b.$isSignMinus() ? -1 : 1;
31980
+ }
31981
+ if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
31982
+ return 0;
31983
+ return !$a.$isSignMinus() ? -1 : 1;
31984
+ };
31985
+ var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
31986
+ if ($a.$isSignMinus() != $b.$isSignMinus()) {
31987
+ if ($a.$isSignMinus())
31988
+ $b = $a;
31989
+ return $b;
31990
+ }
31991
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31992
+ if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
31993
+ return $b;
31994
+ return $a;
31995
+ }
31996
+ if ($a.$isInfinite() != $a.$isSignMinus())
31997
+ return $b;
31998
+ return $a;
31999
+ };
32000
+ var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32001
+ let var$4;
32002
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32003
+ var$4 = $env.$flags;
32004
+ $env = asrj_Flags_invalid;
32005
+ ju_GenericEnumSet_add(var$4, $env);
32006
+ }
32007
+ if ($a.$isNaN()) {
32008
+ if ($b.$isNaN())
32009
+ $b = $b.$NaN();
32010
+ } else
32011
+ $b = !$b.$isNaN() ? null : $a;
32012
+ return $b;
32013
+ };
32014
+ var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32015
+ let $tmp_0;
32016
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32017
+ if ($tmp_0 !== null)
32018
+ return $tmp_0;
32019
+ return asrjo_Comparisons_nonNaNmin($a, $b);
32020
+ };
32021
+ var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32022
+ let $tmp_0;
32023
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32024
+ if ($tmp_0 !== null)
32025
+ return $tmp_0;
32026
+ if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32027
+ $a = $b;
32028
+ return $a;
32029
+ };
32030
+ var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32031
+ let var$4;
32032
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32033
+ var$4 = $env.$flags;
32034
+ $env = asrj_Flags_invalid;
32035
+ ju_GenericEnumSet_add(var$4, $env);
32036
+ }
32037
+ if (!$a.$isNaN() && !$b.$isNaN())
32038
+ return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32039
+ return 0;
32040
+ };
32041
+ var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32042
+ let var$4, var$5;
32043
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32044
+ var$4 = $env.$flags;
32045
+ var$5 = asrj_Flags_invalid;
32046
+ ju_GenericEnumSet_add(var$4, var$5);
32047
+ }
32048
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32049
+ var$5 = $env.$flags;
32050
+ $env = asrj_Flags_invalid;
32051
+ ju_GenericEnumSet_add(var$5, $env);
32052
+ }
32053
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32054
+ };
32055
+ var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32056
+ let var$4, var$5;
32057
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32058
+ var$4 = $env.$flags;
32059
+ var$5 = asrj_Flags_invalid;
32060
+ ju_GenericEnumSet_add(var$4, var$5);
32061
+ }
32062
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32063
+ var$5 = $env.$flags;
32064
+ $env = asrj_Flags_invalid;
32065
+ ju_GenericEnumSet_add(var$5, $env);
32066
+ }
32067
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32068
+ };
32193
32069
  function asrjt_Float32() {
32194
32070
  asrjt_Floating.call(this);
32195
32071
  this.$bits0 = 0;
@@ -32406,107 +32282,240 @@ var asrjt_Float32__clinit_ = () => {
32406
32282
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
32407
32283
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
32408
32284
  };
32409
- var asrjo_Comparisons = $rt_classWithoutFields();
32410
- var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32285
+ var asrjo_Arithmetic = $rt_classWithoutFields();
32286
+ var asrjo_Arithmetic_$assertionsDisabled = 0;
32287
+ var asrjo_Arithmetic_add = ($a, $b, $env) => {
32288
+ let $out;
32289
+ if ($a.$isNaN())
32290
+ return $a;
32291
+ if ($b.$isNaN())
32292
+ return $b;
32293
+ if ($a.$isInfinite()) {
32294
+ if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
32295
+ $b = $env.$flags;
32296
+ $env = asrj_Flags_invalid;
32297
+ ju_GenericEnumSet_add($b, $env);
32298
+ return $a.$NaN();
32299
+ }
32300
+ return $a;
32301
+ }
32302
+ if ($b.$isInfinite())
32303
+ return $b;
32411
32304
  if ($a.$isZero()) {
32412
- if ($b.$isZero())
32413
- return 0;
32414
- return !$b.$isSignMinus() ? -1 : 1;
32305
+ if (!$b.$isZero())
32306
+ return $b;
32307
+ if ($a.$isSignMinus() == $b.$isSignMinus())
32308
+ return $a;
32309
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32415
32310
  }
32416
32311
  if ($b.$isZero())
32417
- return !$a.$isSignMinus() ? 1 : -1;
32418
- if (!$a.$isInfinite()) {
32419
- if (!$b.$isInfinite())
32420
- return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32421
- return !$b.$isSignMinus() ? -1 : 1;
32422
- }
32423
- if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32424
- return 0;
32425
- return !$a.$isSignMinus() ? -1 : 1;
32312
+ return $a;
32313
+ $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
32314
+ if (!asrji_ExactFloat_isZero($out))
32315
+ return $a.$fromExactFloat($out, $env);
32316
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32426
32317
  };
32427
- var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32428
- if ($a.$isSignMinus() != $b.$isSignMinus()) {
32429
- if ($a.$isSignMinus())
32430
- $b = $a;
32431
- return $b;
32432
- }
32433
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32434
- if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32435
- return $b;
32318
+ var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
32319
+ if ($a.$isNaN())
32436
32320
  return $a;
32437
- }
32438
- if ($a.$isInfinite() != $a.$isSignMinus())
32321
+ if ($b.$isNaN())
32439
32322
  return $b;
32440
- return $a;
32323
+ return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
32441
32324
  };
32442
- var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32443
- let var$4;
32444
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32445
- var$4 = $env.$flags;
32325
+ var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
32326
+ if ($a.$isNaN())
32327
+ return $a;
32328
+ if ($b.$isNaN())
32329
+ return $b;
32330
+ a: {
32331
+ if (!($a.$isZero() && $b.$isInfinite())) {
32332
+ if (!$b.$isZero())
32333
+ break a;
32334
+ if (!$a.$isInfinite())
32335
+ break a;
32336
+ }
32337
+ $b = $env.$flags;
32446
32338
  $env = asrj_Flags_invalid;
32447
- ju_GenericEnumSet_add(var$4, $env);
32339
+ ju_GenericEnumSet_add($b, $env);
32340
+ return $a.$NaN();
32448
32341
  }
32449
- if ($a.$isNaN()) {
32450
- if ($b.$isNaN())
32451
- $b = $b.$NaN();
32452
- } else
32453
- $b = !$b.$isNaN() ? null : $a;
32454
- return $b;
32455
- };
32456
- var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32457
- let $tmp_0;
32458
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32459
- if ($tmp_0 !== null)
32460
- return $tmp_0;
32461
- return asrjo_Comparisons_nonNaNmin($a, $b);
32462
- };
32463
- var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32464
- let $tmp_0;
32465
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32466
- if ($tmp_0 !== null)
32467
- return $tmp_0;
32468
- if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32469
- $a = $b;
32470
- return $a;
32471
- };
32472
- var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32473
- let var$4;
32474
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32475
- var$4 = $env.$flags;
32476
- $env = asrj_Flags_invalid;
32477
- ju_GenericEnumSet_add(var$4, $env);
32342
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
32343
+ if (!$a.$isZero() && !$b.$isZero())
32344
+ return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
32345
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32478
32346
  }
32479
- if (!$a.$isNaN() && !$b.$isNaN())
32480
- return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32481
- return 0;
32347
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32482
32348
  };
32483
- var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32484
- let var$4, var$5;
32485
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32486
- var$4 = $env.$flags;
32487
- var$5 = asrj_Flags_invalid;
32488
- ju_GenericEnumSet_add(var$4, var$5);
32349
+ var asrjo_Arithmetic_squareRoot = ($a, $env) => {
32350
+ let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
32351
+ if ($a.$isNaN())
32352
+ return $a;
32353
+ if ($a.$isZero())
32354
+ return $a;
32355
+ if ($a.$isSignMinus()) {
32356
+ $env = $env.$flags;
32357
+ var$3 = asrj_Flags_invalid;
32358
+ ju_GenericEnumSet_add($env, var$3);
32359
+ return $a.$NaN();
32489
32360
  }
32490
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32491
- var$5 = $env.$flags;
32492
- $env = asrj_Flags_invalid;
32493
- ju_GenericEnumSet_add(var$5, $env);
32361
+ if ($a.$isInfinite())
32362
+ return $a;
32363
+ var$3 = $a.$toExactFloat();
32364
+ var$4 = $a.$maxPrecision();
32365
+ if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
32366
+ $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32367
+ var$5 = asrji_ExactFloat_normalize(var$3);
32368
+ var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
32369
+ a: {
32370
+ while (true) {
32371
+ var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32372
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32373
+ if (!var$8)
32374
+ break;
32375
+ if (var$8 > 0) {
32376
+ var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32377
+ var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
32378
+ var$6 = 0;
32379
+ while (true) {
32380
+ if (var$6 >= var$4) {
32381
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32382
+ var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32383
+ if (!var$4)
32384
+ break a;
32385
+ if (var$4 > 0) {
32386
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
32387
+ break a;
32388
+ }
32389
+ if (var$4 < 0) {
32390
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
32391
+ break a;
32392
+ }
32393
+ if (!asrji_ExactFloat_$assertionsDisabled)
32394
+ $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32395
+ var$7 = null;
32396
+ break a;
32397
+ }
32398
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32399
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32400
+ if (!var$8)
32401
+ break;
32402
+ if (var$8 <= 0) {
32403
+ if (var$8 < 0) {
32404
+ var$10 = var$7;
32405
+ var$7 = var$9;
32406
+ } else {
32407
+ if (!asrji_ExactFloat_$assertionsDisabled)
32408
+ $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32409
+ var$7 = var$9;
32410
+ }
32411
+ }
32412
+ var$6 = var$6 + 1 | 0;
32413
+ var$9 = var$7;
32414
+ }
32415
+ break a;
32416
+ }
32417
+ var$6 = var$6 + -1 | 0;
32418
+ }
32494
32419
  }
32495
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32420
+ return $a.$fromExactFloat(var$7, $env);
32496
32421
  };
32497
- var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32498
- let var$4, var$5;
32499
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32500
- var$4 = $env.$flags;
32501
- var$5 = asrj_Flags_invalid;
32502
- ju_GenericEnumSet_add(var$4, var$5);
32422
+ var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
32423
+ if ($a.$isNaN())
32424
+ return $a;
32425
+ if ($b.$isNaN())
32426
+ return $b;
32427
+ if ($c.$isNaN())
32428
+ return $c;
32429
+ a: {
32430
+ if (!($a.$isZero() && $b.$isInfinite())) {
32431
+ if (!$b.$isZero())
32432
+ break a;
32433
+ if (!$a.$isInfinite())
32434
+ break a;
32435
+ }
32436
+ $b = $env.$flags;
32437
+ $c = asrj_Flags_invalid;
32438
+ ju_GenericEnumSet_add($b, $c);
32439
+ return $a.$NaN();
32503
32440
  }
32504
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32505
- var$5 = $env.$flags;
32441
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
32442
+ if (!$a.$isZero() && !$b.$isZero())
32443
+ return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
32444
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
32445
+ }
32446
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
32447
+ };
32448
+ var asrjo_Arithmetic_division = ($a, $b, $env) => {
32449
+ let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
32450
+ if ($a.$isNaN())
32451
+ return $a;
32452
+ if ($b.$isNaN())
32453
+ return $b;
32454
+ a: {
32455
+ if (!($a.$isZero() && $b.$isZero())) {
32456
+ if (!$a.$isInfinite())
32457
+ break a;
32458
+ if (!$b.$isInfinite())
32459
+ break a;
32460
+ }
32461
+ $b = $env.$flags;
32506
32462
  $env = asrj_Flags_invalid;
32507
- ju_GenericEnumSet_add(var$5, $env);
32463
+ ju_GenericEnumSet_add($b, $env);
32464
+ return $a.$NaN();
32508
32465
  }
32509
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32466
+ if ($a.$isInfinite())
32467
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32468
+ if (!$b.$isInfinite() && !$a.$isZero()) {
32469
+ if ($b.$isZero()) {
32470
+ $env = $env.$flags;
32471
+ var$4 = asrj_Flags_divByZero;
32472
+ ju_GenericEnumSet_add($env, var$4);
32473
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32474
+ }
32475
+ if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
32476
+ $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32477
+ var$4 = $a.$toExactFloat();
32478
+ $b = $b.$toExactFloat();
32479
+ var$5 = $a.$maxPrecision();
32480
+ var$6 = asrji_ExactFloat_$assertionsDisabled;
32481
+ if (!var$6 && var$5 <= 0)
32482
+ $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32483
+ if (!var$6 && asrji_ExactFloat_isZero($b))
32484
+ $rt_throw(jl_AssertionError__init_($rt_s(1633)));
32485
+ var$4 = asrji_ExactFloat_normalize(var$4);
32486
+ var$7 = asrji_ExactFloat_normalize($b);
32487
+ var$8 = var$4.$significand;
32488
+ var$9 = var$7.$significand;
32489
+ var$10 = jm_BigInteger_ZERO;
32490
+ var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
32491
+ if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
32492
+ var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
32493
+ else
32494
+ var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
32495
+ var$6 = 0;
32496
+ b: {
32497
+ while (jm_BigInteger_bitLength(var$10) < var$5) {
32498
+ var$10 = jm_BigInteger_shiftLeft(var$10, 1);
32499
+ if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
32500
+ var$8 = jm_BigInteger_subtract(var$8, var$9);
32501
+ var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
32502
+ }
32503
+ var$6 = var$6 + 1 | 0;
32504
+ var$8 = jm_BigInteger_shiftLeft(var$8, 1);
32505
+ if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
32506
+ break b;
32507
+ }
32508
+ }
32509
+ if (jm_BigInteger_bitLength(var$10) >= var$5) {
32510
+ var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
32511
+ var$6 = var$6 + 1 | 0;
32512
+ }
32513
+ return $a.$fromExactFloat(asrji_ExactFloat__init_(var$4.$sign == var$7.$sign ? 0 : 1, (((var$4.$exponent0 - var$7.$exponent0 | 0) - var$6 | 0) - var$11 | 0) + 1 | 0, var$10), $env);
32514
+ }
32515
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32516
+ };
32517
+ var asrjo_Arithmetic__clinit_ = () => {
32518
+ asrjo_Arithmetic_$assertionsDisabled = 0;
32510
32519
  };
32511
32520
  function jnci_BufferedEncoder$Controller() {
32512
32521
  let a = this;
@@ -32556,42 +32565,6 @@ var asrj_RoundingMode__clinit_ = () => {
32556
32565
  var$3[4] = var$1;
32557
32566
  asrj_RoundingMode_$VALUES = var$2;
32558
32567
  };
32559
- var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32560
- var asrj_Flags_inexact = null;
32561
- var asrj_Flags_underflow = null;
32562
- var asrj_Flags_overflow = null;
32563
- var asrj_Flags_divByZero = null;
32564
- var asrj_Flags_invalid = null;
32565
- var asrj_Flags_$VALUES = null;
32566
- var asrj_Flags_values = () => {
32567
- return asrj_Flags_$VALUES.$clone0();
32568
- };
32569
- var asrj_Flags__clinit_ = () => {
32570
- let var$1, var$2, var$3;
32571
- var$1 = new asrj_Flags();
32572
- jl_Enum__init_(var$1, $rt_s(1638), 0);
32573
- asrj_Flags_inexact = var$1;
32574
- var$1 = new asrj_Flags();
32575
- jl_Enum__init_(var$1, $rt_s(1639), 1);
32576
- asrj_Flags_underflow = var$1;
32577
- var$1 = new asrj_Flags();
32578
- jl_Enum__init_(var$1, $rt_s(1640), 2);
32579
- asrj_Flags_overflow = var$1;
32580
- var$1 = new asrj_Flags();
32581
- jl_Enum__init_(var$1, $rt_s(1641), 3);
32582
- asrj_Flags_divByZero = var$1;
32583
- var$1 = new asrj_Flags();
32584
- jl_Enum__init_(var$1, $rt_s(210), 4);
32585
- asrj_Flags_invalid = var$1;
32586
- var$2 = $rt_createArray(asrj_Flags, 5);
32587
- var$3 = var$2.data;
32588
- var$3[0] = asrj_Flags_inexact;
32589
- var$3[1] = asrj_Flags_underflow;
32590
- var$3[2] = asrj_Flags_overflow;
32591
- var$3[3] = asrj_Flags_divByZero;
32592
- var$3[4] = var$1;
32593
- asrj_Flags_$VALUES = var$2;
32594
- };
32595
32568
  function asrji_ExactFloat() {
32596
32569
  let a = this;
32597
32570
  jl_Object.call(a);
@@ -32678,6 +32651,42 @@ var asrji_ExactFloat_isZero = ($this) => {
32678
32651
  var asrji_ExactFloat__clinit_ = () => {
32679
32652
  asrji_ExactFloat_$assertionsDisabled = 0;
32680
32653
  };
32654
+ var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32655
+ var asrj_Flags_inexact = null;
32656
+ var asrj_Flags_underflow = null;
32657
+ var asrj_Flags_overflow = null;
32658
+ var asrj_Flags_divByZero = null;
32659
+ var asrj_Flags_invalid = null;
32660
+ var asrj_Flags_$VALUES = null;
32661
+ var asrj_Flags_values = () => {
32662
+ return asrj_Flags_$VALUES.$clone0();
32663
+ };
32664
+ var asrj_Flags__clinit_ = () => {
32665
+ let var$1, var$2, var$3;
32666
+ var$1 = new asrj_Flags();
32667
+ jl_Enum__init_(var$1, $rt_s(1638), 0);
32668
+ asrj_Flags_inexact = var$1;
32669
+ var$1 = new asrj_Flags();
32670
+ jl_Enum__init_(var$1, $rt_s(1639), 1);
32671
+ asrj_Flags_underflow = var$1;
32672
+ var$1 = new asrj_Flags();
32673
+ jl_Enum__init_(var$1, $rt_s(1640), 2);
32674
+ asrj_Flags_overflow = var$1;
32675
+ var$1 = new asrj_Flags();
32676
+ jl_Enum__init_(var$1, $rt_s(1641), 3);
32677
+ asrj_Flags_divByZero = var$1;
32678
+ var$1 = new asrj_Flags();
32679
+ jl_Enum__init_(var$1, $rt_s(210), 4);
32680
+ asrj_Flags_invalid = var$1;
32681
+ var$2 = $rt_createArray(asrj_Flags, 5);
32682
+ var$3 = var$2.data;
32683
+ var$3[0] = asrj_Flags_inexact;
32684
+ var$3[1] = asrj_Flags_underflow;
32685
+ var$3[2] = asrj_Flags_overflow;
32686
+ var$3[3] = asrj_Flags_divByZero;
32687
+ var$3[4] = var$1;
32688
+ asrj_Flags_$VALUES = var$2;
32689
+ };
32681
32690
  var ju_EnumSet = $rt_classWithoutFields(ju_AbstractSet);
32682
32691
  function ju_GenericEnumSet() {
32683
32692
  let a = this;
@@ -34846,7 +34855,7 @@ $rt_metadata([
34846
34855
  0,
34847
34856
  0,
34848
34857
  0,
34849
- asr_JsRiscV$getInstructionSet$lambda$_38_0,
34858
+ asr_JsRiscV$getInstructionSet$lambda$_39_0,
34850
34859
  0,
34851
34860
  jl_Object,
34852
34861
  [juf_Function],
@@ -34854,7 +34863,7 @@ $rt_metadata([
34854
34863
  3,
34855
34864
  0,
34856
34865
  0,
34857
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_38_0_apply)],
34866
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_39_0_apply)],
34858
34867
  juf_IntFunction,
34859
34868
  0,
34860
34869
  jl_Object,
@@ -34864,7 +34873,7 @@ $rt_metadata([
34864
34873
  0,
34865
34874
  0,
34866
34875
  0,
34867
- asr_JsRiscV$getInstructionSet$lambda$_38_1,
34876
+ asr_JsRiscV$getInstructionSet$lambda$_39_1,
34868
34877
  0,
34869
34878
  jl_Object,
34870
34879
  [juf_IntFunction],
@@ -34872,7 +34881,7 @@ $rt_metadata([
34872
34881
  3,
34873
34882
  0,
34874
34883
  0,
34875
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_38_1_apply)],
34884
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_39_1_apply)],
34876
34885
  asr_JsInstruction,
34877
34886
  "JsInstruction",
34878
34887
  10,
@@ -35244,9 +35253,18 @@ $rt_metadata([
35244
35253
  0,
35245
35254
  asrrh_RegisterFile_$callClinit,
35246
35255
  0,
35247
- asr_JsStackFrame,
35248
- "JsStackFrame",
35249
- 10,
35256
+ jm_BigInteger,
35257
+ "BigInteger",
35258
+ 14,
35259
+ jl_Number,
35260
+ [jl_Comparable, ji_Serializable],
35261
+ 0,
35262
+ 3,
35263
+ 0,
35264
+ 0,
35265
+ ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35266
+ ju_Arrays,
35267
+ 0,
35250
35268
  jl_Object,
35251
35269
  [],
35252
35270
  0,
@@ -35254,16 +35272,24 @@ $rt_metadata([
35254
35272
  0,
35255
35273
  0,
35256
35274
  0,
35257
- jm_BigInteger,
35258
- "BigInteger",
35259
- 14,
35260
- jl_Number,
35261
- [jl_Comparable, ji_Serializable],
35275
+ juf_ToIntFunction,
35262
35276
  0,
35277
+ jl_Object,
35278
+ [],
35279
+ 3,
35263
35280
  3,
35264
35281
  0,
35265
35282
  0,
35266
- ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35283
+ 0,
35284
+ asr_JsRiscV$getRegistersValues$lambda$_25_0,
35285
+ 0,
35286
+ jl_Object,
35287
+ [juf_ToIntFunction],
35288
+ 0,
35289
+ 3,
35290
+ 0,
35291
+ 0,
35292
+ 0,
35267
35293
  asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35268
35294
  0,
35269
35295
  jl_Object,
@@ -35292,27 +35318,27 @@ $rt_metadata([
35292
35318
  0,
35293
35319
  0,
35294
35320
  0,
35295
- asr_JsCompilationResult,
35296
- "JsCompilationResult",
35297
- 10,
35321
+ asr_JsRiscV$getUndoStack$lambda$_26_0,
35322
+ 0,
35298
35323
  jl_Object,
35299
- [],
35324
+ [juf_Function],
35300
35325
  0,
35301
35326
  3,
35302
35327
  0,
35303
35328
  0,
35329
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_26_0_apply)],
35330
+ asr_JsRiscV$getUndoStack$lambda$_26_1,
35304
35331
  0,
35305
- asr_AssemblyException,
35306
- 0,
35307
- jl_Exception,
35308
- [],
35332
+ jl_Object,
35333
+ [juf_IntFunction],
35309
35334
  0,
35310
35335
  3,
35311
35336
  0,
35312
35337
  0,
35313
- 0,
35314
- ju_Arrays,
35315
- 0,
35338
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_26_1_apply)],
35339
+ asr_JsBackStep,
35340
+ "JsBackStep",
35341
+ 10,
35316
35342
  jl_Object,
35317
35343
  [],
35318
35344
  0,
@@ -35320,46 +35346,29 @@ $rt_metadata([
35320
35346
  0,
35321
35347
  0,
35322
35348
  0,
35323
- juf_ToIntFunction,
35324
- 0,
35349
+ asr_JsStackFrame,
35350
+ "JsStackFrame",
35351
+ 10,
35325
35352
  jl_Object,
35326
35353
  [],
35327
- 3,
35328
- 3,
35329
- 0,
35330
- 0,
35331
- 0,
35332
- asr_JsRiscV$getRegistersValues$lambda$_24_0,
35333
- 0,
35334
- jl_Object,
35335
- [juf_ToIntFunction],
35336
35354
  0,
35337
35355
  3,
35338
35356
  0,
35339
35357
  0,
35340
35358
  0,
35341
- asr_JsRiscV$getUndoStack$lambda$_25_0,
35342
- 0,
35359
+ asr_JsCompilationResult,
35360
+ "JsCompilationResult",
35361
+ 10,
35343
35362
  jl_Object,
35344
- [juf_Function],
35363
+ [],
35345
35364
  0,
35346
35365
  3,
35347
35366
  0,
35348
35367
  0,
35349
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_25_0_apply)],
35350
- asr_JsRiscV$getUndoStack$lambda$_25_1,
35351
- 0,
35352
- jl_Object,
35353
- [juf_IntFunction],
35354
- 0,
35355
- 3,
35356
35368
  0,
35369
+ asr_AssemblyException,
35357
35370
  0,
35358
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_25_1_apply)],
35359
- asr_JsBackStep,
35360
- "JsBackStep",
35361
- 10,
35362
- jl_Object,
35371
+ jl_Exception,
35363
35372
  [],
35364
35373
  0,
35365
35374
  3,
@@ -35478,19 +35487,19 @@ $rt_metadata([
35478
35487
  0,
35479
35488
  0,
35480
35489
  0,
35481
- asr_JsCompilationResult$_init_$lambda$_0_0,
35490
+ jl_AutoCloseable,
35482
35491
  0,
35483
35492
  jl_Object,
35484
- [juf_Function],
35485
- 0,
35493
+ [],
35494
+ 3,
35486
35495
  3,
35487
35496
  0,
35488
35497
  0,
35489
- ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35490
- juf_Supplier,
35498
+ 0,
35499
+ jus_BaseStream,
35491
35500
  0,
35492
35501
  jl_Object,
35493
- [],
35502
+ [jl_AutoCloseable],
35494
35503
  3,
35495
35504
  3,
35496
35505
  0,
@@ -35498,91 +35507,91 @@ $rt_metadata([
35498
35507
  0
35499
35508
  ]);
35500
35509
  $rt_metadata([
35501
- asr_JsCompilationResult$_init_$lambda$_0_1,
35510
+ jus_Stream,
35502
35511
  0,
35503
35512
  jl_Object,
35504
- [juf_Supplier],
35505
- 0,
35513
+ [jus_BaseStream],
35514
+ 3,
35506
35515
  3,
35507
35516
  0,
35508
35517
  0,
35509
35518
  0,
35510
- juf_BiConsumer,
35519
+ jusi_SimpleStreamImpl,
35511
35520
  0,
35512
35521
  jl_Object,
35513
- [],
35514
- 3,
35522
+ [jus_Stream],
35523
+ 1,
35515
35524
  3,
35516
35525
  0,
35517
35526
  0,
35518
35527
  0,
35519
- asr_JsCompilationResult$_init_$lambda$_0_2,
35528
+ jusi_ArrayStreamImpl,
35520
35529
  0,
35521
- jl_Object,
35522
- [juf_BiConsumer],
35530
+ jusi_SimpleStreamImpl,
35531
+ [],
35523
35532
  0,
35524
35533
  3,
35525
35534
  0,
35526
35535
  0,
35527
- 0,
35528
- asr_JsCompilationResult$_init_$lambda$_0_3,
35536
+ ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35537
+ asrs_BackStepper$BackstepStack,
35529
35538
  0,
35530
35539
  jl_Object,
35531
- [juf_BiConsumer],
35540
+ [],
35532
35541
  0,
35533
35542
  3,
35534
35543
  0,
35535
35544
  0,
35536
35545
  0,
35537
- jl_AutoCloseable,
35546
+ asr_JsCompilationResult$_init_$lambda$_0_0,
35538
35547
  0,
35539
35548
  jl_Object,
35540
- [],
35541
- 3,
35542
- 3,
35549
+ [juf_Function],
35543
35550
  0,
35551
+ 3,
35544
35552
  0,
35545
35553
  0,
35546
- jus_BaseStream,
35554
+ ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35555
+ juf_Supplier,
35547
35556
  0,
35548
35557
  jl_Object,
35549
- [jl_AutoCloseable],
35558
+ [],
35550
35559
  3,
35551
35560
  3,
35552
35561
  0,
35553
35562
  0,
35554
35563
  0,
35555
- jus_Stream,
35564
+ asr_JsCompilationResult$_init_$lambda$_0_1,
35556
35565
  0,
35557
35566
  jl_Object,
35558
- [jus_BaseStream],
35559
- 3,
35567
+ [juf_Supplier],
35568
+ 0,
35560
35569
  3,
35561
35570
  0,
35562
35571
  0,
35563
35572
  0,
35564
- jusi_SimpleStreamImpl,
35573
+ juf_BiConsumer,
35565
35574
  0,
35566
35575
  jl_Object,
35567
- [jus_Stream],
35568
- 1,
35576
+ [],
35577
+ 3,
35569
35578
  3,
35570
35579
  0,
35571
35580
  0,
35572
35581
  0,
35573
- jusi_ArrayStreamImpl,
35582
+ asr_JsCompilationResult$_init_$lambda$_0_2,
35574
35583
  0,
35575
- jusi_SimpleStreamImpl,
35576
- [],
35584
+ jl_Object,
35585
+ [juf_BiConsumer],
35577
35586
  0,
35578
35587
  3,
35579
35588
  0,
35580
35589
  0,
35581
- ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35582
- asrs_BackStepper$BackstepStack,
35590
+ 0,
35591
+ asr_JsCompilationResult$_init_$lambda$_0_3,
35583
35592
  0,
35584
35593
  jl_Object,
35585
- [],
35594
+ [juf_BiConsumer],
35586
35595
  0,
35587
35596
  3,
35588
35597
  0,
@@ -37855,16 +37864,17 @@ $rt_metadata([
37855
37864
  0,
37856
37865
  0,
37857
37866
  ["$hasNext", $rt_wrapFunction0(ju_AbstractList$1_hasNext), "$next", $rt_wrapFunction0(ju_AbstractList$1_next)],
37858
- jlr_Array,
37859
- 0,
37860
- jl_Object,
37867
+ asrs_Simulator$Reason,
37868
+ "Simulator$Reason",
37869
+ 3,
37870
+ jl_Enum,
37861
37871
  [],
37862
- 4,
37872
+ 12,
37863
37873
  3,
37864
37874
  0,
37865
37875
  0,
37866
37876
  0,
37867
- asrrh_Stack,
37877
+ asrrh_FloatingPointRegisterFile,
37868
37878
  0,
37869
37879
  jl_Object,
37870
37880
  [],
@@ -37873,7 +37883,7 @@ $rt_metadata([
37873
37883
  0,
37874
37884
  0,
37875
37885
  0,
37876
- asrrh_FloatingPointRegisterFile,
37886
+ asrrh_ControlAndStatusRegisterFile,
37877
37887
  0,
37878
37888
  jl_Object,
37879
37889
  [],
@@ -37882,7 +37892,7 @@ $rt_metadata([
37882
37892
  0,
37883
37893
  0,
37884
37894
  0,
37885
- asrrh_ControlAndStatusRegisterFile,
37895
+ asrrh_InterruptController,
37886
37896
  0,
37887
37897
  jl_Object,
37888
37898
  [],
@@ -37891,7 +37901,7 @@ $rt_metadata([
37891
37901
  0,
37892
37902
  0,
37893
37903
  0,
37894
- asrrh_InterruptController,
37904
+ asrrh_Stack,
37895
37905
  0,
37896
37906
  jl_Object,
37897
37907
  [],
@@ -37900,12 +37910,11 @@ $rt_metadata([
37900
37910
  0,
37901
37911
  0,
37902
37912
  0,
37903
- asrs_Simulator$Reason,
37904
- "Simulator$Reason",
37905
- 3,
37906
- jl_Enum,
37913
+ jlr_Array,
37914
+ 0,
37915
+ jl_Object,
37907
37916
  [],
37908
- 12,
37917
+ 4,
37909
37918
  3,
37910
37919
  0,
37911
37920
  0,
@@ -40955,7 +40964,7 @@ $rt_metadata([
40955
40964
  "$NaN",
40956
40965
  $rt_wrapFunction0(asrjt_Float64_NaN0)
40957
40966
  ],
40958
- asrjo_Arithmetic,
40967
+ asrjo_Conversions,
40959
40968
  0,
40960
40969
  jl_Object,
40961
40970
  [],
@@ -40964,7 +40973,7 @@ $rt_metadata([
40964
40973
  0,
40965
40974
  0,
40966
40975
  0,
40967
- asrjo_Conversions,
40976
+ asrjo_Comparisons,
40968
40977
  0,
40969
40978
  jl_Object,
40970
40979
  [],
@@ -41015,7 +41024,7 @@ $rt_metadata([
41015
41024
  "$NaN",
41016
41025
  $rt_wrapFunction0(asrjt_Float32_NaN0)
41017
41026
  ],
41018
- asrjo_Comparisons,
41027
+ asrjo_Arithmetic,
41019
41028
  0,
41020
41029
  jl_Object,
41021
41030
  [],
@@ -41052,6 +41061,15 @@ $rt_metadata([
41052
41061
  0,
41053
41062
  0,
41054
41063
  0,
41064
+ asrji_ExactFloat,
41065
+ 0,
41066
+ jl_Object,
41067
+ [jl_Comparable],
41068
+ 0,
41069
+ 3,
41070
+ 0,
41071
+ 0,
41072
+ 0,
41055
41073
  asrj_Flags,
41056
41074
  "Flags",
41057
41075
  9,
@@ -41062,15 +41080,6 @@ $rt_metadata([
41062
41080
  0,
41063
41081
  0,
41064
41082
  0,
41065
- asrji_ExactFloat,
41066
- 0,
41067
- jl_Object,
41068
- [jl_Comparable],
41069
- 0,
41070
- 3,
41071
- 0,
41072
- 0,
41073
- 0,
41074
41083
  ju_EnumSet,
41075
41084
  0,
41076
41085
  ju_AbstractSet,
@@ -42462,6 +42471,13 @@ $rt_stringPool([
42462
42471
  "Can't parse empty string",
42463
42472
  "The string does not represent a number",
42464
42473
  "The string represents a too big number",
42474
+ "BREAKPOINT",
42475
+ "EXCEPTION",
42476
+ "MAX_STEPS",
42477
+ "NORMAL_TERMINATION",
42478
+ "CLIFF_TERMINATION",
42479
+ "PAUSE",
42480
+ "STOP",
42465
42481
  "ft0",
42466
42482
  "ft1",
42467
42483
  "ft2",
@@ -42509,13 +42525,6 @@ $rt_stringPool([
42509
42525
  "Cannot claim, no timer interrupt pending",
42510
42526
  "Cannot claim, no trap pending",
42511
42527
  "trapPC doesn't match current pc",
42512
- "BREAKPOINT",
42513
- "EXCEPTION",
42514
- "MAX_STEPS",
42515
- "NORMAL_TERMINATION",
42516
- "CLIFF_TERMINATION",
42517
- "PAUSE",
42518
- "STOP",
42519
42528
  "Patter is null",
42520
42529
  "Recursive include of file ",
42521
42530
  "Error reading include file ",
@@ -43007,12 +43016,12 @@ $rt_stringPool([
43007
43016
  "NaNs are not exact",
43008
43017
  "Zeros should be handled explicitly",
43009
43018
  "This should not be reachable",
43019
+ "There can't be any fractions at this point",
43010
43020
  "Square root of a negative number is not real",
43011
43021
  "Cannot get here",
43012
43022
  "Both should definitely be finite by this point",
43013
43023
  "Accuracy must be a positive number",
43014
43024
  "Divide by Zero is not valid",
43015
- "There can't be any fractions at this point",
43016
43025
  "even",
43017
43026
  "away",
43018
43027
  "min",
@@ -43046,11 +43055,11 @@ var $rt_jso_marker = Symbol("jsoClass");
43046
43055
  let c;
43047
43056
  c = asr_JsRiscV.prototype;
43048
43057
  c.getTokenizedLines = $rt_callWithReceiver(asr_JsRiscV_getTokenizedLines$exported$24);
43049
- c.getCurrentStatementIndex = $rt_callWithReceiver(asr_JsRiscV_getCurrentStatementIndex$exported$28);
43058
+ c.getCurrentStatementIndex = $rt_callWithReceiver(asr_JsRiscV_getCurrentStatementIndex$exported$29);
43050
43059
  c.getRegisterValueLong = $rt_callWithReceiver(asr_JsRiscV_getRegisterValueLong$exported$13);
43051
43060
  c.setUndoEnabled = $rt_callWithReceiver(asr_JsRiscV_setUndoEnabled$exported$21);
43052
43061
  c.getRegistersValues = $rt_callWithReceiver(asr_JsRiscV_getRegistersValues$exported$6);
43053
- c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$32);
43062
+ c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$33);
43054
43063
  c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$8);
43055
43064
  c.getParsedStatements = $rt_callWithReceiver(asr_JsRiscV_getParsedStatements$exported$19);
43056
43065
  c.getStatementAtSourceLine = $rt_callWithReceiver(asr_JsRiscV_getStatementAtSourceLine$exported$20);
@@ -43061,7 +43070,7 @@ var $rt_jso_marker = Symbol("jsoClass");
43061
43070
  c.getLabelAtAddress = $rt_callWithReceiver(asr_JsRiscV_getLabelAtAddress$exported$2);
43062
43071
  c.simulate = $rt_callWithReceiver(asr_JsRiscV_simulate$exported$23);
43063
43072
  c.setMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_setMemoryBytes$exported$15);
43064
- c.getRegistersValuesLong = $rt_callWithReceiver(asr_JsRiscV_getRegistersValuesLong$exported$31);
43073
+ c.getRegistersValuesLong = $rt_callWithReceiver(asr_JsRiscV_getRegistersValuesLong$exported$32);
43065
43074
  c.getNextStatement = $rt_callWithReceiver(asr_JsRiscV_getNextStatement$exported$10);
43066
43075
  c.simulateWithBreakpoints = $rt_callWithReceiver(asr_JsRiscV_simulateWithBreakpoints$exported$27);
43067
43076
  c.getRegisterValue = $rt_callWithReceiver(asr_JsRiscV_getRegisterValue$exported$1);
@@ -43075,16 +43084,19 @@ var $rt_jso_marker = Symbol("jsoClass");
43075
43084
  c.getStatementAtAddress = $rt_callWithReceiver(asr_JsRiscV_getStatementAtAddress$exported$16);
43076
43085
  c.getCallStack = $rt_callWithReceiver(asr_JsRiscV_getCallStack$exported$4);
43077
43086
  Object.defineProperty(c, "stackPointerLong", {
43078
- get: $rt_callWithReceiver(asr_JsRiscV_getStackPointerLong$exported$30)
43087
+ get: $rt_callWithReceiver(asr_JsRiscV_getStackPointerLong$exported$31)
43079
43088
  });
43080
43089
  Object.defineProperty(c, "canUndo", {
43081
43090
  get: $rt_callWithReceiver(asr_JsRiscV_canUndo$exported$17)
43082
43091
  });
43083
43092
  Object.defineProperty(c, "programCounter", {
43084
- get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounter$exported$29)
43093
+ get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounter$exported$30)
43094
+ });
43095
+ Object.defineProperty(c, "programCounterLong", {
43096
+ get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounterLong$exported$28)
43085
43097
  });
43086
43098
  Object.defineProperty(c, "stackPointer", {
43087
- get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$33)
43099
+ get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$34)
43088
43100
  });
43089
43101
  Object.defineProperty(c, "terminated", {
43090
43102
  get: $rt_callWithReceiver(asr_JsRiscV_terminated$exported$11)
@@ -43121,6 +43133,26 @@ var $rt_jso_marker = Symbol("jsoClass");
43121
43133
  Object.defineProperty(c, "source", {
43122
43134
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
43123
43135
  });
43136
+ c = asr_JsRiscVTokenizedLine.prototype;
43137
+ Object.defineProperty(c, "line", {
43138
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
43139
+ });
43140
+ Object.defineProperty(c, "tokens", {
43141
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
43142
+ });
43143
+ c = asr_JsBackStep.prototype;
43144
+ Object.defineProperty(c, "pc", {
43145
+ get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
43146
+ });
43147
+ Object.defineProperty(c, "action", {
43148
+ get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
43149
+ });
43150
+ Object.defineProperty(c, "param1", {
43151
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
43152
+ });
43153
+ Object.defineProperty(c, "param2", {
43154
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
43155
+ });
43124
43156
  c = asr_JsStackFrame.prototype;
43125
43157
  Object.defineProperty(c, "pc", {
43126
43158
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -43137,13 +43169,6 @@ var $rt_jso_marker = Symbol("jsoClass");
43137
43169
  Object.defineProperty(c, "toAddress", {
43138
43170
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
43139
43171
  });
43140
- c = asr_JsRiscVTokenizedLine.prototype;
43141
- Object.defineProperty(c, "line", {
43142
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
43143
- });
43144
- Object.defineProperty(c, "tokens", {
43145
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
43146
- });
43147
43172
  c = asr_JsCompilationResult.prototype;
43148
43173
  Object.defineProperty(c, "hasErrors", {
43149
43174
  get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
@@ -43154,19 +43179,6 @@ var $rt_jso_marker = Symbol("jsoClass");
43154
43179
  Object.defineProperty(c, "errors", {
43155
43180
  get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
43156
43181
  });
43157
- c = asr_JsBackStep.prototype;
43158
- Object.defineProperty(c, "pc", {
43159
- get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
43160
- });
43161
- Object.defineProperty(c, "action", {
43162
- get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
43163
- });
43164
- Object.defineProperty(c, "param1", {
43165
- get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
43166
- });
43167
- Object.defineProperty(c, "param2", {
43168
- get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
43169
- });
43170
43182
  c = asr_JsCompilationResult$JsCompilationError.prototype;
43171
43183
  Object.defineProperty(c, "macroExpansionHistory", {
43172
43184
  get: $rt_callWithReceiver(asr_JsCompilationResult$JsCompilationError_getMacroExpansionHistory$exported$3)
@@ -43217,22 +43229,22 @@ function $rt_export_class_JsProgramStatement_70() {
43217
43229
  throw new Error("Can't instantiate this class directly");
43218
43230
  }
43219
43231
  $rt_export_class_JsProgramStatement_70.prototype = asr_JsProgramStatement.prototype;
43220
- function $rt_export_class_JsStackFrame_72() {
43232
+ function $rt_export_class_JsRiscVTokenizedLine_78() {
43221
43233
  throw new Error("Can't instantiate this class directly");
43222
43234
  }
43223
- $rt_export_class_JsStackFrame_72.prototype = asr_JsStackFrame.prototype;
43224
- function $rt_export_class_JsRiscVTokenizedLine_76() {
43235
+ $rt_export_class_JsRiscVTokenizedLine_78.prototype = asr_JsRiscVTokenizedLine.prototype;
43236
+ function $rt_export_class_JsBackStep_81() {
43225
43237
  throw new Error("Can't instantiate this class directly");
43226
43238
  }
43227
- $rt_export_class_JsRiscVTokenizedLine_76.prototype = asr_JsRiscVTokenizedLine.prototype;
43228
- function $rt_export_class_JsCompilationResult_77() {
43239
+ $rt_export_class_JsBackStep_81.prototype = asr_JsBackStep.prototype;
43240
+ function $rt_export_class_JsStackFrame_82() {
43229
43241
  throw new Error("Can't instantiate this class directly");
43230
43242
  }
43231
- $rt_export_class_JsCompilationResult_77.prototype = asr_JsCompilationResult.prototype;
43232
- function $rt_export_class_JsBackStep_84() {
43243
+ $rt_export_class_JsStackFrame_82.prototype = asr_JsStackFrame.prototype;
43244
+ function $rt_export_class_JsCompilationResult_83() {
43233
43245
  throw new Error("Can't instantiate this class directly");
43234
43246
  }
43235
- $rt_export_class_JsBackStep_84.prototype = asr_JsBackStep.prototype;
43247
+ $rt_export_class_JsCompilationResult_83.prototype = asr_JsCompilationResult.prototype;
43236
43248
  function $rt_export_class_JsCompilationError_350() {
43237
43249
  throw new Error("Can't instantiate this class directly");
43238
43250
  }