@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.mjs CHANGED
@@ -2709,7 +2709,7 @@ var asr_JsRiscV_getRegistersValues$exported$6 = (var$1) => {
2709
2709
  asr_JsRiscV_$callClinit();
2710
2710
  var$1;
2711
2711
  var$1 = ju_Arrays_stream(asrrh_RegisterFile_getRegisters());
2712
- var$2 = new asr_JsRiscV$getRegistersValues$lambda$_24_0();
2712
+ var$2 = new asr_JsRiscV$getRegistersValues$lambda$_25_0();
2713
2713
  var$1 = var$1;
2714
2714
  var$3 = new jusi_MappingToIntStreamImpl();
2715
2715
  var$3.$source1 = var$1;
@@ -2920,9 +2920,9 @@ var asr_JsRiscV_getUndoStack$exported$14 = (var$1) => {
2920
2920
  var$6 = var$6 + 1 | 0;
2921
2921
  }
2922
2922
  var$1 = ju_Arrays_stream(var$4);
2923
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_25_0();
2923
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_26_0();
2924
2924
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
2925
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_25_1();
2925
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_26_1();
2926
2926
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
2927
2927
  };
2928
2928
  var asr_JsRiscV_setMemoryBytes$exported$15 = (var$1, var$2, var$3) => {
@@ -3114,21 +3114,26 @@ var asr_JsRiscV_simulateWithBreakpoints$exported$27 = (var$1, var$2) => {
3114
3114
  }
3115
3115
  $rt_nativeThread().push(var$1, var$2, var$3, var$4, $ptr);
3116
3116
  };
3117
- var asr_JsRiscV_getCurrentStatementIndex$exported$28 = (var$1) => {
3117
+ var asr_JsRiscV_getProgramCounterLong$exported$28 = (var$1) => {
3118
+ asr_JsRiscV_$callClinit();
3119
+ var$1;
3120
+ return jm_BigInteger_valueOf(asrrh_Register_getValue(asrrh_RegisterFile_getProgramCounterRegister()));
3121
+ };
3122
+ var asr_JsRiscV_getCurrentStatementIndex$exported$29 = (var$1) => {
3118
3123
  asr_JsRiscV_$callClinit();
3119
3124
  return asr_RARS_getStatementAtAddress(var$1.$main, asrrh_RegisterFile_getProgramCounter()).$sourceLine0;
3120
3125
  };
3121
- var asr_JsRiscV_getProgramCounter$exported$29 = (var$1) => {
3126
+ var asr_JsRiscV_getProgramCounter$exported$30 = (var$1) => {
3122
3127
  asr_JsRiscV_$callClinit();
3123
3128
  var$1;
3124
3129
  return asrrh_RegisterFile_getProgramCounter();
3125
3130
  };
3126
- var asr_JsRiscV_getStackPointerLong$exported$30 = (var$1) => {
3131
+ var asr_JsRiscV_getStackPointerLong$exported$31 = (var$1) => {
3127
3132
  asr_JsRiscV_$callClinit();
3128
3133
  var$1;
3129
3134
  return jm_BigInteger_valueOf(asrrh_RegisterFile_getStackPointerRegister().$getValue());
3130
3135
  };
3131
- var asr_JsRiscV_getRegistersValuesLong$exported$31 = (var$1) => {
3136
+ var asr_JsRiscV_getRegistersValuesLong$exported$32 = (var$1) => {
3132
3137
  let var$2, var$3, var$4, var$5, var$6;
3133
3138
  asr_JsRiscV_$callClinit();
3134
3139
  var$1;
@@ -3143,7 +3148,7 @@ var asr_JsRiscV_getRegistersValuesLong$exported$31 = (var$1) => {
3143
3148
  }
3144
3149
  return otji_JS_wrap(var$4);
3145
3150
  };
3146
- var asr_JsRiscV_readMemoryBytes$exported$32 = (var$1, var$2, var$3) => {
3151
+ var asr_JsRiscV_readMemoryBytes$exported$33 = (var$1, var$2, var$3) => {
3147
3152
  let var$4, var$5, var$6, var$7, var$8;
3148
3153
  asr_JsRiscV_$callClinit();
3149
3154
  var$4 = var$2;
@@ -3159,7 +3164,7 @@ var asr_JsRiscV_readMemoryBytes$exported$32 = (var$1, var$2, var$3) => {
3159
3164
  }
3160
3165
  return otji_JS_wrap0(var$6);
3161
3166
  };
3162
- var asr_JsRiscV_getStackPointer$exported$33 = (var$1) => {
3167
+ var asr_JsRiscV_getStackPointer$exported$34 = (var$1) => {
3163
3168
  asr_JsRiscV_$callClinit();
3164
3169
  var$1;
3165
3170
  return Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
@@ -3278,9 +3283,9 @@ var asr_JsRiscV_getInstructionSet$exported$4 = () => {
3278
3283
  if (asr_Globals_instructionSet === null)
3279
3284
  asr_RARS_initializeRISCV();
3280
3285
  var$1 = ju_Collection_stream(asr_Globals_instructionSet.$instructionList);
3281
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_38_0();
3286
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_39_0();
3282
3287
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
3283
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_38_1();
3288
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_39_1();
3284
3289
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
3285
3290
  };
3286
3291
  var asr_JsRiscV__clinit_ = () => {
@@ -3308,11 +3313,11 @@ var asr_JsRiscV__clinit_ = () => {
3308
3313
  ju_Comparator$NaturalOrder__clinit_();
3309
3314
  asrr_BasicInstructionFormat__clinit_();
3310
3315
  jl_Long__clinit_();
3311
- asrrh_Stack__clinit_();
3316
+ asrs_Simulator$Reason__clinit_();
3312
3317
  asrrh_FloatingPointRegisterFile__clinit_();
3313
3318
  asrrh_ControlAndStatusRegisterFile__clinit_();
3314
3319
  asrrh_InterruptController__clinit_();
3315
- asrs_Simulator$Reason__clinit_();
3320
+ asrrh_Stack__clinit_();
3316
3321
  asra_Tokenizer__clinit_();
3317
3322
  asrs_Simulator__clinit_();
3318
3323
  asra_Directives__clinit_();
@@ -3330,11 +3335,11 @@ var asr_JsRiscV__clinit_ = () => {
3330
3335
  jnc_CoderResult__clinit_();
3331
3336
  jn_ByteOrder__clinit_();
3332
3337
  asrjt_Float64__clinit_();
3333
- asrjo_Arithmetic__clinit_();
3334
3338
  asrjt_Float32__clinit_();
3339
+ asrjo_Arithmetic__clinit_();
3335
3340
  asrj_RoundingMode__clinit_();
3336
- asrj_Flags__clinit_();
3337
3341
  asrji_ExactFloat__clinit_();
3342
+ asrj_Flags__clinit_();
3338
3343
  asrrs_RandomStreams__clinit_();
3339
3344
  otcit_FloatSynthesizer__clinit_();
3340
3345
  jl_Byte__clinit_();
@@ -4010,8 +4015,8 @@ var asr_RARS_simulate = ($this, $limit) => {
4010
4015
  $rt_nativeThread().push($this, $limit, var$2, $ptr);
4011
4016
  };
4012
4017
  var juf_Function = $rt_classWithoutFields(0);
4013
- var asr_JsRiscV$getInstructionSet$lambda$_38_0 = $rt_classWithoutFields();
4014
- var asr_JsRiscV$getInstructionSet$lambda$_38_0_apply = (var$0, var$1) => {
4018
+ var asr_JsRiscV$getInstructionSet$lambda$_39_0 = $rt_classWithoutFields();
4019
+ var asr_JsRiscV$getInstructionSet$lambda$_39_0_apply = (var$0, var$1) => {
4015
4020
  let var$2, var$3;
4016
4021
  var$1 = var$1;
4017
4022
  var$2 = new asr_JsInstruction();
@@ -4027,8 +4032,8 @@ var asr_JsRiscV$getInstructionSet$lambda$_38_0_apply = (var$0, var$1) => {
4027
4032
  return var$2;
4028
4033
  };
4029
4034
  var juf_IntFunction = $rt_classWithoutFields(0);
4030
- var asr_JsRiscV$getInstructionSet$lambda$_38_1 = $rt_classWithoutFields();
4031
- var asr_JsRiscV$getInstructionSet$lambda$_38_1_apply = (var$0, var$1) => {
4035
+ var asr_JsRiscV$getInstructionSet$lambda$_39_1 = $rt_classWithoutFields();
4036
+ var asr_JsRiscV$getInstructionSet$lambda$_39_1_apply = (var$0, var$1) => {
4032
4037
  asr_JsRiscV_$callClinit();
4033
4038
  return $rt_createArray(asr_JsInstruction, var$1);
4034
4039
  };
@@ -6283,7 +6288,7 @@ var asrrh_MemoryConfigurations_buildConfigurationCollection = () => {
6283
6288
  asrrh_Memory_clear(asr_Globals_memory);
6284
6289
  asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(164)), Long_fromInt(asrrh_MemoryConfiguration_getGlobalPointer(var$2)));
6285
6290
  asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(165)), Long_fromInt(asrrh_MemoryConfiguration_getStackPointer(var$2)));
6286
- asrrh_Register_changeResetValue(asrrh_RegisterFile_programCounter, Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6291
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_getProgramCounterRegister(), Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6287
6292
  asrrh_RegisterFile_initializeProgramCounter(asrrh_MemoryConfiguration_getTextBaseAddress(var$2));
6288
6293
  asrrh_RegisterFile_resetRegisters();
6289
6294
  }
@@ -7191,6 +7196,10 @@ var asrrh_RegisterFile_getProgramCounter = () => {
7191
7196
  asrrh_RegisterFile_$callClinit();
7192
7197
  return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7193
7198
  };
7199
+ var asrrh_RegisterFile_getProgramCounterRegister = () => {
7200
+ asrrh_RegisterFile_$callClinit();
7201
+ return asrrh_RegisterFile_programCounter;
7202
+ };
7194
7203
  var asrrh_RegisterFile_resetRegisters = () => {
7195
7204
  asrrh_RegisterFile_$callClinit();
7196
7205
  asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
@@ -7246,30 +7255,6 @@ var asrrh_RegisterFile__clinit_ = () => {
7246
7255
  asrrh_RegisterFile_instance = var$1;
7247
7256
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(243), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7248
7257
  };
7249
- function asr_JsStackFrame() {
7250
- let a = this;
7251
- jl_Object.call(a);
7252
- a.$pc3 = 0;
7253
- a.$toAddress0 = 0;
7254
- a.$sp = 0;
7255
- a.$fp = 0;
7256
- a.$registers = null;
7257
- }
7258
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7259
- return var$1.$pc3;
7260
- };
7261
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7262
- return var$1.$toAddress0;
7263
- };
7264
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7265
- return otji_JS_wrap0(var$1.$registers);
7266
- };
7267
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7268
- return var$1.$sp;
7269
- };
7270
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7271
- return var$1.$fp;
7272
- };
7273
7258
  function jm_BigInteger() {
7274
7259
  let a = this;
7275
7260
  jl_Number.call(a);
@@ -7642,97 +7627,6 @@ var jm_BigInteger__clinit_ = () => {
7642
7627
  $i = $i + 1 | 0;
7643
7628
  }
7644
7629
  };
7645
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7646
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7647
- let var$2, var$3, var$4, var$5;
7648
- var$1 = var$1;
7649
- asr_JsRiscV_$callClinit();
7650
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7651
- var$3 = var$2.data;
7652
- var$4 = 0;
7653
- while (var$4 < asra_TokenList_size(var$1)) {
7654
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7655
- var$4 = var$4 + 1 | 0;
7656
- }
7657
- var$5 = new asr_JsRiscVTokenizedLine();
7658
- var$5.$line0 = var$1.$processedLine;
7659
- var$5.$tokens0 = var$2;
7660
- return var$5;
7661
- };
7662
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7663
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7664
- asr_JsRiscV_$callClinit();
7665
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7666
- };
7667
- function asr_JsRiscVTokenizedLine() {
7668
- let a = this;
7669
- jl_Object.call(a);
7670
- a.$line0 = null;
7671
- a.$tokens0 = null;
7672
- }
7673
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7674
- return $rt_ustr(var$1.$line0);
7675
- };
7676
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7677
- return otji_JS_wrap(var$1.$tokens0);
7678
- };
7679
- function asr_JsCompilationResult() {
7680
- let a = this;
7681
- jl_Object.call(a);
7682
- a.$report = null;
7683
- a.$errors1 = null;
7684
- }
7685
- var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
7686
- let var$2, var$3, var$4;
7687
- $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
7688
- $errorReport = ju_Collection_stream($errorReport.$messages);
7689
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
7690
- var$2.$_06 = $this;
7691
- $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
7692
- var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
7693
- $errorReport = $errorReport;
7694
- var$3 = ju_ArrayList__init_();
7695
- var$4 = $errorReport;
7696
- while (true) {
7697
- $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
7698
- $errorReport.$_08 = var$2;
7699
- $errorReport.$_12 = var$3;
7700
- if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
7701
- break;
7702
- }
7703
- $this.$errors1 = var$3;
7704
- };
7705
- var asr_JsCompilationResult__init_ = (var_0) => {
7706
- let var_1 = new asr_JsCompilationResult();
7707
- asr_JsCompilationResult__init_0(var_1, var_0);
7708
- return var_1;
7709
- };
7710
- var asr_JsCompilationResult_getErrors$exported$0 = (var$1) => {
7711
- let var$2;
7712
- var$1 = var$1.$errors1;
7713
- var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
7714
- return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
7715
- };
7716
- var asr_JsCompilationResult_hasErrors$exported$1 = (var$1) => {
7717
- var$1 = var$1;
7718
- return !!(ju_AbstractCollection_isEmpty(var$1.$errors1) ? 0 : 1);
7719
- };
7720
- var asr_JsCompilationResult_getReport$exported$2 = (var$1) => {
7721
- return $rt_ustr(var$1.$report);
7722
- };
7723
- function asr_AssemblyException() {
7724
- jl_Exception.call(this);
7725
- this.$errs = null;
7726
- }
7727
- var asr_AssemblyException__init_0 = ($this, $errs) => {
7728
- jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
7729
- $this.$errs = $errs;
7730
- };
7731
- var asr_AssemblyException__init_ = (var_0) => {
7732
- let var_1 = new asr_AssemblyException();
7733
- asr_AssemblyException__init_0(var_1, var_0);
7734
- return var_1;
7735
- };
7736
7630
  var ju_Arrays = $rt_classWithoutFields();
7737
7631
  var ju_Arrays_copyOf1 = ($array, $length) => {
7738
7632
  let $result, var$4, $sz, $i;
@@ -7925,9 +7819,43 @@ var ju_Arrays_stream = ($array) => {
7925
7819
  return var$3;
7926
7820
  };
7927
7821
  var juf_ToIntFunction = $rt_classWithoutFields(0);
7928
- var asr_JsRiscV$getRegistersValues$lambda$_24_0 = $rt_classWithoutFields();
7929
- var asr_JsRiscV$getUndoStack$lambda$_25_0 = $rt_classWithoutFields();
7930
- var asr_JsRiscV$getUndoStack$lambda$_25_0_apply = (var$0, var$1) => {
7822
+ var asr_JsRiscV$getRegistersValues$lambda$_25_0 = $rt_classWithoutFields();
7823
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7824
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7825
+ let var$2, var$3, var$4, var$5;
7826
+ var$1 = var$1;
7827
+ asr_JsRiscV_$callClinit();
7828
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7829
+ var$3 = var$2.data;
7830
+ var$4 = 0;
7831
+ while (var$4 < asra_TokenList_size(var$1)) {
7832
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7833
+ var$4 = var$4 + 1 | 0;
7834
+ }
7835
+ var$5 = new asr_JsRiscVTokenizedLine();
7836
+ var$5.$line0 = var$1.$processedLine;
7837
+ var$5.$tokens0 = var$2;
7838
+ return var$5;
7839
+ };
7840
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7841
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7842
+ asr_JsRiscV_$callClinit();
7843
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7844
+ };
7845
+ function asr_JsRiscVTokenizedLine() {
7846
+ let a = this;
7847
+ jl_Object.call(a);
7848
+ a.$line0 = null;
7849
+ a.$tokens0 = null;
7850
+ }
7851
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7852
+ return $rt_ustr(var$1.$line0);
7853
+ };
7854
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7855
+ return otji_JS_wrap(var$1.$tokens0);
7856
+ };
7857
+ var asr_JsRiscV$getUndoStack$lambda$_26_0 = $rt_classWithoutFields();
7858
+ var asr_JsRiscV$getUndoStack$lambda$_26_0_apply = (var$0, var$1) => {
7931
7859
  let var$2, var$3;
7932
7860
  var$1 = var$1;
7933
7861
  var$2 = new asr_JsBackStep();
@@ -7938,8 +7866,8 @@ var asr_JsRiscV$getUndoStack$lambda$_25_0_apply = (var$0, var$1) => {
7938
7866
  var$2.$param20 = Long_lo(var$1.$param2);
7939
7867
  return var$2;
7940
7868
  };
7941
- var asr_JsRiscV$getUndoStack$lambda$_25_1 = $rt_classWithoutFields();
7942
- var asr_JsRiscV$getUndoStack$lambda$_25_1_apply = (var$0, var$1) => {
7869
+ var asr_JsRiscV$getUndoStack$lambda$_26_1 = $rt_classWithoutFields();
7870
+ var asr_JsRiscV$getUndoStack$lambda$_26_1_apply = (var$0, var$1) => {
7943
7871
  asr_JsRiscV_$callClinit();
7944
7872
  return $rt_createArray(asr_JsBackStep, var$1);
7945
7873
  };
@@ -7963,6 +7891,87 @@ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7963
7891
  var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7964
7892
  return var$1.$param10;
7965
7893
  };
7894
+ function asr_JsStackFrame() {
7895
+ let a = this;
7896
+ jl_Object.call(a);
7897
+ a.$pc3 = 0;
7898
+ a.$toAddress0 = 0;
7899
+ a.$sp = 0;
7900
+ a.$fp = 0;
7901
+ a.$registers = null;
7902
+ }
7903
+ var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7904
+ return var$1.$pc3;
7905
+ };
7906
+ var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7907
+ return var$1.$toAddress0;
7908
+ };
7909
+ var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7910
+ return otji_JS_wrap0(var$1.$registers);
7911
+ };
7912
+ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7913
+ return var$1.$sp;
7914
+ };
7915
+ var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7916
+ return var$1.$fp;
7917
+ };
7918
+ function asr_JsCompilationResult() {
7919
+ let a = this;
7920
+ jl_Object.call(a);
7921
+ a.$report = null;
7922
+ a.$errors1 = null;
7923
+ }
7924
+ var asr_JsCompilationResult__init_0 = ($this, $errorReport) => {
7925
+ let var$2, var$3, var$4;
7926
+ $this.$report = asr_ErrorList_generateErrorAndWarningReport($errorReport);
7927
+ $errorReport = ju_Collection_stream($errorReport.$messages);
7928
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_0();
7929
+ var$2.$_06 = $this;
7930
+ $errorReport = jusi_SimpleStreamImpl_map($errorReport, var$2);
7931
+ var$2 = new asr_JsCompilationResult$_init_$lambda$_0_2();
7932
+ $errorReport = $errorReport;
7933
+ var$3 = ju_ArrayList__init_();
7934
+ var$4 = $errorReport;
7935
+ while (true) {
7936
+ $errorReport = new jusi_SimpleStreamImpl$collect$lambda$_25_0();
7937
+ $errorReport.$_08 = var$2;
7938
+ $errorReport.$_12 = var$3;
7939
+ if (!jusi_WrappingStreamImpl_next(var$4, $errorReport))
7940
+ break;
7941
+ }
7942
+ $this.$errors1 = var$3;
7943
+ };
7944
+ var asr_JsCompilationResult__init_ = (var_0) => {
7945
+ let var_1 = new asr_JsCompilationResult();
7946
+ asr_JsCompilationResult__init_0(var_1, var_0);
7947
+ return var_1;
7948
+ };
7949
+ var asr_JsCompilationResult_getErrors$exported$0 = (var$1) => {
7950
+ let var$2;
7951
+ var$1 = var$1.$errors1;
7952
+ var$2 = $rt_createArray(asr_JsCompilationResult$JsCompilationError, 0);
7953
+ return otji_JS_wrap(ju_AbstractCollection_toArray(var$1, var$2));
7954
+ };
7955
+ var asr_JsCompilationResult_hasErrors$exported$1 = (var$1) => {
7956
+ var$1 = var$1;
7957
+ return !!(ju_AbstractCollection_isEmpty(var$1.$errors1) ? 0 : 1);
7958
+ };
7959
+ var asr_JsCompilationResult_getReport$exported$2 = (var$1) => {
7960
+ return $rt_ustr(var$1.$report);
7961
+ };
7962
+ function asr_AssemblyException() {
7963
+ jl_Exception.call(this);
7964
+ this.$errs = null;
7965
+ }
7966
+ var asr_AssemblyException__init_0 = ($this, $errs) => {
7967
+ jl_Throwable__init_0($this, asr_ErrorList_generateErrorAndWarningReport($errs));
7968
+ $this.$errs = $errs;
7969
+ };
7970
+ var asr_AssemblyException__init_ = (var_0) => {
7971
+ let var_1 = new asr_AssemblyException();
7972
+ asr_AssemblyException__init_0(var_1, var_0);
7973
+ return var_1;
7974
+ };
7966
7975
  var ju_Map$Entry = $rt_classWithoutFields(0);
7967
7976
  function ju_MapEntry() {
7968
7977
  let a = this;
@@ -8617,29 +8626,6 @@ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8617
8626
  if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8618
8627
  asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8619
8628
  };
8620
- function asr_JsCompilationResult$_init_$lambda$_0_0() {
8621
- jl_Object.call(this);
8622
- this.$_06 = null;
8623
- }
8624
- var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8625
- let var$2, var$3;
8626
- var$1 = var$1;
8627
- var$2 = var$0.$_06;
8628
- var$3 = new asr_JsCompilationResult$JsCompilationError();
8629
- var$3.$this$016 = var$2;
8630
- var$3.$isWarning0 = var$1.$isWarning;
8631
- var$3.$message2 = var$1.$message0;
8632
- var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8633
- var$3.$filename2 = var$1.$filename0;
8634
- var$3.$lineNumber0 = var$1.$line;
8635
- var$3.$columnNumber = var$1.$position2;
8636
- return var$3;
8637
- };
8638
- var juf_Supplier = $rt_classWithoutFields(0);
8639
- var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8640
- var juf_BiConsumer = $rt_classWithoutFields(0);
8641
- var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8642
- var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8643
8629
  var jl_AutoCloseable = $rt_classWithoutFields(0);
8644
8630
  var jus_BaseStream = $rt_classWithoutFields(0);
8645
8631
  var jus_Stream = $rt_classWithoutFields(0);
@@ -8840,6 +8826,29 @@ var asrs_BackStepper$BackstepStack_peek = ($this) => {
8840
8826
  jl_Object_monitorExitSync($this);
8841
8827
  }
8842
8828
  };
8829
+ function asr_JsCompilationResult$_init_$lambda$_0_0() {
8830
+ jl_Object.call(this);
8831
+ this.$_06 = null;
8832
+ }
8833
+ var asr_JsCompilationResult$_init_$lambda$_0_0_apply = (var$0, var$1) => {
8834
+ let var$2, var$3;
8835
+ var$1 = var$1;
8836
+ var$2 = var$0.$_06;
8837
+ var$3 = new asr_JsCompilationResult$JsCompilationError();
8838
+ var$3.$this$016 = var$2;
8839
+ var$3.$isWarning0 = var$1.$isWarning;
8840
+ var$3.$message2 = var$1.$message0;
8841
+ var$3.$macroExpansionHistory0 = asr_ErrorMessage_getMacroExpansionHistory(var$1);
8842
+ var$3.$filename2 = var$1.$filename0;
8843
+ var$3.$lineNumber0 = var$1.$line;
8844
+ var$3.$columnNumber = var$1.$position2;
8845
+ return var$3;
8846
+ };
8847
+ var juf_Supplier = $rt_classWithoutFields(0);
8848
+ var asr_JsCompilationResult$_init_$lambda$_0_1 = $rt_classWithoutFields();
8849
+ var juf_BiConsumer = $rt_classWithoutFields(0);
8850
+ var asr_JsCompilationResult$_init_$lambda$_0_2 = $rt_classWithoutFields();
8851
+ var asr_JsCompilationResult$_init_$lambda$_0_3 = $rt_classWithoutFields();
8843
8852
  var jl_Math = $rt_classWithoutFields();
8844
8853
  var jl_Math_pow = ($x, $y) => {
8845
8854
  return jl_Math_powImpl($x, $y);
@@ -14150,376 +14159,6 @@ var ju_AbstractList$1_next = ($this) => {
14150
14159
  $this.$index4 = var$3 + 1 | 0;
14151
14160
  return var$2.$get0(var$3);
14152
14161
  };
14153
- var jlr_Array = $rt_classWithoutFields();
14154
- var jlr_Array_getLength = (var$1) => {
14155
- if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
14156
- $rt_throw(jl_IllegalArgumentException__init_());
14157
- }
14158
- return var$1.data.length;
14159
- };
14160
- var jlr_Array_newInstance = (var$1, $length) => {
14161
- if (var$1 === null) {
14162
- var$1 = new jl_NullPointerException();
14163
- jl_Throwable__init_(var$1);
14164
- $rt_throw(var$1);
14165
- }
14166
- if (var$1 === $rt_cls($rt_voidcls)) {
14167
- var$1 = new jl_IllegalArgumentException();
14168
- jl_Throwable__init_(var$1);
14169
- $rt_throw(var$1);
14170
- }
14171
- if ($length >= 0)
14172
- return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
14173
- var$1 = new jl_NegativeArraySizeException();
14174
- jl_Throwable__init_(var$1);
14175
- $rt_throw(var$1);
14176
- };
14177
- var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14178
- if (var$1.$meta.primitive) {
14179
- switch (var$1) {
14180
- }
14181
- ;
14182
- }
14183
- return $rt_createArray(var$1, var$2);
14184
- };
14185
- var asrrh_Stack = $rt_classWithoutFields();
14186
- var asrrh_Stack_callStack = null;
14187
- var asrrh_Stack__clinit_ = () => {
14188
- asrrh_Stack_callStack = ju_ArrayList__init_();
14189
- };
14190
- var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
14191
- var asrrh_FloatingPointRegisterFile_instance = null;
14192
- var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
14193
- asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
14194
- };
14195
- var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
14196
- let $lval;
14197
- $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
14198
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14199
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
14200
- else
14201
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval));
14202
- };
14203
- var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
14204
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14205
- asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
14206
- else
14207
- asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val));
14208
- };
14209
- var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
14210
- let $lval;
14211
- $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14212
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14213
- return 2143289344;
14214
- return Long_lo($lval);
14215
- };
14216
- var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
14217
- return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14218
- };
14219
- var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
14220
- let $lval;
14221
- $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
14222
- if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14223
- return 2143289344;
14224
- return Long_lo($lval);
14225
- };
14226
- var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
14227
- return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
14228
- };
14229
- var asrrh_FloatingPointRegisterFile__clinit_ = () => {
14230
- let var$1, var$2, var$3;
14231
- var$1 = new asrrh_RegisterBlock();
14232
- var$2 = $rt_createArray(asrrh_Register, 32);
14233
- var$3 = var$2.data;
14234
- var$3[0] = asrrh_Register__init_($rt_s(1083), 0, Long_ZERO);
14235
- var$3[1] = asrrh_Register__init_($rt_s(1084), 1, Long_ZERO);
14236
- var$3[2] = asrrh_Register__init_($rt_s(1085), 2, Long_ZERO);
14237
- var$3[3] = asrrh_Register__init_($rt_s(1086), 3, Long_ZERO);
14238
- var$3[4] = asrrh_Register__init_($rt_s(1087), 4, Long_ZERO);
14239
- var$3[5] = asrrh_Register__init_($rt_s(1088), 5, Long_ZERO);
14240
- var$3[6] = asrrh_Register__init_($rt_s(1089), 6, Long_ZERO);
14241
- var$3[7] = asrrh_Register__init_($rt_s(1090), 7, Long_ZERO);
14242
- var$3[8] = asrrh_Register__init_($rt_s(1091), 8, Long_ZERO);
14243
- var$3[9] = asrrh_Register__init_($rt_s(1092), 9, Long_ZERO);
14244
- var$3[10] = asrrh_Register__init_($rt_s(1042), 10, Long_ZERO);
14245
- var$3[11] = asrrh_Register__init_($rt_s(1036), 11, Long_ZERO);
14246
- var$3[12] = asrrh_Register__init_($rt_s(1093), 12, Long_ZERO);
14247
- var$3[13] = asrrh_Register__init_($rt_s(1094), 13, Long_ZERO);
14248
- var$3[14] = asrrh_Register__init_($rt_s(1095), 14, Long_ZERO);
14249
- var$3[15] = asrrh_Register__init_($rt_s(1096), 15, Long_ZERO);
14250
- var$3[16] = asrrh_Register__init_($rt_s(1097), 16, Long_ZERO);
14251
- var$3[17] = asrrh_Register__init_($rt_s(1098), 17, Long_ZERO);
14252
- var$3[18] = asrrh_Register__init_($rt_s(1099), 18, Long_ZERO);
14253
- var$3[19] = asrrh_Register__init_($rt_s(1100), 19, Long_ZERO);
14254
- var$3[20] = asrrh_Register__init_($rt_s(1101), 20, Long_ZERO);
14255
- var$3[21] = asrrh_Register__init_($rt_s(1102), 21, Long_ZERO);
14256
- var$3[22] = asrrh_Register__init_($rt_s(1103), 22, Long_ZERO);
14257
- var$3[23] = asrrh_Register__init_($rt_s(1104), 23, Long_ZERO);
14258
- var$3[24] = asrrh_Register__init_($rt_s(1105), 24, Long_ZERO);
14259
- var$3[25] = asrrh_Register__init_($rt_s(1106), 25, Long_ZERO);
14260
- var$3[26] = asrrh_Register__init_($rt_s(1107), 26, Long_ZERO);
14261
- var$3[27] = asrrh_Register__init_($rt_s(1108), 27, Long_ZERO);
14262
- var$3[28] = asrrh_Register__init_($rt_s(1109), 28, Long_ZERO);
14263
- var$3[29] = asrrh_Register__init_($rt_s(1110), 29, Long_ZERO);
14264
- var$3[30] = asrrh_Register__init_($rt_s(1111), 30, Long_ZERO);
14265
- var$3[31] = asrrh_Register__init_($rt_s(1112), 31, Long_ZERO);
14266
- asrrh_RegisterBlock__init_(var$1, 102, var$2);
14267
- asrrh_FloatingPointRegisterFile_instance = var$1;
14268
- };
14269
- var asrrh_ControlAndStatusRegisterFile = $rt_classWithoutFields();
14270
- var asrrh_ControlAndStatusRegisterFile_instance = null;
14271
- var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
14272
- let var$3;
14273
- if (asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num) instanceof asrrh_ReadOnlyRegister)
14274
- return 1;
14275
- if ($num >= 3200 && $num <= 3202)
14276
- return 1;
14277
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14278
- asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14279
- else {
14280
- var$3 = asr_Globals_program.$backStepper;
14281
- $val = asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14282
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
14283
- }
14284
- return 0;
14285
- };
14286
- var asrrh_ControlAndStatusRegisterFile_updateRegister = ($name, $val) => {
14287
- asrrh_ControlAndStatusRegisterFile_updateRegister0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14288
- };
14289
- var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0 = ($num, $val) => {
14290
- let var$3;
14291
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14292
- asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14293
- else {
14294
- var$3 = asr_Globals_program.$backStepper;
14295
- $val = asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14296
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, asrs_BackStepper_pc(var$3), $num, $val);
14297
- }
14298
- };
14299
- var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($name, $val) => {
14300
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14301
- };
14302
- var asrrh_ControlAndStatusRegisterFile_orRegister0 = ($num, $val) => {
14303
- return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_or(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), $val));
14304
- };
14305
- var asrrh_ControlAndStatusRegisterFile_orRegister = ($name, $val) => {
14306
- asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_or(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), $val));
14307
- };
14308
- var asrrh_ControlAndStatusRegisterFile_clearRegister0 = ($num, $val) => {
14309
- return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_and(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), Long_xor($val, Long_fromInt(-1))));
14310
- };
14311
- var asrrh_ControlAndStatusRegisterFile_clearRegister = ($name, $val) => {
14312
- asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_and(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), Long_xor($val, Long_fromInt(-1))));
14313
- };
14314
- var asrrh_ControlAndStatusRegisterFile_getValueLong = ($num) => {
14315
- return asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num);
14316
- };
14317
- var asrrh_ControlAndStatusRegisterFile_getValue = ($name) => {
14318
- return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name));
14319
- };
14320
- var asrrh_ControlAndStatusRegisterFile_getValueNoNotify = ($name) => {
14321
- return asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$getValueNoNotify();
14322
- };
14323
- var asrrh_ControlAndStatusRegisterFile_getRegisters = () => {
14324
- return asrrh_ControlAndStatusRegisterFile_instance.$regFile;
14325
- };
14326
- var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
14327
- let $tmp_0, var$2;
14328
- $tmp_0 = $rt_createArray(asrrh_Register, 17);
14329
- var$2 = $tmp_0.data;
14330
- var$2[0] = asrrh_MaskedRegister__init_($rt_s(679), 0, Long_ZERO, Long_fromInt(-18));
14331
- var$2[1] = null;
14332
- var$2[2] = null;
14333
- var$2[3] = asrrh_MaskedRegister__init_($rt_s(1113), 3, Long_ZERO, Long_fromInt(-256));
14334
- var$2[4] = asrrh_Register__init_($rt_s(1114), 4, Long_ZERO);
14335
- var$2[5] = asrrh_Register__init_($rt_s(1115), 5, Long_ZERO);
14336
- var$2[6] = asrrh_Register__init_($rt_s(1116), 64, Long_ZERO);
14337
- var$2[7] = asrrh_Register__init_($rt_s(680), 65, Long_ZERO);
14338
- var$2[8] = asrrh_Register__init_($rt_s(1117), 66, Long_ZERO);
14339
- var$2[9] = asrrh_Register__init_($rt_s(1118), 67, Long_ZERO);
14340
- var$2[10] = asrrh_Register__init_($rt_s(1119), 68, Long_ZERO);
14341
- var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1120), 3072, 0);
14342
- var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1121), 3073, 0);
14343
- var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1122), 3074, 0);
14344
- var$2[14] = null;
14345
- var$2[15] = null;
14346
- var$2[16] = null;
14347
- var$2[1] = asrrh_LinkedRegister__init_($rt_s(446), 1, var$2[3], Long_fromInt(31));
14348
- var$2[2] = asrrh_LinkedRegister__init_($rt_s(447), 2, var$2[3], Long_fromInt(224));
14349
- var$2[14] = asrrh_LinkedRegister__init_($rt_s(1123), 3200, var$2[11], Long_create(0, 4294967295));
14350
- var$2[15] = asrrh_LinkedRegister__init_($rt_s(1124), 3201, var$2[12], Long_create(0, 4294967295));
14351
- var$2[16] = asrrh_LinkedRegister__init_($rt_s(1125), 3202, var$2[13], Long_create(0, 4294967295));
14352
- asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
14353
- };
14354
- var asrrh_InterruptController = $rt_classWithoutFields();
14355
- var asrrh_InterruptController_lock = null;
14356
- var asrrh_InterruptController_externalPending = 0;
14357
- var asrrh_InterruptController_externalValue = 0;
14358
- var asrrh_InterruptController_timerPending = 0;
14359
- var asrrh_InterruptController_timerValue = 0;
14360
- var asrrh_InterruptController_trapPending = 0;
14361
- var asrrh_InterruptController_trapSE = null;
14362
- var asrrh_InterruptController_trapPC = 0;
14363
- var asrrh_InterruptController_$assertionsDisabled = 0;
14364
- var asrrh_InterruptController_registerSynchronousTrap = ($se, $pc) => {
14365
- let var$3, $$je;
14366
- var$3 = asrrh_InterruptController_lock;
14367
- jl_Object_monitorEnterSync(var$3);
14368
- a: {
14369
- b: {
14370
- try {
14371
- if (!asrrh_InterruptController_trapPending)
14372
- break b;
14373
- jl_Object_monitorExitSync(var$3);
14374
- } catch ($$e) {
14375
- $$je = $rt_wrapException($$e);
14376
- $se = $$je;
14377
- break a;
14378
- }
14379
- return 0;
14380
- }
14381
- try {
14382
- asrrh_InterruptController_trapSE = $se;
14383
- asrrh_InterruptController_trapPC = $pc;
14384
- asrrh_InterruptController_trapPending = 1;
14385
- jl_Object_monitorExitSync(var$3);
14386
- } catch ($$e) {
14387
- $$je = $rt_wrapException($$e);
14388
- $se = $$je;
14389
- break a;
14390
- }
14391
- return 1;
14392
- }
14393
- jl_Object_monitorExitSync(var$3);
14394
- $rt_throw($se);
14395
- };
14396
- var asrrh_InterruptController_externalPending0 = () => {
14397
- let var$1, var$2, var$3, $$je;
14398
- var$1 = asrrh_InterruptController_lock;
14399
- jl_Object_monitorEnterSync(var$1);
14400
- a: {
14401
- try {
14402
- var$2 = asrrh_InterruptController_externalPending;
14403
- jl_Object_monitorExitSync(var$1);
14404
- } catch ($$e) {
14405
- $$je = $rt_wrapException($$e);
14406
- var$3 = $$je;
14407
- break a;
14408
- }
14409
- return var$2;
14410
- }
14411
- jl_Object_monitorExitSync(var$1);
14412
- $rt_throw(var$3);
14413
- };
14414
- var asrrh_InterruptController_timerPending0 = () => {
14415
- let var$1, var$2, var$3, $$je;
14416
- var$1 = asrrh_InterruptController_lock;
14417
- jl_Object_monitorEnterSync(var$1);
14418
- a: {
14419
- try {
14420
- var$2 = asrrh_InterruptController_timerPending;
14421
- jl_Object_monitorExitSync(var$1);
14422
- } catch ($$e) {
14423
- $$je = $rt_wrapException($$e);
14424
- var$3 = $$je;
14425
- break a;
14426
- }
14427
- return var$2;
14428
- }
14429
- jl_Object_monitorExitSync(var$1);
14430
- $rt_throw(var$3);
14431
- };
14432
- var asrrh_InterruptController_trapPending0 = () => {
14433
- let var$1, var$2, var$3, $$je;
14434
- var$1 = asrrh_InterruptController_lock;
14435
- jl_Object_monitorEnterSync(var$1);
14436
- a: {
14437
- try {
14438
- var$2 = asrrh_InterruptController_trapPending;
14439
- jl_Object_monitorExitSync(var$1);
14440
- } catch ($$e) {
14441
- $$je = $rt_wrapException($$e);
14442
- var$3 = $$je;
14443
- break a;
14444
- }
14445
- return var$2;
14446
- }
14447
- jl_Object_monitorExitSync(var$1);
14448
- $rt_throw(var$3);
14449
- };
14450
- var asrrh_InterruptController_claimExternal = () => {
14451
- let var$1, var$2, var$3, $$je;
14452
- var$1 = asrrh_InterruptController_lock;
14453
- jl_Object_monitorEnterSync(var$1);
14454
- a: {
14455
- try {
14456
- if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14457
- $rt_throw(jl_AssertionError__init_($rt_s(1126)));
14458
- asrrh_InterruptController_externalPending = 0;
14459
- var$2 = asrrh_InterruptController_externalValue;
14460
- jl_Object_monitorExitSync(var$1);
14461
- } catch ($$e) {
14462
- $$je = $rt_wrapException($$e);
14463
- var$3 = $$je;
14464
- break a;
14465
- }
14466
- return var$2;
14467
- }
14468
- jl_Object_monitorExitSync(var$1);
14469
- $rt_throw(var$3);
14470
- };
14471
- var asrrh_InterruptController_claimTimer = () => {
14472
- let var$1, var$2, var$3, $$je;
14473
- var$1 = asrrh_InterruptController_lock;
14474
- jl_Object_monitorEnterSync(var$1);
14475
- a: {
14476
- try {
14477
- if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14478
- $rt_throw(jl_AssertionError__init_($rt_s(1127)));
14479
- asrrh_InterruptController_timerPending = 0;
14480
- var$2 = asrrh_InterruptController_timerValue;
14481
- jl_Object_monitorExitSync(var$1);
14482
- } catch ($$e) {
14483
- $$je = $rt_wrapException($$e);
14484
- var$3 = $$je;
14485
- break a;
14486
- }
14487
- return var$2;
14488
- }
14489
- jl_Object_monitorExitSync(var$1);
14490
- $rt_throw(var$3);
14491
- };
14492
- var asrrh_InterruptController_claimTrap = () => {
14493
- let var$1, var$2, var$3, $$je;
14494
- var$1 = asrrh_InterruptController_lock;
14495
- jl_Object_monitorEnterSync(var$1);
14496
- a: {
14497
- try {
14498
- var$2 = asrrh_InterruptController_$assertionsDisabled;
14499
- if (!var$2 && !asrrh_InterruptController_trapPending)
14500
- $rt_throw(jl_AssertionError__init_($rt_s(1128)));
14501
- if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14502
- $rt_throw(jl_AssertionError__init_($rt_s(1129)));
14503
- asrrh_InterruptController_trapPending = 0;
14504
- var$3 = asrrh_InterruptController_trapSE;
14505
- jl_Object_monitorExitSync(var$1);
14506
- } catch ($$e) {
14507
- $$je = $rt_wrapException($$e);
14508
- var$3 = $$je;
14509
- break a;
14510
- }
14511
- return var$3;
14512
- }
14513
- jl_Object_monitorExitSync(var$1);
14514
- $rt_throw(var$3);
14515
- };
14516
- var asrrh_InterruptController__clinit_ = () => {
14517
- asrrh_InterruptController_$assertionsDisabled = 0;
14518
- asrrh_InterruptController_lock = new jl_Object();
14519
- asrrh_InterruptController_externalPending = 0;
14520
- asrrh_InterruptController_timerPending = 0;
14521
- asrrh_InterruptController_trapPending = 0;
14522
- };
14523
14162
  var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14524
14163
  var asrs_Simulator$Reason_BREAKPOINT = null;
14525
14164
  var asrs_Simulator$Reason_EXCEPTION = null;
@@ -14535,25 +14174,25 @@ var asrs_Simulator$Reason_values = () => {
14535
14174
  var asrs_Simulator$Reason__clinit_ = () => {
14536
14175
  let var$1, var$2, var$3;
14537
14176
  var$1 = new asrs_Simulator$Reason();
14538
- jl_Enum__init_(var$1, $rt_s(1130), 0);
14177
+ jl_Enum__init_(var$1, $rt_s(1083), 0);
14539
14178
  asrs_Simulator$Reason_BREAKPOINT = var$1;
14540
14179
  var$1 = new asrs_Simulator$Reason();
14541
- jl_Enum__init_(var$1, $rt_s(1131), 1);
14180
+ jl_Enum__init_(var$1, $rt_s(1084), 1);
14542
14181
  asrs_Simulator$Reason_EXCEPTION = var$1;
14543
14182
  var$1 = new asrs_Simulator$Reason();
14544
- jl_Enum__init_(var$1, $rt_s(1132), 2);
14183
+ jl_Enum__init_(var$1, $rt_s(1085), 2);
14545
14184
  asrs_Simulator$Reason_MAX_STEPS = var$1;
14546
14185
  var$1 = new asrs_Simulator$Reason();
14547
- jl_Enum__init_(var$1, $rt_s(1133), 3);
14186
+ jl_Enum__init_(var$1, $rt_s(1086), 3);
14548
14187
  asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14549
14188
  var$1 = new asrs_Simulator$Reason();
14550
- jl_Enum__init_(var$1, $rt_s(1134), 4);
14189
+ jl_Enum__init_(var$1, $rt_s(1087), 4);
14551
14190
  asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14552
14191
  var$1 = new asrs_Simulator$Reason();
14553
- jl_Enum__init_(var$1, $rt_s(1135), 5);
14192
+ jl_Enum__init_(var$1, $rt_s(1088), 5);
14554
14193
  asrs_Simulator$Reason_PAUSE = var$1;
14555
14194
  var$1 = new asrs_Simulator$Reason();
14556
- jl_Enum__init_(var$1, $rt_s(1136), 6);
14195
+ jl_Enum__init_(var$1, $rt_s(1089), 6);
14557
14196
  asrs_Simulator$Reason_STOP = var$1;
14558
14197
  var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14559
14198
  var$3 = var$2.data;
@@ -14566,6 +14205,376 @@ var asrs_Simulator$Reason__clinit_ = () => {
14566
14205
  var$3[6] = var$1;
14567
14206
  asrs_Simulator$Reason_$VALUES = var$2;
14568
14207
  };
14208
+ var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
14209
+ var asrrh_FloatingPointRegisterFile_instance = null;
14210
+ var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
14211
+ asrrh_FloatingPointRegisterFile_updateRegister($reg, $rt_floatToRawIntBits($val));
14212
+ };
14213
+ var asrrh_FloatingPointRegisterFile_updateRegister = ($num, $val) => {
14214
+ let $lval;
14215
+ $lval = Long_or(Long_fromInt($val), Long_create(0, 4294967295));
14216
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14217
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval);
14218
+ else
14219
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $lval));
14220
+ };
14221
+ var asrrh_FloatingPointRegisterFile_updateRegisterLong = ($num, $val) => {
14222
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14223
+ asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val);
14224
+ else
14225
+ asrs_BackStepper_addFloatingPointRestore(asr_Globals_program.$backStepper, $num, asrrh_RegisterBlock_updateRegister(asrrh_FloatingPointRegisterFile_instance, $num, $val));
14226
+ };
14227
+ var asrrh_FloatingPointRegisterFile_getValue = ($num) => {
14228
+ let $lval;
14229
+ $lval = asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14230
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14231
+ return 2143289344;
14232
+ return Long_lo($lval);
14233
+ };
14234
+ var asrrh_FloatingPointRegisterFile_getValueLong = ($num) => {
14235
+ return asrrh_RegisterBlock_getValue(asrrh_FloatingPointRegisterFile_instance, $num);
14236
+ };
14237
+ var asrrh_FloatingPointRegisterFile_getValue0 = ($name) => {
14238
+ let $lval;
14239
+ $lval = asrrh_RegisterBlock_getValue0(asrrh_FloatingPointRegisterFile_instance, $name);
14240
+ if (Long_ne(Long_and($lval, Long_create(0, 4294967295)), Long_create(0, 4294967295)))
14241
+ return 2143289344;
14242
+ return Long_lo($lval);
14243
+ };
14244
+ var asrrh_FloatingPointRegisterFile_getRegister = ($name) => {
14245
+ return asrrh_RegisterBlock_getRegister(asrrh_FloatingPointRegisterFile_instance, $name);
14246
+ };
14247
+ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
14248
+ let var$1, var$2, var$3;
14249
+ var$1 = new asrrh_RegisterBlock();
14250
+ var$2 = $rt_createArray(asrrh_Register, 32);
14251
+ var$3 = var$2.data;
14252
+ var$3[0] = asrrh_Register__init_($rt_s(1090), 0, Long_ZERO);
14253
+ var$3[1] = asrrh_Register__init_($rt_s(1091), 1, Long_ZERO);
14254
+ var$3[2] = asrrh_Register__init_($rt_s(1092), 2, Long_ZERO);
14255
+ var$3[3] = asrrh_Register__init_($rt_s(1093), 3, Long_ZERO);
14256
+ var$3[4] = asrrh_Register__init_($rt_s(1094), 4, Long_ZERO);
14257
+ var$3[5] = asrrh_Register__init_($rt_s(1095), 5, Long_ZERO);
14258
+ var$3[6] = asrrh_Register__init_($rt_s(1096), 6, Long_ZERO);
14259
+ var$3[7] = asrrh_Register__init_($rt_s(1097), 7, Long_ZERO);
14260
+ var$3[8] = asrrh_Register__init_($rt_s(1098), 8, Long_ZERO);
14261
+ var$3[9] = asrrh_Register__init_($rt_s(1099), 9, Long_ZERO);
14262
+ var$3[10] = asrrh_Register__init_($rt_s(1042), 10, Long_ZERO);
14263
+ var$3[11] = asrrh_Register__init_($rt_s(1036), 11, Long_ZERO);
14264
+ var$3[12] = asrrh_Register__init_($rt_s(1100), 12, Long_ZERO);
14265
+ var$3[13] = asrrh_Register__init_($rt_s(1101), 13, Long_ZERO);
14266
+ var$3[14] = asrrh_Register__init_($rt_s(1102), 14, Long_ZERO);
14267
+ var$3[15] = asrrh_Register__init_($rt_s(1103), 15, Long_ZERO);
14268
+ var$3[16] = asrrh_Register__init_($rt_s(1104), 16, Long_ZERO);
14269
+ var$3[17] = asrrh_Register__init_($rt_s(1105), 17, Long_ZERO);
14270
+ var$3[18] = asrrh_Register__init_($rt_s(1106), 18, Long_ZERO);
14271
+ var$3[19] = asrrh_Register__init_($rt_s(1107), 19, Long_ZERO);
14272
+ var$3[20] = asrrh_Register__init_($rt_s(1108), 20, Long_ZERO);
14273
+ var$3[21] = asrrh_Register__init_($rt_s(1109), 21, Long_ZERO);
14274
+ var$3[22] = asrrh_Register__init_($rt_s(1110), 22, Long_ZERO);
14275
+ var$3[23] = asrrh_Register__init_($rt_s(1111), 23, Long_ZERO);
14276
+ var$3[24] = asrrh_Register__init_($rt_s(1112), 24, Long_ZERO);
14277
+ var$3[25] = asrrh_Register__init_($rt_s(1113), 25, Long_ZERO);
14278
+ var$3[26] = asrrh_Register__init_($rt_s(1114), 26, Long_ZERO);
14279
+ var$3[27] = asrrh_Register__init_($rt_s(1115), 27, Long_ZERO);
14280
+ var$3[28] = asrrh_Register__init_($rt_s(1116), 28, Long_ZERO);
14281
+ var$3[29] = asrrh_Register__init_($rt_s(1117), 29, Long_ZERO);
14282
+ var$3[30] = asrrh_Register__init_($rt_s(1118), 30, Long_ZERO);
14283
+ var$3[31] = asrrh_Register__init_($rt_s(1119), 31, Long_ZERO);
14284
+ asrrh_RegisterBlock__init_(var$1, 102, var$2);
14285
+ asrrh_FloatingPointRegisterFile_instance = var$1;
14286
+ };
14287
+ var asrrh_ControlAndStatusRegisterFile = $rt_classWithoutFields();
14288
+ var asrrh_ControlAndStatusRegisterFile_instance = null;
14289
+ var asrrh_ControlAndStatusRegisterFile_updateRegister0 = ($num, $val) => {
14290
+ let var$3;
14291
+ if (asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num) instanceof asrrh_ReadOnlyRegister)
14292
+ return 1;
14293
+ if ($num >= 3200 && $num <= 3202)
14294
+ return 1;
14295
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14296
+ asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14297
+ else {
14298
+ var$3 = asr_Globals_program.$backStepper;
14299
+ $val = asrrh_RegisterBlock_updateRegister(asrrh_ControlAndStatusRegisterFile_instance, $num, $val);
14300
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
14301
+ }
14302
+ return 0;
14303
+ };
14304
+ var asrrh_ControlAndStatusRegisterFile_updateRegister = ($name, $val) => {
14305
+ asrrh_ControlAndStatusRegisterFile_updateRegister0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14306
+ };
14307
+ var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0 = ($num, $val) => {
14308
+ let var$3;
14309
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
14310
+ asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14311
+ else {
14312
+ var$3 = asr_Globals_program.$backStepper;
14313
+ $val = asrrh_Register_setValueBackdoor(asrrh_RegisterBlock_getRegister0(asrrh_ControlAndStatusRegisterFile_instance, $num), $val);
14314
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_CONTROL_AND_STATUS_REGISTER_BACKDOOR, asrs_BackStepper_pc(var$3), $num, $val);
14315
+ }
14316
+ };
14317
+ var asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor = ($name, $val) => {
14318
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor0(asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$number, $val);
14319
+ };
14320
+ var asrrh_ControlAndStatusRegisterFile_orRegister0 = ($num, $val) => {
14321
+ return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_or(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), $val));
14322
+ };
14323
+ var asrrh_ControlAndStatusRegisterFile_orRegister = ($name, $val) => {
14324
+ asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_or(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), $val));
14325
+ };
14326
+ var asrrh_ControlAndStatusRegisterFile_clearRegister0 = ($num, $val) => {
14327
+ return asrrh_ControlAndStatusRegisterFile_updateRegister0($num, Long_and(asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num), Long_xor($val, Long_fromInt(-1))));
14328
+ };
14329
+ var asrrh_ControlAndStatusRegisterFile_clearRegister = ($name, $val) => {
14330
+ asrrh_ControlAndStatusRegisterFile_updateRegister($name, Long_and(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name), Long_xor($val, Long_fromInt(-1))));
14331
+ };
14332
+ var asrrh_ControlAndStatusRegisterFile_getValueLong = ($num) => {
14333
+ return asrrh_RegisterBlock_getValue(asrrh_ControlAndStatusRegisterFile_instance, $num);
14334
+ };
14335
+ var asrrh_ControlAndStatusRegisterFile_getValue = ($name) => {
14336
+ return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_ControlAndStatusRegisterFile_instance, $name));
14337
+ };
14338
+ var asrrh_ControlAndStatusRegisterFile_getValueNoNotify = ($name) => {
14339
+ return asrrh_RegisterBlock_getRegister(asrrh_ControlAndStatusRegisterFile_instance, $name).$getValueNoNotify();
14340
+ };
14341
+ var asrrh_ControlAndStatusRegisterFile_getRegisters = () => {
14342
+ return asrrh_ControlAndStatusRegisterFile_instance.$regFile;
14343
+ };
14344
+ var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
14345
+ let $tmp_0, var$2;
14346
+ $tmp_0 = $rt_createArray(asrrh_Register, 17);
14347
+ var$2 = $tmp_0.data;
14348
+ var$2[0] = asrrh_MaskedRegister__init_($rt_s(679), 0, Long_ZERO, Long_fromInt(-18));
14349
+ var$2[1] = null;
14350
+ var$2[2] = null;
14351
+ var$2[3] = asrrh_MaskedRegister__init_($rt_s(1120), 3, Long_ZERO, Long_fromInt(-256));
14352
+ var$2[4] = asrrh_Register__init_($rt_s(1121), 4, Long_ZERO);
14353
+ var$2[5] = asrrh_Register__init_($rt_s(1122), 5, Long_ZERO);
14354
+ var$2[6] = asrrh_Register__init_($rt_s(1123), 64, Long_ZERO);
14355
+ var$2[7] = asrrh_Register__init_($rt_s(680), 65, Long_ZERO);
14356
+ var$2[8] = asrrh_Register__init_($rt_s(1124), 66, Long_ZERO);
14357
+ var$2[9] = asrrh_Register__init_($rt_s(1125), 67, Long_ZERO);
14358
+ var$2[10] = asrrh_Register__init_($rt_s(1126), 68, Long_ZERO);
14359
+ var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1127), 3072, 0);
14360
+ var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1128), 3073, 0);
14361
+ var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1129), 3074, 0);
14362
+ var$2[14] = null;
14363
+ var$2[15] = null;
14364
+ var$2[16] = null;
14365
+ var$2[1] = asrrh_LinkedRegister__init_($rt_s(446), 1, var$2[3], Long_fromInt(31));
14366
+ var$2[2] = asrrh_LinkedRegister__init_($rt_s(447), 2, var$2[3], Long_fromInt(224));
14367
+ var$2[14] = asrrh_LinkedRegister__init_($rt_s(1130), 3200, var$2[11], Long_create(0, 4294967295));
14368
+ var$2[15] = asrrh_LinkedRegister__init_($rt_s(1131), 3201, var$2[12], Long_create(0, 4294967295));
14369
+ var$2[16] = asrrh_LinkedRegister__init_($rt_s(1132), 3202, var$2[13], Long_create(0, 4294967295));
14370
+ asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
14371
+ };
14372
+ var asrrh_InterruptController = $rt_classWithoutFields();
14373
+ var asrrh_InterruptController_lock = null;
14374
+ var asrrh_InterruptController_externalPending = 0;
14375
+ var asrrh_InterruptController_externalValue = 0;
14376
+ var asrrh_InterruptController_timerPending = 0;
14377
+ var asrrh_InterruptController_timerValue = 0;
14378
+ var asrrh_InterruptController_trapPending = 0;
14379
+ var asrrh_InterruptController_trapSE = null;
14380
+ var asrrh_InterruptController_trapPC = 0;
14381
+ var asrrh_InterruptController_$assertionsDisabled = 0;
14382
+ var asrrh_InterruptController_registerSynchronousTrap = ($se, $pc) => {
14383
+ let var$3, $$je;
14384
+ var$3 = asrrh_InterruptController_lock;
14385
+ jl_Object_monitorEnterSync(var$3);
14386
+ a: {
14387
+ b: {
14388
+ try {
14389
+ if (!asrrh_InterruptController_trapPending)
14390
+ break b;
14391
+ jl_Object_monitorExitSync(var$3);
14392
+ } catch ($$e) {
14393
+ $$je = $rt_wrapException($$e);
14394
+ $se = $$je;
14395
+ break a;
14396
+ }
14397
+ return 0;
14398
+ }
14399
+ try {
14400
+ asrrh_InterruptController_trapSE = $se;
14401
+ asrrh_InterruptController_trapPC = $pc;
14402
+ asrrh_InterruptController_trapPending = 1;
14403
+ jl_Object_monitorExitSync(var$3);
14404
+ } catch ($$e) {
14405
+ $$je = $rt_wrapException($$e);
14406
+ $se = $$je;
14407
+ break a;
14408
+ }
14409
+ return 1;
14410
+ }
14411
+ jl_Object_monitorExitSync(var$3);
14412
+ $rt_throw($se);
14413
+ };
14414
+ var asrrh_InterruptController_externalPending0 = () => {
14415
+ let var$1, var$2, var$3, $$je;
14416
+ var$1 = asrrh_InterruptController_lock;
14417
+ jl_Object_monitorEnterSync(var$1);
14418
+ a: {
14419
+ try {
14420
+ var$2 = asrrh_InterruptController_externalPending;
14421
+ jl_Object_monitorExitSync(var$1);
14422
+ } catch ($$e) {
14423
+ $$je = $rt_wrapException($$e);
14424
+ var$3 = $$je;
14425
+ break a;
14426
+ }
14427
+ return var$2;
14428
+ }
14429
+ jl_Object_monitorExitSync(var$1);
14430
+ $rt_throw(var$3);
14431
+ };
14432
+ var asrrh_InterruptController_timerPending0 = () => {
14433
+ let var$1, var$2, var$3, $$je;
14434
+ var$1 = asrrh_InterruptController_lock;
14435
+ jl_Object_monitorEnterSync(var$1);
14436
+ a: {
14437
+ try {
14438
+ var$2 = asrrh_InterruptController_timerPending;
14439
+ jl_Object_monitorExitSync(var$1);
14440
+ } catch ($$e) {
14441
+ $$je = $rt_wrapException($$e);
14442
+ var$3 = $$je;
14443
+ break a;
14444
+ }
14445
+ return var$2;
14446
+ }
14447
+ jl_Object_monitorExitSync(var$1);
14448
+ $rt_throw(var$3);
14449
+ };
14450
+ var asrrh_InterruptController_trapPending0 = () => {
14451
+ let var$1, var$2, var$3, $$je;
14452
+ var$1 = asrrh_InterruptController_lock;
14453
+ jl_Object_monitorEnterSync(var$1);
14454
+ a: {
14455
+ try {
14456
+ var$2 = asrrh_InterruptController_trapPending;
14457
+ jl_Object_monitorExitSync(var$1);
14458
+ } catch ($$e) {
14459
+ $$je = $rt_wrapException($$e);
14460
+ var$3 = $$je;
14461
+ break a;
14462
+ }
14463
+ return var$2;
14464
+ }
14465
+ jl_Object_monitorExitSync(var$1);
14466
+ $rt_throw(var$3);
14467
+ };
14468
+ var asrrh_InterruptController_claimExternal = () => {
14469
+ let var$1, var$2, var$3, $$je;
14470
+ var$1 = asrrh_InterruptController_lock;
14471
+ jl_Object_monitorEnterSync(var$1);
14472
+ a: {
14473
+ try {
14474
+ if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14475
+ $rt_throw(jl_AssertionError__init_($rt_s(1133)));
14476
+ asrrh_InterruptController_externalPending = 0;
14477
+ var$2 = asrrh_InterruptController_externalValue;
14478
+ jl_Object_monitorExitSync(var$1);
14479
+ } catch ($$e) {
14480
+ $$je = $rt_wrapException($$e);
14481
+ var$3 = $$je;
14482
+ break a;
14483
+ }
14484
+ return var$2;
14485
+ }
14486
+ jl_Object_monitorExitSync(var$1);
14487
+ $rt_throw(var$3);
14488
+ };
14489
+ var asrrh_InterruptController_claimTimer = () => {
14490
+ let var$1, var$2, var$3, $$je;
14491
+ var$1 = asrrh_InterruptController_lock;
14492
+ jl_Object_monitorEnterSync(var$1);
14493
+ a: {
14494
+ try {
14495
+ if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14496
+ $rt_throw(jl_AssertionError__init_($rt_s(1134)));
14497
+ asrrh_InterruptController_timerPending = 0;
14498
+ var$2 = asrrh_InterruptController_timerValue;
14499
+ jl_Object_monitorExitSync(var$1);
14500
+ } catch ($$e) {
14501
+ $$je = $rt_wrapException($$e);
14502
+ var$3 = $$je;
14503
+ break a;
14504
+ }
14505
+ return var$2;
14506
+ }
14507
+ jl_Object_monitorExitSync(var$1);
14508
+ $rt_throw(var$3);
14509
+ };
14510
+ var asrrh_InterruptController_claimTrap = () => {
14511
+ let var$1, var$2, var$3, $$je;
14512
+ var$1 = asrrh_InterruptController_lock;
14513
+ jl_Object_monitorEnterSync(var$1);
14514
+ a: {
14515
+ try {
14516
+ var$2 = asrrh_InterruptController_$assertionsDisabled;
14517
+ if (!var$2 && !asrrh_InterruptController_trapPending)
14518
+ $rt_throw(jl_AssertionError__init_($rt_s(1135)));
14519
+ if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14520
+ $rt_throw(jl_AssertionError__init_($rt_s(1136)));
14521
+ asrrh_InterruptController_trapPending = 0;
14522
+ var$3 = asrrh_InterruptController_trapSE;
14523
+ jl_Object_monitorExitSync(var$1);
14524
+ } catch ($$e) {
14525
+ $$je = $rt_wrapException($$e);
14526
+ var$3 = $$je;
14527
+ break a;
14528
+ }
14529
+ return var$3;
14530
+ }
14531
+ jl_Object_monitorExitSync(var$1);
14532
+ $rt_throw(var$3);
14533
+ };
14534
+ var asrrh_InterruptController__clinit_ = () => {
14535
+ asrrh_InterruptController_$assertionsDisabled = 0;
14536
+ asrrh_InterruptController_lock = new jl_Object();
14537
+ asrrh_InterruptController_externalPending = 0;
14538
+ asrrh_InterruptController_timerPending = 0;
14539
+ asrrh_InterruptController_trapPending = 0;
14540
+ };
14541
+ var asrrh_Stack = $rt_classWithoutFields();
14542
+ var asrrh_Stack_callStack = null;
14543
+ var asrrh_Stack__clinit_ = () => {
14544
+ asrrh_Stack_callStack = ju_ArrayList__init_();
14545
+ };
14546
+ var jlr_Array = $rt_classWithoutFields();
14547
+ var jlr_Array_getLength = (var$1) => {
14548
+ if (var$1 === null || var$1.constructor.$meta.item === "undefined") {
14549
+ $rt_throw(jl_IllegalArgumentException__init_());
14550
+ }
14551
+ return var$1.data.length;
14552
+ };
14553
+ var jlr_Array_newInstance = (var$1, $length) => {
14554
+ if (var$1 === null) {
14555
+ var$1 = new jl_NullPointerException();
14556
+ jl_Throwable__init_(var$1);
14557
+ $rt_throw(var$1);
14558
+ }
14559
+ if (var$1 === $rt_cls($rt_voidcls)) {
14560
+ var$1 = new jl_IllegalArgumentException();
14561
+ jl_Throwable__init_(var$1);
14562
+ $rt_throw(var$1);
14563
+ }
14564
+ if ($length >= 0)
14565
+ return jlr_Array_newInstanceImpl(var$1.$platformClass, $length);
14566
+ var$1 = new jl_NegativeArraySizeException();
14567
+ jl_Throwable__init_(var$1);
14568
+ $rt_throw(var$1);
14569
+ };
14570
+ var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14571
+ if (var$1.$meta.primitive) {
14572
+ switch (var$1) {
14573
+ }
14574
+ ;
14575
+ }
14576
+ return $rt_createArray(var$1, var$2);
14577
+ };
14569
14578
  function jur_Pattern() {
14570
14579
  let a = this;
14571
14580
  jl_Object.call(a);
@@ -14578,16 +14587,16 @@ function jur_Pattern() {
14578
14587
  a.$consCount = 0;
14579
14588
  a.$start2 = null;
14580
14589
  }
14581
- var jur_Pattern_matcher = ($this, $input) => {
14590
+ var jur_Pattern_matcher = ($this, var$1) => {
14582
14591
  let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
14583
14592
  var$2 = new jur_Matcher();
14584
14593
  var$2.$leftBound0 = -1;
14585
14594
  var$2.$rightBound0 = -1;
14586
14595
  var$2.$pat = $this;
14587
14596
  var$2.$start6 = $this.$start2;
14588
- var$2.$string1 = $input;
14597
+ var$2.$string1 = var$1;
14589
14598
  var$2.$leftBound0 = 0;
14590
- var$3 = $input.$nativeString.length;
14599
+ var$3 = var$1.$nativeString.length;
14591
14600
  var$2.$rightBound0 = var$3;
14592
14601
  var$4 = new jur_MatchResultImpl();
14593
14602
  var$5 = var$2.$leftBound0;
@@ -14604,7 +14613,7 @@ var jur_Pattern_matcher = ($this, $input) => {
14604
14613
  if (var$7 > 0)
14605
14614
  var$4.$compQuantCounters = $rt_createIntArray(var$7);
14606
14615
  ju_Arrays_fill(var$4.$groupBounds, -1);
14607
- jur_MatchResultImpl_reset(var$4, $input, var$5, var$3);
14616
+ jur_MatchResultImpl_reset(var$4, var$1, var$5, var$3);
14608
14617
  var$2.$matchResult = var$4;
14609
14618
  var$4.$anchoringBounds = 1;
14610
14619
  return var$2;
@@ -24377,10 +24386,10 @@ var asrs_Simulator$SimThread_handleTrap = ($this, $se, $pc) => {
24377
24386
  if (!$utvec && $se.$cause < 0)
24378
24387
  $rt_throw(jl_AssertionError__init_($rt_s(1506)));
24379
24388
  a: {
24380
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1117), Long_fromInt($se.$cause));
24389
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1124), Long_fromInt($se.$cause));
24381
24390
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24382
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($se.$value5));
24383
- $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1115)) & -4;
24391
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($se.$value5));
24392
+ $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122)) & -4;
24384
24393
  $exceptionHandler = null;
24385
24394
  if (!(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1))
24386
24395
  var$6 = $exceptionHandler;
@@ -24416,12 +24425,12 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
24416
24425
  if (!$mode && !($cause & -2147483648))
24417
24426
  $rt_throw(jl_AssertionError__init_($rt_s(1507)));
24418
24427
  $code = $cause & 2147483647;
24419
- if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1114)) & 1 << $code))
24428
+ if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1121)) & 1 << $code))
24420
24429
  $rt_throw(jl_AssertionError__init_($rt_s(1508)));
24421
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1117), Long_fromInt($cause));
24430
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1124), Long_fromInt($cause));
24422
24431
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24423
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1118), Long_fromInt($value));
24424
- $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1115));
24432
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($value));
24433
+ $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122));
24425
24434
  $base = $utvec & -4;
24426
24435
  if (($utvec & 3) == 2)
24427
24436
  $base = $base + (4 * $code | 0) | 0;
@@ -24501,8 +24510,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24501
24510
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24502
24511
  return;
24503
24512
  }
24504
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24505
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24513
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24514
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24506
24515
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24507
24516
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24508
24517
  $se = asrrh_InterruptController_lock;
@@ -24693,8 +24702,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24693
24702
  jl_Object_monitorExit($se);
24694
24703
  $rt_throw($instruction);
24695
24704
  }
24696
- if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119))))
24697
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1119), $cycle);
24705
+ if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126))))
24706
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), $cycle);
24698
24707
  var$14 = $this.$maxSteps;
24699
24708
  if (var$14 > 0) {
24700
24709
  $steps = $steps + 1 | 0;
@@ -24815,12 +24824,12 @@ var asrs_Simulator$SimThread_run = ($this) => {
24815
24824
  $waiting = 1;
24816
24825
  }
24817
24826
  v: {
24818
- $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1120));
24819
- $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24827
+ $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24828
+ $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
24820
24829
  $time = jl_System_currentTimeMillis();
24821
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1120), Long_add($cycle, Long_fromInt(1)));
24822
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1122), Long_add($instret, Long_fromInt(1)));
24823
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1121), $time);
24830
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1127), Long_add($cycle, Long_fromInt(1)));
24831
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1129), Long_add($instret, Long_fromInt(1)));
24832
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1128), $time);
24824
24833
  if (!$ebreak) {
24825
24834
  var$1 = $this.$breakPoints;
24826
24835
  if (var$1 === null)
@@ -24843,8 +24852,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24843
24852
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24844
24853
  return;
24845
24854
  }
24846
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24847
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24855
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24856
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24848
24857
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24849
24858
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24850
24859
  $se = asrrh_InterruptController_lock;
@@ -24880,8 +24889,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24880
24889
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24881
24890
  return;
24882
24891
  }
24883
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24884
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24892
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24893
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24885
24894
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24886
24895
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24887
24896
  $se = asrrh_InterruptController_lock;
@@ -24919,8 +24928,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24919
24928
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24920
24929
  return;
24921
24930
  }
24922
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1119));
24923
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1114));
24931
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1126));
24932
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1121));
24924
24933
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24925
24934
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24926
24935
  $se = asrrh_InterruptController_lock;
@@ -31813,241 +31822,6 @@ var asrjt_Float64__clinit_ = () => {
31813
31822
  asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31814
31823
  asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31815
31824
  };
31816
- var asrjo_Arithmetic = $rt_classWithoutFields();
31817
- var asrjo_Arithmetic_$assertionsDisabled = 0;
31818
- var asrjo_Arithmetic_add = ($a, $b, $env) => {
31819
- let $out;
31820
- if ($a.$isNaN())
31821
- return $a;
31822
- if ($b.$isNaN())
31823
- return $b;
31824
- if ($a.$isInfinite()) {
31825
- if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
31826
- $b = $env.$flags;
31827
- $env = asrj_Flags_invalid;
31828
- ju_GenericEnumSet_add($b, $env);
31829
- return $a.$NaN();
31830
- }
31831
- return $a;
31832
- }
31833
- if ($b.$isInfinite())
31834
- return $b;
31835
- if ($a.$isZero()) {
31836
- if (!$b.$isZero())
31837
- return $b;
31838
- if ($a.$isSignMinus() == $b.$isSignMinus())
31839
- return $a;
31840
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31841
- }
31842
- if ($b.$isZero())
31843
- return $a;
31844
- $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
31845
- if (!asrji_ExactFloat_isZero($out))
31846
- return $a.$fromExactFloat($out, $env);
31847
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31848
- };
31849
- var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
31850
- if ($a.$isNaN())
31851
- return $a;
31852
- if ($b.$isNaN())
31853
- return $b;
31854
- return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
31855
- };
31856
- var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
31857
- if ($a.$isNaN())
31858
- return $a;
31859
- if ($b.$isNaN())
31860
- return $b;
31861
- a: {
31862
- if (!($a.$isZero() && $b.$isInfinite())) {
31863
- if (!$b.$isZero())
31864
- break a;
31865
- if (!$a.$isInfinite())
31866
- break a;
31867
- }
31868
- $b = $env.$flags;
31869
- $env = asrj_Flags_invalid;
31870
- ju_GenericEnumSet_add($b, $env);
31871
- return $a.$NaN();
31872
- }
31873
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
31874
- if (!$a.$isZero() && !$b.$isZero())
31875
- return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
31876
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
31877
- }
31878
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31879
- };
31880
- var asrjo_Arithmetic_squareRoot = ($a, $env) => {
31881
- let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
31882
- if ($a.$isNaN())
31883
- return $a;
31884
- if ($a.$isZero())
31885
- return $a;
31886
- if ($a.$isSignMinus()) {
31887
- $env = $env.$flags;
31888
- var$3 = asrj_Flags_invalid;
31889
- ju_GenericEnumSet_add($env, var$3);
31890
- return $a.$NaN();
31891
- }
31892
- if ($a.$isInfinite())
31893
- return $a;
31894
- var$3 = $a.$toExactFloat();
31895
- var$4 = $a.$maxPrecision();
31896
- if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
31897
- $rt_throw(jl_AssertionError__init_($rt_s(1628)));
31898
- var$5 = asrji_ExactFloat_normalize(var$3);
31899
- var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
31900
- a: {
31901
- while (true) {
31902
- var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31903
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31904
- if (!var$8)
31905
- break;
31906
- if (var$8 > 0) {
31907
- var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31908
- var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
31909
- var$6 = 0;
31910
- while (true) {
31911
- if (var$6 >= var$4) {
31912
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31913
- var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31914
- if (!var$4)
31915
- break a;
31916
- if (var$4 > 0) {
31917
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
31918
- break a;
31919
- }
31920
- if (var$4 < 0) {
31921
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
31922
- break a;
31923
- }
31924
- if (!asrji_ExactFloat_$assertionsDisabled)
31925
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31926
- var$7 = null;
31927
- break a;
31928
- }
31929
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31930
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31931
- if (!var$8)
31932
- break;
31933
- if (var$8 <= 0) {
31934
- if (var$8 < 0) {
31935
- var$10 = var$7;
31936
- var$7 = var$9;
31937
- } else {
31938
- if (!asrji_ExactFloat_$assertionsDisabled)
31939
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31940
- var$7 = var$9;
31941
- }
31942
- }
31943
- var$6 = var$6 + 1 | 0;
31944
- var$9 = var$7;
31945
- }
31946
- break a;
31947
- }
31948
- var$6 = var$6 + -1 | 0;
31949
- }
31950
- }
31951
- return $a.$fromExactFloat(var$7, $env);
31952
- };
31953
- var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
31954
- if ($a.$isNaN())
31955
- return $a;
31956
- if ($b.$isNaN())
31957
- return $b;
31958
- if ($c.$isNaN())
31959
- return $c;
31960
- a: {
31961
- if (!($a.$isZero() && $b.$isInfinite())) {
31962
- if (!$b.$isZero())
31963
- break a;
31964
- if (!$a.$isInfinite())
31965
- break a;
31966
- }
31967
- $b = $env.$flags;
31968
- $c = asrj_Flags_invalid;
31969
- ju_GenericEnumSet_add($b, $c);
31970
- return $a.$NaN();
31971
- }
31972
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
31973
- if (!$a.$isZero() && !$b.$isZero())
31974
- return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
31975
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
31976
- }
31977
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
31978
- };
31979
- var asrjo_Arithmetic_division = ($a, $b, $env) => {
31980
- let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
31981
- if ($a.$isNaN())
31982
- return $a;
31983
- if ($b.$isNaN())
31984
- return $b;
31985
- a: {
31986
- if (!($a.$isZero() && $b.$isZero())) {
31987
- if (!$a.$isInfinite())
31988
- break a;
31989
- if (!$b.$isInfinite())
31990
- break a;
31991
- }
31992
- $b = $env.$flags;
31993
- $env = asrj_Flags_invalid;
31994
- ju_GenericEnumSet_add($b, $env);
31995
- return $a.$NaN();
31996
- }
31997
- if ($a.$isInfinite())
31998
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31999
- if (!$b.$isInfinite() && !$a.$isZero()) {
32000
- if ($b.$isZero()) {
32001
- $env = $env.$flags;
32002
- var$4 = asrj_Flags_divByZero;
32003
- ju_GenericEnumSet_add($env, var$4);
32004
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32005
- }
32006
- if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
32007
- $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32008
- var$4 = $a.$toExactFloat();
32009
- $b = $b.$toExactFloat();
32010
- var$5 = $a.$maxPrecision();
32011
- var$6 = asrji_ExactFloat_$assertionsDisabled;
32012
- if (!var$6 && var$5 <= 0)
32013
- $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32014
- if (!var$6 && asrji_ExactFloat_isZero($b))
32015
- $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32016
- var$4 = asrji_ExactFloat_normalize(var$4);
32017
- var$7 = asrji_ExactFloat_normalize($b);
32018
- var$8 = var$4.$significand;
32019
- var$9 = var$7.$significand;
32020
- var$10 = jm_BigInteger_ZERO;
32021
- var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
32022
- if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
32023
- var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
32024
- else
32025
- var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
32026
- var$6 = 0;
32027
- b: {
32028
- while (jm_BigInteger_bitLength(var$10) < var$5) {
32029
- var$10 = jm_BigInteger_shiftLeft(var$10, 1);
32030
- if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
32031
- var$8 = jm_BigInteger_subtract(var$8, var$9);
32032
- var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
32033
- }
32034
- var$6 = var$6 + 1 | 0;
32035
- var$8 = jm_BigInteger_shiftLeft(var$8, 1);
32036
- if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
32037
- break b;
32038
- }
32039
- }
32040
- if (jm_BigInteger_bitLength(var$10) >= var$5) {
32041
- var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
32042
- var$6 = var$6 + 1 | 0;
32043
- }
32044
- 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);
32045
- }
32046
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32047
- };
32048
- var asrjo_Arithmetic__clinit_ = () => {
32049
- asrjo_Arithmetic_$assertionsDisabled = 0;
32050
- };
32051
31825
  var asrjo_Conversions = $rt_classWithoutFields();
32052
31826
  var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
32053
31827
  let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
@@ -32106,7 +31880,7 @@ var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
32106
31880
  ju_GenericEnumSet_add(var$9, var$10);
32107
31881
  }
32108
31882
  if (!asrji_ExactFloat_$assertionsDisabled && $rounded.$exponent0 < 0)
32109
- $rt_throw(jl_AssertionError__init_($rt_s(1633)));
31883
+ $rt_throw(jl_AssertionError__init_($rt_s(1628)));
32110
31884
  $rounded = jm_BigInteger_multiply(jm_BigInteger_shiftLeft($rounded.$significand, $rounded.$exponent0), jm_BigInteger_valueOf(!$f.$sign ? Long_fromInt(1) : Long_fromInt(-1)));
32111
31885
  }
32112
31886
  }
@@ -32156,6 +31930,108 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
32156
31930
  var$4.$significand = $i;
32157
31931
  return $helper.$fromExactFloat(var$4, $env);
32158
31932
  };
31933
+ var asrjo_Comparisons = $rt_classWithoutFields();
31934
+ var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31935
+ if ($a.$isZero()) {
31936
+ if ($b.$isZero())
31937
+ return 0;
31938
+ return !$b.$isSignMinus() ? -1 : 1;
31939
+ }
31940
+ if ($b.$isZero())
31941
+ return !$a.$isSignMinus() ? 1 : -1;
31942
+ if (!$a.$isInfinite()) {
31943
+ if (!$b.$isInfinite())
31944
+ return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
31945
+ return !$b.$isSignMinus() ? -1 : 1;
31946
+ }
31947
+ if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
31948
+ return 0;
31949
+ return !$a.$isSignMinus() ? -1 : 1;
31950
+ };
31951
+ var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
31952
+ if ($a.$isSignMinus() != $b.$isSignMinus()) {
31953
+ if ($a.$isSignMinus())
31954
+ $b = $a;
31955
+ return $b;
31956
+ }
31957
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31958
+ if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
31959
+ return $b;
31960
+ return $a;
31961
+ }
31962
+ if ($a.$isInfinite() != $a.$isSignMinus())
31963
+ return $b;
31964
+ return $a;
31965
+ };
31966
+ var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
31967
+ let var$4;
31968
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31969
+ var$4 = $env.$flags;
31970
+ $env = asrj_Flags_invalid;
31971
+ ju_GenericEnumSet_add(var$4, $env);
31972
+ }
31973
+ if ($a.$isNaN()) {
31974
+ if ($b.$isNaN())
31975
+ $b = $b.$NaN();
31976
+ } else
31977
+ $b = !$b.$isNaN() ? null : $a;
31978
+ return $b;
31979
+ };
31980
+ var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
31981
+ let $tmp_0;
31982
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31983
+ if ($tmp_0 !== null)
31984
+ return $tmp_0;
31985
+ return asrjo_Comparisons_nonNaNmin($a, $b);
31986
+ };
31987
+ var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
31988
+ let $tmp_0;
31989
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
31990
+ if ($tmp_0 !== null)
31991
+ return $tmp_0;
31992
+ if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
31993
+ $a = $b;
31994
+ return $a;
31995
+ };
31996
+ var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
31997
+ let var$4;
31998
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
31999
+ var$4 = $env.$flags;
32000
+ $env = asrj_Flags_invalid;
32001
+ ju_GenericEnumSet_add(var$4, $env);
32002
+ }
32003
+ if (!$a.$isNaN() && !$b.$isNaN())
32004
+ return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32005
+ return 0;
32006
+ };
32007
+ var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32008
+ let var$4, var$5;
32009
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32010
+ var$4 = $env.$flags;
32011
+ var$5 = asrj_Flags_invalid;
32012
+ ju_GenericEnumSet_add(var$4, var$5);
32013
+ }
32014
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32015
+ var$5 = $env.$flags;
32016
+ $env = asrj_Flags_invalid;
32017
+ ju_GenericEnumSet_add(var$5, $env);
32018
+ }
32019
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32020
+ };
32021
+ var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32022
+ let var$4, var$5;
32023
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32024
+ var$4 = $env.$flags;
32025
+ var$5 = asrj_Flags_invalid;
32026
+ ju_GenericEnumSet_add(var$4, var$5);
32027
+ }
32028
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32029
+ var$5 = $env.$flags;
32030
+ $env = asrj_Flags_invalid;
32031
+ ju_GenericEnumSet_add(var$5, $env);
32032
+ }
32033
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32034
+ };
32159
32035
  function asrjt_Float32() {
32160
32036
  asrjt_Floating.call(this);
32161
32037
  this.$bits0 = 0;
@@ -32372,107 +32248,240 @@ var asrjt_Float32__clinit_ = () => {
32372
32248
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
32373
32249
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
32374
32250
  };
32375
- var asrjo_Comparisons = $rt_classWithoutFields();
32376
- var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32251
+ var asrjo_Arithmetic = $rt_classWithoutFields();
32252
+ var asrjo_Arithmetic_$assertionsDisabled = 0;
32253
+ var asrjo_Arithmetic_add = ($a, $b, $env) => {
32254
+ let $out;
32255
+ if ($a.$isNaN())
32256
+ return $a;
32257
+ if ($b.$isNaN())
32258
+ return $b;
32259
+ if ($a.$isInfinite()) {
32260
+ if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
32261
+ $b = $env.$flags;
32262
+ $env = asrj_Flags_invalid;
32263
+ ju_GenericEnumSet_add($b, $env);
32264
+ return $a.$NaN();
32265
+ }
32266
+ return $a;
32267
+ }
32268
+ if ($b.$isInfinite())
32269
+ return $b;
32377
32270
  if ($a.$isZero()) {
32378
- if ($b.$isZero())
32379
- return 0;
32380
- return !$b.$isSignMinus() ? -1 : 1;
32271
+ if (!$b.$isZero())
32272
+ return $b;
32273
+ if ($a.$isSignMinus() == $b.$isSignMinus())
32274
+ return $a;
32275
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32381
32276
  }
32382
32277
  if ($b.$isZero())
32383
- return !$a.$isSignMinus() ? 1 : -1;
32384
- if (!$a.$isInfinite()) {
32385
- if (!$b.$isInfinite())
32386
- return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32387
- return !$b.$isSignMinus() ? -1 : 1;
32388
- }
32389
- if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32390
- return 0;
32391
- return !$a.$isSignMinus() ? -1 : 1;
32278
+ return $a;
32279
+ $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
32280
+ if (!asrji_ExactFloat_isZero($out))
32281
+ return $a.$fromExactFloat($out, $env);
32282
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32392
32283
  };
32393
- var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32394
- if ($a.$isSignMinus() != $b.$isSignMinus()) {
32395
- if ($a.$isSignMinus())
32396
- $b = $a;
32397
- return $b;
32398
- }
32399
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32400
- if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32401
- return $b;
32284
+ var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
32285
+ if ($a.$isNaN())
32402
32286
  return $a;
32403
- }
32404
- if ($a.$isInfinite() != $a.$isSignMinus())
32287
+ if ($b.$isNaN())
32405
32288
  return $b;
32406
- return $a;
32289
+ return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
32407
32290
  };
32408
- var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32409
- let var$4;
32410
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32411
- var$4 = $env.$flags;
32291
+ var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
32292
+ if ($a.$isNaN())
32293
+ return $a;
32294
+ if ($b.$isNaN())
32295
+ return $b;
32296
+ a: {
32297
+ if (!($a.$isZero() && $b.$isInfinite())) {
32298
+ if (!$b.$isZero())
32299
+ break a;
32300
+ if (!$a.$isInfinite())
32301
+ break a;
32302
+ }
32303
+ $b = $env.$flags;
32412
32304
  $env = asrj_Flags_invalid;
32413
- ju_GenericEnumSet_add(var$4, $env);
32305
+ ju_GenericEnumSet_add($b, $env);
32306
+ return $a.$NaN();
32414
32307
  }
32415
- if ($a.$isNaN()) {
32416
- if ($b.$isNaN())
32417
- $b = $b.$NaN();
32418
- } else
32419
- $b = !$b.$isNaN() ? null : $a;
32420
- return $b;
32421
- };
32422
- var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32423
- let $tmp_0;
32424
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32425
- if ($tmp_0 !== null)
32426
- return $tmp_0;
32427
- return asrjo_Comparisons_nonNaNmin($a, $b);
32428
- };
32429
- var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32430
- let $tmp_0;
32431
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32432
- if ($tmp_0 !== null)
32433
- return $tmp_0;
32434
- if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32435
- $a = $b;
32436
- return $a;
32437
- };
32438
- var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32439
- let var$4;
32440
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32441
- var$4 = $env.$flags;
32442
- $env = asrj_Flags_invalid;
32443
- ju_GenericEnumSet_add(var$4, $env);
32308
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
32309
+ if (!$a.$isZero() && !$b.$isZero())
32310
+ return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
32311
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32444
32312
  }
32445
- if (!$a.$isNaN() && !$b.$isNaN())
32446
- return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32447
- return 0;
32313
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32448
32314
  };
32449
- var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32450
- let var$4, var$5;
32451
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32452
- var$4 = $env.$flags;
32453
- var$5 = asrj_Flags_invalid;
32454
- ju_GenericEnumSet_add(var$4, var$5);
32315
+ var asrjo_Arithmetic_squareRoot = ($a, $env) => {
32316
+ let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
32317
+ if ($a.$isNaN())
32318
+ return $a;
32319
+ if ($a.$isZero())
32320
+ return $a;
32321
+ if ($a.$isSignMinus()) {
32322
+ $env = $env.$flags;
32323
+ var$3 = asrj_Flags_invalid;
32324
+ ju_GenericEnumSet_add($env, var$3);
32325
+ return $a.$NaN();
32455
32326
  }
32456
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32457
- var$5 = $env.$flags;
32458
- $env = asrj_Flags_invalid;
32459
- ju_GenericEnumSet_add(var$5, $env);
32327
+ if ($a.$isInfinite())
32328
+ return $a;
32329
+ var$3 = $a.$toExactFloat();
32330
+ var$4 = $a.$maxPrecision();
32331
+ if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
32332
+ $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32333
+ var$5 = asrji_ExactFloat_normalize(var$3);
32334
+ var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
32335
+ a: {
32336
+ while (true) {
32337
+ var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32338
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32339
+ if (!var$8)
32340
+ break;
32341
+ if (var$8 > 0) {
32342
+ var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32343
+ var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
32344
+ var$6 = 0;
32345
+ while (true) {
32346
+ if (var$6 >= var$4) {
32347
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32348
+ var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32349
+ if (!var$4)
32350
+ break a;
32351
+ if (var$4 > 0) {
32352
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
32353
+ break a;
32354
+ }
32355
+ if (var$4 < 0) {
32356
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
32357
+ break a;
32358
+ }
32359
+ if (!asrji_ExactFloat_$assertionsDisabled)
32360
+ $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32361
+ var$7 = null;
32362
+ break a;
32363
+ }
32364
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32365
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32366
+ if (!var$8)
32367
+ break;
32368
+ if (var$8 <= 0) {
32369
+ if (var$8 < 0) {
32370
+ var$10 = var$7;
32371
+ var$7 = var$9;
32372
+ } else {
32373
+ if (!asrji_ExactFloat_$assertionsDisabled)
32374
+ $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32375
+ var$7 = var$9;
32376
+ }
32377
+ }
32378
+ var$6 = var$6 + 1 | 0;
32379
+ var$9 = var$7;
32380
+ }
32381
+ break a;
32382
+ }
32383
+ var$6 = var$6 + -1 | 0;
32384
+ }
32460
32385
  }
32461
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32386
+ return $a.$fromExactFloat(var$7, $env);
32462
32387
  };
32463
- var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32464
- let var$4, var$5;
32465
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32466
- var$4 = $env.$flags;
32467
- var$5 = asrj_Flags_invalid;
32468
- ju_GenericEnumSet_add(var$4, var$5);
32388
+ var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
32389
+ if ($a.$isNaN())
32390
+ return $a;
32391
+ if ($b.$isNaN())
32392
+ return $b;
32393
+ if ($c.$isNaN())
32394
+ return $c;
32395
+ a: {
32396
+ if (!($a.$isZero() && $b.$isInfinite())) {
32397
+ if (!$b.$isZero())
32398
+ break a;
32399
+ if (!$a.$isInfinite())
32400
+ break a;
32401
+ }
32402
+ $b = $env.$flags;
32403
+ $c = asrj_Flags_invalid;
32404
+ ju_GenericEnumSet_add($b, $c);
32405
+ return $a.$NaN();
32469
32406
  }
32470
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32471
- var$5 = $env.$flags;
32407
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
32408
+ if (!$a.$isZero() && !$b.$isZero())
32409
+ return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
32410
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
32411
+ }
32412
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
32413
+ };
32414
+ var asrjo_Arithmetic_division = ($a, $b, $env) => {
32415
+ let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
32416
+ if ($a.$isNaN())
32417
+ return $a;
32418
+ if ($b.$isNaN())
32419
+ return $b;
32420
+ a: {
32421
+ if (!($a.$isZero() && $b.$isZero())) {
32422
+ if (!$a.$isInfinite())
32423
+ break a;
32424
+ if (!$b.$isInfinite())
32425
+ break a;
32426
+ }
32427
+ $b = $env.$flags;
32472
32428
  $env = asrj_Flags_invalid;
32473
- ju_GenericEnumSet_add(var$5, $env);
32429
+ ju_GenericEnumSet_add($b, $env);
32430
+ return $a.$NaN();
32474
32431
  }
32475
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32432
+ if ($a.$isInfinite())
32433
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32434
+ if (!$b.$isInfinite() && !$a.$isZero()) {
32435
+ if ($b.$isZero()) {
32436
+ $env = $env.$flags;
32437
+ var$4 = asrj_Flags_divByZero;
32438
+ ju_GenericEnumSet_add($env, var$4);
32439
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32440
+ }
32441
+ if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
32442
+ $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32443
+ var$4 = $a.$toExactFloat();
32444
+ $b = $b.$toExactFloat();
32445
+ var$5 = $a.$maxPrecision();
32446
+ var$6 = asrji_ExactFloat_$assertionsDisabled;
32447
+ if (!var$6 && var$5 <= 0)
32448
+ $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32449
+ if (!var$6 && asrji_ExactFloat_isZero($b))
32450
+ $rt_throw(jl_AssertionError__init_($rt_s(1633)));
32451
+ var$4 = asrji_ExactFloat_normalize(var$4);
32452
+ var$7 = asrji_ExactFloat_normalize($b);
32453
+ var$8 = var$4.$significand;
32454
+ var$9 = var$7.$significand;
32455
+ var$10 = jm_BigInteger_ZERO;
32456
+ var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
32457
+ if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
32458
+ var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
32459
+ else
32460
+ var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
32461
+ var$6 = 0;
32462
+ b: {
32463
+ while (jm_BigInteger_bitLength(var$10) < var$5) {
32464
+ var$10 = jm_BigInteger_shiftLeft(var$10, 1);
32465
+ if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
32466
+ var$8 = jm_BigInteger_subtract(var$8, var$9);
32467
+ var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
32468
+ }
32469
+ var$6 = var$6 + 1 | 0;
32470
+ var$8 = jm_BigInteger_shiftLeft(var$8, 1);
32471
+ if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
32472
+ break b;
32473
+ }
32474
+ }
32475
+ if (jm_BigInteger_bitLength(var$10) >= var$5) {
32476
+ var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
32477
+ var$6 = var$6 + 1 | 0;
32478
+ }
32479
+ 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);
32480
+ }
32481
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32482
+ };
32483
+ var asrjo_Arithmetic__clinit_ = () => {
32484
+ asrjo_Arithmetic_$assertionsDisabled = 0;
32476
32485
  };
32477
32486
  function jnci_BufferedEncoder$Controller() {
32478
32487
  let a = this;
@@ -32522,42 +32531,6 @@ var asrj_RoundingMode__clinit_ = () => {
32522
32531
  var$3[4] = var$1;
32523
32532
  asrj_RoundingMode_$VALUES = var$2;
32524
32533
  };
32525
- var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32526
- var asrj_Flags_inexact = null;
32527
- var asrj_Flags_underflow = null;
32528
- var asrj_Flags_overflow = null;
32529
- var asrj_Flags_divByZero = null;
32530
- var asrj_Flags_invalid = null;
32531
- var asrj_Flags_$VALUES = null;
32532
- var asrj_Flags_values = () => {
32533
- return asrj_Flags_$VALUES.$clone0();
32534
- };
32535
- var asrj_Flags__clinit_ = () => {
32536
- let var$1, var$2, var$3;
32537
- var$1 = new asrj_Flags();
32538
- jl_Enum__init_(var$1, $rt_s(1638), 0);
32539
- asrj_Flags_inexact = var$1;
32540
- var$1 = new asrj_Flags();
32541
- jl_Enum__init_(var$1, $rt_s(1639), 1);
32542
- asrj_Flags_underflow = var$1;
32543
- var$1 = new asrj_Flags();
32544
- jl_Enum__init_(var$1, $rt_s(1640), 2);
32545
- asrj_Flags_overflow = var$1;
32546
- var$1 = new asrj_Flags();
32547
- jl_Enum__init_(var$1, $rt_s(1641), 3);
32548
- asrj_Flags_divByZero = var$1;
32549
- var$1 = new asrj_Flags();
32550
- jl_Enum__init_(var$1, $rt_s(210), 4);
32551
- asrj_Flags_invalid = var$1;
32552
- var$2 = $rt_createArray(asrj_Flags, 5);
32553
- var$3 = var$2.data;
32554
- var$3[0] = asrj_Flags_inexact;
32555
- var$3[1] = asrj_Flags_underflow;
32556
- var$3[2] = asrj_Flags_overflow;
32557
- var$3[3] = asrj_Flags_divByZero;
32558
- var$3[4] = var$1;
32559
- asrj_Flags_$VALUES = var$2;
32560
- };
32561
32534
  function asrji_ExactFloat() {
32562
32535
  let a = this;
32563
32536
  jl_Object.call(a);
@@ -32644,6 +32617,42 @@ var asrji_ExactFloat_isZero = ($this) => {
32644
32617
  var asrji_ExactFloat__clinit_ = () => {
32645
32618
  asrji_ExactFloat_$assertionsDisabled = 0;
32646
32619
  };
32620
+ var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32621
+ var asrj_Flags_inexact = null;
32622
+ var asrj_Flags_underflow = null;
32623
+ var asrj_Flags_overflow = null;
32624
+ var asrj_Flags_divByZero = null;
32625
+ var asrj_Flags_invalid = null;
32626
+ var asrj_Flags_$VALUES = null;
32627
+ var asrj_Flags_values = () => {
32628
+ return asrj_Flags_$VALUES.$clone0();
32629
+ };
32630
+ var asrj_Flags__clinit_ = () => {
32631
+ let var$1, var$2, var$3;
32632
+ var$1 = new asrj_Flags();
32633
+ jl_Enum__init_(var$1, $rt_s(1638), 0);
32634
+ asrj_Flags_inexact = var$1;
32635
+ var$1 = new asrj_Flags();
32636
+ jl_Enum__init_(var$1, $rt_s(1639), 1);
32637
+ asrj_Flags_underflow = var$1;
32638
+ var$1 = new asrj_Flags();
32639
+ jl_Enum__init_(var$1, $rt_s(1640), 2);
32640
+ asrj_Flags_overflow = var$1;
32641
+ var$1 = new asrj_Flags();
32642
+ jl_Enum__init_(var$1, $rt_s(1641), 3);
32643
+ asrj_Flags_divByZero = var$1;
32644
+ var$1 = new asrj_Flags();
32645
+ jl_Enum__init_(var$1, $rt_s(210), 4);
32646
+ asrj_Flags_invalid = var$1;
32647
+ var$2 = $rt_createArray(asrj_Flags, 5);
32648
+ var$3 = var$2.data;
32649
+ var$3[0] = asrj_Flags_inexact;
32650
+ var$3[1] = asrj_Flags_underflow;
32651
+ var$3[2] = asrj_Flags_overflow;
32652
+ var$3[3] = asrj_Flags_divByZero;
32653
+ var$3[4] = var$1;
32654
+ asrj_Flags_$VALUES = var$2;
32655
+ };
32647
32656
  var ju_EnumSet = $rt_classWithoutFields(ju_AbstractSet);
32648
32657
  function ju_GenericEnumSet() {
32649
32658
  let a = this;
@@ -34812,7 +34821,7 @@ $rt_metadata([
34812
34821
  0,
34813
34822
  0,
34814
34823
  0,
34815
- asr_JsRiscV$getInstructionSet$lambda$_38_0,
34824
+ asr_JsRiscV$getInstructionSet$lambda$_39_0,
34816
34825
  0,
34817
34826
  jl_Object,
34818
34827
  [juf_Function],
@@ -34820,7 +34829,7 @@ $rt_metadata([
34820
34829
  3,
34821
34830
  0,
34822
34831
  0,
34823
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_38_0_apply)],
34832
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_39_0_apply)],
34824
34833
  juf_IntFunction,
34825
34834
  0,
34826
34835
  jl_Object,
@@ -34830,7 +34839,7 @@ $rt_metadata([
34830
34839
  0,
34831
34840
  0,
34832
34841
  0,
34833
- asr_JsRiscV$getInstructionSet$lambda$_38_1,
34842
+ asr_JsRiscV$getInstructionSet$lambda$_39_1,
34834
34843
  0,
34835
34844
  jl_Object,
34836
34845
  [juf_IntFunction],
@@ -34838,7 +34847,7 @@ $rt_metadata([
34838
34847
  3,
34839
34848
  0,
34840
34849
  0,
34841
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_38_1_apply)],
34850
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_39_1_apply)],
34842
34851
  asr_JsInstruction,
34843
34852
  "JsInstruction",
34844
34853
  10,
@@ -35210,9 +35219,18 @@ $rt_metadata([
35210
35219
  0,
35211
35220
  asrrh_RegisterFile_$callClinit,
35212
35221
  0,
35213
- asr_JsStackFrame,
35214
- "JsStackFrame",
35215
- 10,
35222
+ jm_BigInteger,
35223
+ "BigInteger",
35224
+ 14,
35225
+ jl_Number,
35226
+ [jl_Comparable, ji_Serializable],
35227
+ 0,
35228
+ 3,
35229
+ 0,
35230
+ 0,
35231
+ ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35232
+ ju_Arrays,
35233
+ 0,
35216
35234
  jl_Object,
35217
35235
  [],
35218
35236
  0,
@@ -35220,16 +35238,24 @@ $rt_metadata([
35220
35238
  0,
35221
35239
  0,
35222
35240
  0,
35223
- jm_BigInteger,
35224
- "BigInteger",
35225
- 14,
35226
- jl_Number,
35227
- [jl_Comparable, ji_Serializable],
35241
+ juf_ToIntFunction,
35228
35242
  0,
35243
+ jl_Object,
35244
+ [],
35245
+ 3,
35229
35246
  3,
35230
35247
  0,
35231
35248
  0,
35232
- ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35249
+ 0,
35250
+ asr_JsRiscV$getRegistersValues$lambda$_25_0,
35251
+ 0,
35252
+ jl_Object,
35253
+ [juf_ToIntFunction],
35254
+ 0,
35255
+ 3,
35256
+ 0,
35257
+ 0,
35258
+ 0,
35233
35259
  asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35234
35260
  0,
35235
35261
  jl_Object,
@@ -35258,27 +35284,27 @@ $rt_metadata([
35258
35284
  0,
35259
35285
  0,
35260
35286
  0,
35261
- asr_JsCompilationResult,
35262
- "JsCompilationResult",
35263
- 10,
35287
+ asr_JsRiscV$getUndoStack$lambda$_26_0,
35288
+ 0,
35264
35289
  jl_Object,
35265
- [],
35290
+ [juf_Function],
35266
35291
  0,
35267
35292
  3,
35268
35293
  0,
35269
35294
  0,
35295
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_26_0_apply)],
35296
+ asr_JsRiscV$getUndoStack$lambda$_26_1,
35270
35297
  0,
35271
- asr_AssemblyException,
35272
- 0,
35273
- jl_Exception,
35274
- [],
35298
+ jl_Object,
35299
+ [juf_IntFunction],
35275
35300
  0,
35276
35301
  3,
35277
35302
  0,
35278
35303
  0,
35279
- 0,
35280
- ju_Arrays,
35281
- 0,
35304
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_26_1_apply)],
35305
+ asr_JsBackStep,
35306
+ "JsBackStep",
35307
+ 10,
35282
35308
  jl_Object,
35283
35309
  [],
35284
35310
  0,
@@ -35286,46 +35312,29 @@ $rt_metadata([
35286
35312
  0,
35287
35313
  0,
35288
35314
  0,
35289
- juf_ToIntFunction,
35290
- 0,
35315
+ asr_JsStackFrame,
35316
+ "JsStackFrame",
35317
+ 10,
35291
35318
  jl_Object,
35292
35319
  [],
35293
- 3,
35294
- 3,
35295
- 0,
35296
- 0,
35297
- 0,
35298
- asr_JsRiscV$getRegistersValues$lambda$_24_0,
35299
- 0,
35300
- jl_Object,
35301
- [juf_ToIntFunction],
35302
35320
  0,
35303
35321
  3,
35304
35322
  0,
35305
35323
  0,
35306
35324
  0,
35307
- asr_JsRiscV$getUndoStack$lambda$_25_0,
35308
- 0,
35325
+ asr_JsCompilationResult,
35326
+ "JsCompilationResult",
35327
+ 10,
35309
35328
  jl_Object,
35310
- [juf_Function],
35329
+ [],
35311
35330
  0,
35312
35331
  3,
35313
35332
  0,
35314
35333
  0,
35315
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_25_0_apply)],
35316
- asr_JsRiscV$getUndoStack$lambda$_25_1,
35317
- 0,
35318
- jl_Object,
35319
- [juf_IntFunction],
35320
- 0,
35321
- 3,
35322
35334
  0,
35335
+ asr_AssemblyException,
35323
35336
  0,
35324
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_25_1_apply)],
35325
- asr_JsBackStep,
35326
- "JsBackStep",
35327
- 10,
35328
- jl_Object,
35337
+ jl_Exception,
35329
35338
  [],
35330
35339
  0,
35331
35340
  3,
@@ -35444,19 +35453,19 @@ $rt_metadata([
35444
35453
  0,
35445
35454
  0,
35446
35455
  0,
35447
- asr_JsCompilationResult$_init_$lambda$_0_0,
35456
+ jl_AutoCloseable,
35448
35457
  0,
35449
35458
  jl_Object,
35450
- [juf_Function],
35451
- 0,
35459
+ [],
35460
+ 3,
35452
35461
  3,
35453
35462
  0,
35454
35463
  0,
35455
- ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35456
- juf_Supplier,
35464
+ 0,
35465
+ jus_BaseStream,
35457
35466
  0,
35458
35467
  jl_Object,
35459
- [],
35468
+ [jl_AutoCloseable],
35460
35469
  3,
35461
35470
  3,
35462
35471
  0,
@@ -35464,91 +35473,91 @@ $rt_metadata([
35464
35473
  0
35465
35474
  ]);
35466
35475
  $rt_metadata([
35467
- asr_JsCompilationResult$_init_$lambda$_0_1,
35476
+ jus_Stream,
35468
35477
  0,
35469
35478
  jl_Object,
35470
- [juf_Supplier],
35471
- 0,
35479
+ [jus_BaseStream],
35480
+ 3,
35472
35481
  3,
35473
35482
  0,
35474
35483
  0,
35475
35484
  0,
35476
- juf_BiConsumer,
35485
+ jusi_SimpleStreamImpl,
35477
35486
  0,
35478
35487
  jl_Object,
35479
- [],
35480
- 3,
35488
+ [jus_Stream],
35489
+ 1,
35481
35490
  3,
35482
35491
  0,
35483
35492
  0,
35484
35493
  0,
35485
- asr_JsCompilationResult$_init_$lambda$_0_2,
35494
+ jusi_ArrayStreamImpl,
35486
35495
  0,
35487
- jl_Object,
35488
- [juf_BiConsumer],
35496
+ jusi_SimpleStreamImpl,
35497
+ [],
35489
35498
  0,
35490
35499
  3,
35491
35500
  0,
35492
35501
  0,
35493
- 0,
35494
- asr_JsCompilationResult$_init_$lambda$_0_3,
35502
+ ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35503
+ asrs_BackStepper$BackstepStack,
35495
35504
  0,
35496
35505
  jl_Object,
35497
- [juf_BiConsumer],
35506
+ [],
35498
35507
  0,
35499
35508
  3,
35500
35509
  0,
35501
35510
  0,
35502
35511
  0,
35503
- jl_AutoCloseable,
35512
+ asr_JsCompilationResult$_init_$lambda$_0_0,
35504
35513
  0,
35505
35514
  jl_Object,
35506
- [],
35507
- 3,
35508
- 3,
35515
+ [juf_Function],
35509
35516
  0,
35517
+ 3,
35510
35518
  0,
35511
35519
  0,
35512
- jus_BaseStream,
35520
+ ["$apply0", $rt_wrapFunction1(asr_JsCompilationResult$_init_$lambda$_0_0_apply)],
35521
+ juf_Supplier,
35513
35522
  0,
35514
35523
  jl_Object,
35515
- [jl_AutoCloseable],
35524
+ [],
35516
35525
  3,
35517
35526
  3,
35518
35527
  0,
35519
35528
  0,
35520
35529
  0,
35521
- jus_Stream,
35530
+ asr_JsCompilationResult$_init_$lambda$_0_1,
35522
35531
  0,
35523
35532
  jl_Object,
35524
- [jus_BaseStream],
35525
- 3,
35533
+ [juf_Supplier],
35534
+ 0,
35526
35535
  3,
35527
35536
  0,
35528
35537
  0,
35529
35538
  0,
35530
- jusi_SimpleStreamImpl,
35539
+ juf_BiConsumer,
35531
35540
  0,
35532
35541
  jl_Object,
35533
- [jus_Stream],
35534
- 1,
35542
+ [],
35543
+ 3,
35535
35544
  3,
35536
35545
  0,
35537
35546
  0,
35538
35547
  0,
35539
- jusi_ArrayStreamImpl,
35548
+ asr_JsCompilationResult$_init_$lambda$_0_2,
35540
35549
  0,
35541
- jusi_SimpleStreamImpl,
35542
- [],
35550
+ jl_Object,
35551
+ [juf_BiConsumer],
35543
35552
  0,
35544
35553
  3,
35545
35554
  0,
35546
35555
  0,
35547
- ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35548
- asrs_BackStepper$BackstepStack,
35556
+ 0,
35557
+ asr_JsCompilationResult$_init_$lambda$_0_3,
35549
35558
  0,
35550
35559
  jl_Object,
35551
- [],
35560
+ [juf_BiConsumer],
35552
35561
  0,
35553
35562
  3,
35554
35563
  0,
@@ -37821,16 +37830,17 @@ $rt_metadata([
37821
37830
  0,
37822
37831
  0,
37823
37832
  ["$hasNext", $rt_wrapFunction0(ju_AbstractList$1_hasNext), "$next", $rt_wrapFunction0(ju_AbstractList$1_next)],
37824
- jlr_Array,
37825
- 0,
37826
- jl_Object,
37833
+ asrs_Simulator$Reason,
37834
+ "Simulator$Reason",
37835
+ 3,
37836
+ jl_Enum,
37827
37837
  [],
37828
- 4,
37838
+ 12,
37829
37839
  3,
37830
37840
  0,
37831
37841
  0,
37832
37842
  0,
37833
- asrrh_Stack,
37843
+ asrrh_FloatingPointRegisterFile,
37834
37844
  0,
37835
37845
  jl_Object,
37836
37846
  [],
@@ -37839,7 +37849,7 @@ $rt_metadata([
37839
37849
  0,
37840
37850
  0,
37841
37851
  0,
37842
- asrrh_FloatingPointRegisterFile,
37852
+ asrrh_ControlAndStatusRegisterFile,
37843
37853
  0,
37844
37854
  jl_Object,
37845
37855
  [],
@@ -37848,7 +37858,7 @@ $rt_metadata([
37848
37858
  0,
37849
37859
  0,
37850
37860
  0,
37851
- asrrh_ControlAndStatusRegisterFile,
37861
+ asrrh_InterruptController,
37852
37862
  0,
37853
37863
  jl_Object,
37854
37864
  [],
@@ -37857,7 +37867,7 @@ $rt_metadata([
37857
37867
  0,
37858
37868
  0,
37859
37869
  0,
37860
- asrrh_InterruptController,
37870
+ asrrh_Stack,
37861
37871
  0,
37862
37872
  jl_Object,
37863
37873
  [],
@@ -37866,12 +37876,11 @@ $rt_metadata([
37866
37876
  0,
37867
37877
  0,
37868
37878
  0,
37869
- asrs_Simulator$Reason,
37870
- "Simulator$Reason",
37871
- 3,
37872
- jl_Enum,
37879
+ jlr_Array,
37880
+ 0,
37881
+ jl_Object,
37873
37882
  [],
37874
- 12,
37883
+ 4,
37875
37884
  3,
37876
37885
  0,
37877
37886
  0,
@@ -40921,7 +40930,7 @@ $rt_metadata([
40921
40930
  "$NaN",
40922
40931
  $rt_wrapFunction0(asrjt_Float64_NaN0)
40923
40932
  ],
40924
- asrjo_Arithmetic,
40933
+ asrjo_Conversions,
40925
40934
  0,
40926
40935
  jl_Object,
40927
40936
  [],
@@ -40930,7 +40939,7 @@ $rt_metadata([
40930
40939
  0,
40931
40940
  0,
40932
40941
  0,
40933
- asrjo_Conversions,
40942
+ asrjo_Comparisons,
40934
40943
  0,
40935
40944
  jl_Object,
40936
40945
  [],
@@ -40981,7 +40990,7 @@ $rt_metadata([
40981
40990
  "$NaN",
40982
40991
  $rt_wrapFunction0(asrjt_Float32_NaN0)
40983
40992
  ],
40984
- asrjo_Comparisons,
40993
+ asrjo_Arithmetic,
40985
40994
  0,
40986
40995
  jl_Object,
40987
40996
  [],
@@ -41018,6 +41027,15 @@ $rt_metadata([
41018
41027
  0,
41019
41028
  0,
41020
41029
  0,
41030
+ asrji_ExactFloat,
41031
+ 0,
41032
+ jl_Object,
41033
+ [jl_Comparable],
41034
+ 0,
41035
+ 3,
41036
+ 0,
41037
+ 0,
41038
+ 0,
41021
41039
  asrj_Flags,
41022
41040
  "Flags",
41023
41041
  9,
@@ -41028,15 +41046,6 @@ $rt_metadata([
41028
41046
  0,
41029
41047
  0,
41030
41048
  0,
41031
- asrji_ExactFloat,
41032
- 0,
41033
- jl_Object,
41034
- [jl_Comparable],
41035
- 0,
41036
- 3,
41037
- 0,
41038
- 0,
41039
- 0,
41040
41049
  ju_EnumSet,
41041
41050
  0,
41042
41051
  ju_AbstractSet,
@@ -42428,6 +42437,13 @@ $rt_stringPool([
42428
42437
  "Can't parse empty string",
42429
42438
  "The string does not represent a number",
42430
42439
  "The string represents a too big number",
42440
+ "BREAKPOINT",
42441
+ "EXCEPTION",
42442
+ "MAX_STEPS",
42443
+ "NORMAL_TERMINATION",
42444
+ "CLIFF_TERMINATION",
42445
+ "PAUSE",
42446
+ "STOP",
42431
42447
  "ft0",
42432
42448
  "ft1",
42433
42449
  "ft2",
@@ -42475,13 +42491,6 @@ $rt_stringPool([
42475
42491
  "Cannot claim, no timer interrupt pending",
42476
42492
  "Cannot claim, no trap pending",
42477
42493
  "trapPC doesn't match current pc",
42478
- "BREAKPOINT",
42479
- "EXCEPTION",
42480
- "MAX_STEPS",
42481
- "NORMAL_TERMINATION",
42482
- "CLIFF_TERMINATION",
42483
- "PAUSE",
42484
- "STOP",
42485
42494
  "Patter is null",
42486
42495
  "Recursive include of file ",
42487
42496
  "Error reading include file ",
@@ -42973,12 +42982,12 @@ $rt_stringPool([
42973
42982
  "NaNs are not exact",
42974
42983
  "Zeros should be handled explicitly",
42975
42984
  "This should not be reachable",
42985
+ "There can't be any fractions at this point",
42976
42986
  "Square root of a negative number is not real",
42977
42987
  "Cannot get here",
42978
42988
  "Both should definitely be finite by this point",
42979
42989
  "Accuracy must be a positive number",
42980
42990
  "Divide by Zero is not valid",
42981
- "There can't be any fractions at this point",
42982
42991
  "even",
42983
42992
  "away",
42984
42993
  "min",
@@ -43012,11 +43021,11 @@ var $rt_jso_marker = Symbol("jsoClass");
43012
43021
  let c;
43013
43022
  c = asr_JsRiscV.prototype;
43014
43023
  c.getTokenizedLines = $rt_callWithReceiver(asr_JsRiscV_getTokenizedLines$exported$24);
43015
- c.getCurrentStatementIndex = $rt_callWithReceiver(asr_JsRiscV_getCurrentStatementIndex$exported$28);
43024
+ c.getCurrentStatementIndex = $rt_callWithReceiver(asr_JsRiscV_getCurrentStatementIndex$exported$29);
43016
43025
  c.getRegisterValueLong = $rt_callWithReceiver(asr_JsRiscV_getRegisterValueLong$exported$13);
43017
43026
  c.setUndoEnabled = $rt_callWithReceiver(asr_JsRiscV_setUndoEnabled$exported$21);
43018
43027
  c.getRegistersValues = $rt_callWithReceiver(asr_JsRiscV_getRegistersValues$exported$6);
43019
- c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$32);
43028
+ c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$33);
43020
43029
  c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$8);
43021
43030
  c.getParsedStatements = $rt_callWithReceiver(asr_JsRiscV_getParsedStatements$exported$19);
43022
43031
  c.getStatementAtSourceLine = $rt_callWithReceiver(asr_JsRiscV_getStatementAtSourceLine$exported$20);
@@ -43027,7 +43036,7 @@ var $rt_jso_marker = Symbol("jsoClass");
43027
43036
  c.getLabelAtAddress = $rt_callWithReceiver(asr_JsRiscV_getLabelAtAddress$exported$2);
43028
43037
  c.simulate = $rt_callWithReceiver(asr_JsRiscV_simulate$exported$23);
43029
43038
  c.setMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_setMemoryBytes$exported$15);
43030
- c.getRegistersValuesLong = $rt_callWithReceiver(asr_JsRiscV_getRegistersValuesLong$exported$31);
43039
+ c.getRegistersValuesLong = $rt_callWithReceiver(asr_JsRiscV_getRegistersValuesLong$exported$32);
43031
43040
  c.getNextStatement = $rt_callWithReceiver(asr_JsRiscV_getNextStatement$exported$10);
43032
43041
  c.simulateWithBreakpoints = $rt_callWithReceiver(asr_JsRiscV_simulateWithBreakpoints$exported$27);
43033
43042
  c.getRegisterValue = $rt_callWithReceiver(asr_JsRiscV_getRegisterValue$exported$1);
@@ -43041,16 +43050,19 @@ var $rt_jso_marker = Symbol("jsoClass");
43041
43050
  c.getStatementAtAddress = $rt_callWithReceiver(asr_JsRiscV_getStatementAtAddress$exported$16);
43042
43051
  c.getCallStack = $rt_callWithReceiver(asr_JsRiscV_getCallStack$exported$4);
43043
43052
  Object.defineProperty(c, "stackPointerLong", {
43044
- get: $rt_callWithReceiver(asr_JsRiscV_getStackPointerLong$exported$30)
43053
+ get: $rt_callWithReceiver(asr_JsRiscV_getStackPointerLong$exported$31)
43045
43054
  });
43046
43055
  Object.defineProperty(c, "canUndo", {
43047
43056
  get: $rt_callWithReceiver(asr_JsRiscV_canUndo$exported$17)
43048
43057
  });
43049
43058
  Object.defineProperty(c, "programCounter", {
43050
- get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounter$exported$29)
43059
+ get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounter$exported$30)
43060
+ });
43061
+ Object.defineProperty(c, "programCounterLong", {
43062
+ get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounterLong$exported$28)
43051
43063
  });
43052
43064
  Object.defineProperty(c, "stackPointer", {
43053
- get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$33)
43065
+ get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$34)
43054
43066
  });
43055
43067
  Object.defineProperty(c, "terminated", {
43056
43068
  get: $rt_callWithReceiver(asr_JsRiscV_terminated$exported$11)
@@ -43087,6 +43099,26 @@ var $rt_jso_marker = Symbol("jsoClass");
43087
43099
  Object.defineProperty(c, "source", {
43088
43100
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
43089
43101
  });
43102
+ c = asr_JsRiscVTokenizedLine.prototype;
43103
+ Object.defineProperty(c, "line", {
43104
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
43105
+ });
43106
+ Object.defineProperty(c, "tokens", {
43107
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
43108
+ });
43109
+ c = asr_JsBackStep.prototype;
43110
+ Object.defineProperty(c, "pc", {
43111
+ get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
43112
+ });
43113
+ Object.defineProperty(c, "action", {
43114
+ get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
43115
+ });
43116
+ Object.defineProperty(c, "param1", {
43117
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
43118
+ });
43119
+ Object.defineProperty(c, "param2", {
43120
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
43121
+ });
43090
43122
  c = asr_JsStackFrame.prototype;
43091
43123
  Object.defineProperty(c, "pc", {
43092
43124
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -43103,13 +43135,6 @@ var $rt_jso_marker = Symbol("jsoClass");
43103
43135
  Object.defineProperty(c, "toAddress", {
43104
43136
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
43105
43137
  });
43106
- c = asr_JsRiscVTokenizedLine.prototype;
43107
- Object.defineProperty(c, "line", {
43108
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
43109
- });
43110
- Object.defineProperty(c, "tokens", {
43111
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
43112
- });
43113
43138
  c = asr_JsCompilationResult.prototype;
43114
43139
  Object.defineProperty(c, "hasErrors", {
43115
43140
  get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
@@ -43120,19 +43145,6 @@ var $rt_jso_marker = Symbol("jsoClass");
43120
43145
  Object.defineProperty(c, "errors", {
43121
43146
  get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
43122
43147
  });
43123
- c = asr_JsBackStep.prototype;
43124
- Object.defineProperty(c, "pc", {
43125
- get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
43126
- });
43127
- Object.defineProperty(c, "action", {
43128
- get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
43129
- });
43130
- Object.defineProperty(c, "param1", {
43131
- get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
43132
- });
43133
- Object.defineProperty(c, "param2", {
43134
- get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
43135
- });
43136
43148
  c = asr_JsCompilationResult$JsCompilationError.prototype;
43137
43149
  Object.defineProperty(c, "macroExpansionHistory", {
43138
43150
  get: $rt_callWithReceiver(asr_JsCompilationResult$JsCompilationError_getMacroExpansionHistory$exported$3)
@@ -43183,22 +43195,22 @@ function $rt_export_class_JsProgramStatement_70() {
43183
43195
  throw new Error("Can't instantiate this class directly");
43184
43196
  }
43185
43197
  $rt_export_class_JsProgramStatement_70.prototype = asr_JsProgramStatement.prototype;
43186
- function $rt_export_class_JsStackFrame_72() {
43198
+ function $rt_export_class_JsRiscVTokenizedLine_78() {
43187
43199
  throw new Error("Can't instantiate this class directly");
43188
43200
  }
43189
- $rt_export_class_JsStackFrame_72.prototype = asr_JsStackFrame.prototype;
43190
- function $rt_export_class_JsRiscVTokenizedLine_76() {
43201
+ $rt_export_class_JsRiscVTokenizedLine_78.prototype = asr_JsRiscVTokenizedLine.prototype;
43202
+ function $rt_export_class_JsBackStep_81() {
43191
43203
  throw new Error("Can't instantiate this class directly");
43192
43204
  }
43193
- $rt_export_class_JsRiscVTokenizedLine_76.prototype = asr_JsRiscVTokenizedLine.prototype;
43194
- function $rt_export_class_JsCompilationResult_77() {
43205
+ $rt_export_class_JsBackStep_81.prototype = asr_JsBackStep.prototype;
43206
+ function $rt_export_class_JsStackFrame_82() {
43195
43207
  throw new Error("Can't instantiate this class directly");
43196
43208
  }
43197
- $rt_export_class_JsCompilationResult_77.prototype = asr_JsCompilationResult.prototype;
43198
- function $rt_export_class_JsBackStep_84() {
43209
+ $rt_export_class_JsStackFrame_82.prototype = asr_JsStackFrame.prototype;
43210
+ function $rt_export_class_JsCompilationResult_83() {
43199
43211
  throw new Error("Can't instantiate this class directly");
43200
43212
  }
43201
- $rt_export_class_JsBackStep_84.prototype = asr_JsBackStep.prototype;
43213
+ $rt_export_class_JsCompilationResult_83.prototype = asr_JsCompilationResult.prototype;
43202
43214
  function $rt_export_class_JsCompilationError_350() {
43203
43215
  throw new Error("Can't instantiate this class directly");
43204
43216
  }