@specy/risc-v 0.1.8 → 1.0.0

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
@@ -2710,7 +2710,7 @@ var asr_JsRiscV_getRegistersValues$exported$6 = (var$1) => {
2710
2710
  var$1;
2711
2711
  asrrh_RegisterFile_$callClinit();
2712
2712
  var$1 = ju_Arrays_stream(asrrh_RegisterFile_instance.$regFile);
2713
- var$2 = new asr_JsRiscV$getRegistersValues$lambda$_20_0();
2713
+ var$2 = new asr_JsRiscV$getRegistersValues$lambda$_21_0();
2714
2714
  var$1 = var$1;
2715
2715
  var$3 = new jusi_MappingToIntStreamImpl();
2716
2716
  var$3.$source1 = var$1;
@@ -2915,9 +2915,9 @@ var asr_JsRiscV_getUndoStack$exported$13 = (var$1) => {
2915
2915
  var$6 = var$6 + 1 | 0;
2916
2916
  }
2917
2917
  var$1 = ju_Arrays_stream(var$4);
2918
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_0();
2918
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_22_0();
2919
2919
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
2920
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_1();
2920
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_22_1();
2921
2921
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
2922
2922
  };
2923
2923
  var asr_JsRiscV_setMemoryBytes$exported$14 = (var$1, var$2, var$3) => {
@@ -3129,6 +3129,7 @@ var asr_JsRiscV_setIs64Bit$exported$27 = (var$1, var$2) => {
3129
3129
  ju_Observable_notifyObservers(var$1, null);
3130
3130
  }
3131
3131
  if (asr_Globals_initialized) {
3132
+ asrr_InstructionSet_rv64 = var$3;
3132
3133
  var$1 = asrr_InstructionSet__init_();
3133
3134
  asr_Globals_instructionSet = var$1;
3134
3135
  asrr_InstructionSet_populate(var$1);
@@ -3143,7 +3144,14 @@ var asr_JsRiscV_getProgramCounter$exported$29 = (var$1) => {
3143
3144
  var$1;
3144
3145
  return asrrh_RegisterFile_getProgramCounter();
3145
3146
  };
3146
- var asr_JsRiscV_readMemoryBytes$exported$30 = (var$1, var$2, var$3) => {
3147
+ var asr_JsRiscV_is64Bit$exported$30 = (var$1, var$2) => {
3148
+ asr_JsRiscV_$callClinit();
3149
+ var$2 ? 1 : 0;
3150
+ var$1;
3151
+ asr_Globals_$callClinit();
3152
+ asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_RV64_ENABLED);
3153
+ };
3154
+ var asr_JsRiscV_readMemoryBytes$exported$31 = (var$1, var$2, var$3) => {
3147
3155
  let var$4, var$5, var$6, var$7, var$8;
3148
3156
  asr_JsRiscV_$callClinit();
3149
3157
  var$4 = var$2;
@@ -3159,7 +3167,7 @@ var asr_JsRiscV_readMemoryBytes$exported$30 = (var$1, var$2, var$3) => {
3159
3167
  }
3160
3168
  return otji_JS_wrap0(var$6);
3161
3169
  };
3162
- var asr_JsRiscV_getStackPointer$exported$31 = (var$1) => {
3170
+ var asr_JsRiscV_getStackPointer$exported$32 = (var$1) => {
3163
3171
  asr_JsRiscV_$callClinit();
3164
3172
  var$1;
3165
3173
  return Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
@@ -3238,9 +3246,9 @@ var asr_JsRiscV_getInstructionSet$exported$2 = () => {
3238
3246
  if (asr_Globals_instructionSet === null)
3239
3247
  asr_RARS_initializeRISCV();
3240
3248
  var$1 = ju_Collection_stream(asr_Globals_instructionSet.$instructionList);
3241
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_34_0();
3249
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_35_0();
3242
3250
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
3243
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_34_1();
3251
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_35_1();
3244
3252
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
3245
3253
  };
3246
3254
  var asr_JsRiscV__clinit_ = () => {
@@ -3252,12 +3260,13 @@ var asr_JsRiscV__clinit_ = () => {
3252
3260
  jur_AbstractSet__clinit_();
3253
3261
  jur_AbstractCharClass$PredefinedCharacterClasses__clinit_();
3254
3262
  jur_AbstractCharClass__clinit_();
3255
- asr_Settings$Bool__clinit_();
3256
- jl_Boolean__clinit_();
3263
+ asrr_InstructionSet__clinit_();
3257
3264
  asrrh_MemoryConfigurations__clinit_();
3258
3265
  ju_Vector__clinit_();
3259
3266
  asra_SymbolTable__clinit_();
3260
3267
  asru_SystemIO__clinit_();
3268
+ asr_Settings$Bool__clinit_();
3269
+ jl_Boolean__clinit_();
3261
3270
  asrr_Instruction__clinit_();
3262
3271
  ju_Collections__clinit_();
3263
3272
  asrr_AbstractSyscall__clinit_();
@@ -3286,10 +3295,10 @@ var asr_JsRiscV__clinit_ = () => {
3286
3295
  jnc_CodingErrorAction__clinit_();
3287
3296
  jnc_CoderResult__clinit_();
3288
3297
  jn_ByteOrder__clinit_();
3289
- asrjt_Float64__clinit_();
3290
3298
  asrjt_Float32__clinit_();
3291
- jm_BigInteger__clinit_();
3299
+ asrjt_Float64__clinit_();
3292
3300
  asrjo_Arithmetic__clinit_();
3301
+ jm_BigInteger__clinit_();
3293
3302
  asrj_RoundingMode__clinit_();
3294
3303
  asrj_Flags__clinit_();
3295
3304
  asrji_ExactFloat__clinit_();
@@ -3968,8 +3977,8 @@ var asr_RARS_simulate = ($this, $limit) => {
3968
3977
  $rt_nativeThread().push($this, $limit, var$2, $ptr);
3969
3978
  };
3970
3979
  var juf_Function = $rt_classWithoutFields(0);
3971
- var asr_JsRiscV$getInstructionSet$lambda$_34_0 = $rt_classWithoutFields();
3972
- var asr_JsRiscV$getInstructionSet$lambda$_34_0_apply = (var$0, var$1) => {
3980
+ var asr_JsRiscV$getInstructionSet$lambda$_35_0 = $rt_classWithoutFields();
3981
+ var asr_JsRiscV$getInstructionSet$lambda$_35_0_apply = (var$0, var$1) => {
3973
3982
  let var$2, var$3;
3974
3983
  var$1 = var$1;
3975
3984
  var$2 = new asr_JsInstruction();
@@ -3985,8 +3994,8 @@ var asr_JsRiscV$getInstructionSet$lambda$_34_0_apply = (var$0, var$1) => {
3985
3994
  return var$2;
3986
3995
  };
3987
3996
  var juf_IntFunction = $rt_classWithoutFields(0);
3988
- var asr_JsRiscV$getInstructionSet$lambda$_34_1 = $rt_classWithoutFields();
3989
- var asr_JsRiscV$getInstructionSet$lambda$_34_1_apply = (var$0, var$1) => {
3997
+ var asr_JsRiscV$getInstructionSet$lambda$_35_1 = $rt_classWithoutFields();
3998
+ var asr_JsRiscV$getInstructionSet$lambda$_35_1_apply = (var$0, var$1) => {
3990
3999
  asr_JsRiscV_$callClinit();
3991
4000
  return $rt_createArray(asr_JsInstruction, var$1);
3992
4001
  };
@@ -4313,12 +4322,7 @@ function asrr_InstructionSet() {
4313
4322
  a.$opcodeMatchMaps = null;
4314
4323
  }
4315
4324
  var asrr_InstructionSet_rv64 = 0;
4316
- var asrr_InstructionSet_$callClinit = () => {
4317
- asrr_InstructionSet_$callClinit = $rt_eraseClinit(asrr_InstructionSet);
4318
- asrr_InstructionSet__clinit_();
4319
- };
4320
4325
  var asrr_InstructionSet__init_0 = ($this) => {
4321
- asrr_InstructionSet_$callClinit();
4322
4326
  $this.$instructionList = ju_ArrayList__init_();
4323
4327
  };
4324
4328
  var asrr_InstructionSet__init_ = () => {
@@ -4430,12 +4434,7 @@ var asrr_InstructionSet_matchOperator = ($this, $name) => {
4430
4434
  }
4431
4435
  return $matchingInstructions;
4432
4436
  };
4433
- var asrr_InstructionSet_processJump = ($targetAddress) => {
4434
- asrr_InstructionSet_$callClinit();
4435
- asrrh_RegisterFile_setProgramCounter($targetAddress);
4436
- };
4437
4437
  var asrr_InstructionSet_processReturnAddress = ($register) => {
4438
- asrr_InstructionSet_$callClinit();
4439
4438
  asrrh_RegisterFile_updateRegister($register, Long_fromInt(asrrh_RegisterFile_getProgramCounter()));
4440
4439
  };
4441
4440
  var asrr_InstructionSet_addBasicInstructions = ($this) => {
@@ -4548,7 +4547,6 @@ var asrr_InstructionSet_addBasicInstructions = ($this) => {
4548
4547
  ju_ArrayList_add($this.$instructionList, asrri_WFI__init_());
4549
4548
  ju_ArrayList_add($this.$instructionList, asrri_XOR__init_());
4550
4549
  ju_ArrayList_add($this.$instructionList, asrri_XORI__init_0());
4551
- asrr_InstructionSet_$callClinit();
4552
4550
  if (asrr_InstructionSet_rv64) {
4553
4551
  ju_ArrayList_add($this.$instructionList, asrri_ADDW__init_());
4554
4552
  ju_ArrayList_add($this.$instructionList, asrri_ADDIW__init_0());
@@ -4583,7 +4581,7 @@ var asrr_InstructionSet_addBasicInstructions = ($this) => {
4583
4581
  }
4584
4582
  };
4585
4583
  var asrr_InstructionSet__clinit_ = () => {
4586
- asrr_InstructionSet_rv64 = asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_RV64_ENABLED);
4584
+ asrr_InstructionSet_rv64 = 0;
4587
4585
  };
4588
4586
  function ju_Observable() {
4589
4587
  let a = this;
@@ -6071,6 +6069,70 @@ var ju_ArrayList_checkIndex = ($this, $index) => {
6071
6069
  jl_Throwable__init_(var$2);
6072
6070
  $rt_throw(var$2);
6073
6071
  };
6072
+ var asrrh_MemoryConfigurations = $rt_classWithoutFields();
6073
+ var asrrh_MemoryConfigurations_configurations = null;
6074
+ var asrrh_MemoryConfigurations_defaultConfiguration = null;
6075
+ var asrrh_MemoryConfigurations_currentConfiguration = null;
6076
+ var asrrh_MemoryConfigurations_configurationItemNames = null;
6077
+ var asrrh_MemoryConfigurations_defaultConfigurationItemValues = null;
6078
+ var asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = null;
6079
+ var asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = null;
6080
+ var asrrh_MemoryConfigurations_buildConfigurationCollection = () => {
6081
+ let var$1, var$2, var$3, var$4;
6082
+ if (asrrh_MemoryConfigurations_configurations === null) {
6083
+ var$1 = ju_ArrayList__init_();
6084
+ asrrh_MemoryConfigurations_configurations = var$1;
6085
+ ju_ArrayList_add(var$1, asrrh_MemoryConfiguration__init_($rt_s(127), $rt_s(127), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_defaultConfigurationItemValues));
6086
+ ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(128), $rt_s(129), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues));
6087
+ ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(130), $rt_s(131), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues));
6088
+ var$2 = ju_ArrayList_get(asrrh_MemoryConfigurations_configurations, 0);
6089
+ asrrh_MemoryConfigurations_defaultConfiguration = var$2;
6090
+ asrrh_MemoryConfigurations_currentConfiguration = var$2;
6091
+ var$3 = asr_Globals_getSettings().$stringSettingsValues.data[3];
6092
+ if (asrrh_MemoryConfigurations_configurations === null)
6093
+ asrrh_MemoryConfigurations_buildConfigurationCollection();
6094
+ var$4 = ju_AbstractList_iterator(asrrh_MemoryConfigurations_configurations);
6095
+ a: {
6096
+ while (true) {
6097
+ if (!ju_AbstractList$1_hasNext(var$4)) {
6098
+ var$2 = null;
6099
+ break a;
6100
+ }
6101
+ var$2 = ju_AbstractList$1_next(var$4);
6102
+ if (jl_String_equals(var$3, var$2.$configurationIdentifier))
6103
+ break;
6104
+ }
6105
+ }
6106
+ if (var$2 !== null && var$2 !== asrrh_MemoryConfigurations_currentConfiguration) {
6107
+ asrrh_MemoryConfigurations_currentConfiguration = var$2;
6108
+ asrrh_Memory_clear(asr_Globals_memory);
6109
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(132)), Long_fromInt(asrrh_MemoryConfiguration_getGlobalPointer(var$2)));
6110
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(133)), Long_fromInt(asrrh_MemoryConfiguration_getStackPointer(var$2)));
6111
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_programCounter, Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6112
+ asrrh_RegisterFile_initializeProgramCounter(asrrh_MemoryConfiguration_getTextBaseAddress(var$2));
6113
+ asrrh_RegisterFile_resetRegisters();
6114
+ }
6115
+ }
6116
+ };
6117
+ var asrrh_MemoryConfigurations_getCurrentConfiguration = () => {
6118
+ if (asrrh_MemoryConfigurations_currentConfiguration === null)
6119
+ asrrh_MemoryConfigurations_buildConfigurationCollection();
6120
+ return asrrh_MemoryConfigurations_currentConfiguration;
6121
+ };
6122
+ var asrrh_MemoryConfigurations__clinit_ = () => {
6123
+ asrrh_MemoryConfigurations_configurations = null;
6124
+ asrrh_MemoryConfigurations_configurationItemNames = $rt_wrapArray(jl_String, [$rt_s(134), $rt_s(135), $rt_s(136), $rt_s(137), $rt_s(138), $rt_s(139), $rt_s(140), $rt_s(141), $rt_s(142), $rt_s(143), $rt_s(144), $rt_s(145), $rt_s(146), $rt_s(147), $rt_s(148), $rt_s(149)]);
6125
+ asrrh_MemoryConfigurations_defaultConfigurationItemValues = $rt_createIntArrayFromData([4194304, 268435456, 268435456, 268468224, 268500992, 268697600, 2147479548, 2147483644, 2147483647, -2147483648, -65536, -1, 2147483647, 268435452, 268697600, -1]);
6126
+ asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([12288, 0, 4096, 6144, 0, 8192, 12284, 12284, 16383, 16384, 32512, 32767, 12287, 16380, 8192, 32767]);
6127
+ asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([0, 4096, 4096, 6144, 8192, 12288, 16380, 16380, 16383, 16384, 32512, 32767, 16383, 4092, 12288, 32767]);
6128
+ };
6129
+ var asrc_ConfigMap = $rt_classWithoutFields(ju_HashMap);
6130
+ var asrc_ConfigMap_getIntegerValue = ($this, $key) => {
6131
+ return jl_Integer_parseInt0(ju_HashMap_get($this, $key));
6132
+ };
6133
+ var asrc_SettingsProperties = $rt_classWithoutFields(asrc_ConfigMap);
6134
+ var asrc_ConfigProperties = $rt_classWithoutFields(asrc_ConfigMap);
6135
+ var jl_IllegalArgumentException = $rt_classWithoutFields(jl_RuntimeException);
6074
6136
  function jl_Enum() {
6075
6137
  let a = this;
6076
6138
  jl_Object.call(a);
@@ -6110,7 +6172,7 @@ var jl_Enum_compareTo = ($this, var$1) => {
6110
6172
  var$1 = jl_String_valueOf(jl_Enum_getDeclaringClass(var$1));
6111
6173
  var$4 = new jl_StringBuilder();
6112
6174
  jl_AbstractStringBuilder__init_(var$4);
6113
- jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(var$4, $rt_s(127)), var$3), $rt_s(128)), var$1);
6175
+ jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(var$4, $rt_s(150)), var$3), $rt_s(151)), var$1);
6114
6176
  jl_Throwable__init_0(var$2, jl_AbstractStringBuilder_toString(var$4));
6115
6177
  $rt_throw(var$2);
6116
6178
  };
@@ -6164,28 +6226,28 @@ var asr_Settings$Bool_getName = ($this) => {
6164
6226
  };
6165
6227
  var asr_Settings$Bool__clinit_ = () => {
6166
6228
  let var$1, var$2, var$3;
6167
- asr_Settings$Bool_EXTENDED_ASSEMBLER_ENABLED = asr_Settings$Bool__init_($rt_s(129), 0, $rt_s(94), 1);
6168
- asr_Settings$Bool_ASSEMBLE_ON_OPEN = asr_Settings$Bool__init_($rt_s(130), 1, $rt_s(85), 0);
6169
- asr_Settings$Bool_ASSEMBLE_OPEN = asr_Settings$Bool__init_($rt_s(131), 2, $rt_s(132), 0);
6170
- asr_Settings$Bool_ASSEMBLE_ALL = asr_Settings$Bool__init_($rt_s(133), 3, $rt_s(83), 0);
6171
- asr_Settings$Bool_LABEL_WINDOW_VISIBILITY = asr_Settings$Bool__init_($rt_s(134), 4, $rt_s(95), 0);
6172
- asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX = asr_Settings$Bool__init_($rt_s(135), 5, $rt_s(90), 1);
6173
- asr_Settings$Bool_DISPLAY_VALUES_IN_HEX = asr_Settings$Bool__init_($rt_s(136), 6, $rt_s(91), 1);
6174
- asr_Settings$Bool_EXCEPTION_HANDLER_ENABLED = asr_Settings$Bool__init_($rt_s(137), 7, $rt_s(96), 0);
6175
- asr_Settings$Bool_EDITOR_LINE_NUMBERS_DISPLAYED = asr_Settings$Bool__init_($rt_s(138), 8, $rt_s(93), 1);
6176
- asr_Settings$Bool_WARNINGS_ARE_ERRORS = asr_Settings$Bool__init_($rt_s(139), 9, $rt_s(100), 0);
6177
- asr_Settings$Bool_PROGRAM_ARGUMENTS = asr_Settings$Bool__init_($rt_s(140), 10, $rt_s(97), 0);
6178
- asr_Settings$Bool_DATA_SEGMENT_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(141), 11, $rt_s(87), 1);
6179
- asr_Settings$Bool_REGISTERS_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(142), 12, $rt_s(98), 1);
6180
- asr_Settings$Bool_START_AT_MAIN = asr_Settings$Bool__init_($rt_s(143), 13, $rt_s(99), 0);
6181
- asr_Settings$Bool_EDITOR_CURRENT_LINE_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(144), 14, $rt_s(92), 1);
6182
- asr_Settings$Bool_POPUP_INSTRUCTION_GUIDANCE = asr_Settings$Bool__init_($rt_s(145), 15, $rt_s(101), 1);
6183
- asr_Settings$Bool_POPUP_SYSCALL_INPUT = asr_Settings$Bool__init_($rt_s(146), 16, $rt_s(147), 0);
6184
- asr_Settings$Bool_GENERIC_TEXT_EDITOR = asr_Settings$Bool__init_($rt_s(148), 17, $rt_s(149), 0);
6185
- asr_Settings$Bool_AUTO_INDENT = asr_Settings$Bool__init_($rt_s(150), 18, $rt_s(151), 1);
6186
- asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED = asr_Settings$Bool__init_($rt_s(152), 19, $rt_s(153), 0);
6187
- asr_Settings$Bool_RV64_ENABLED = asr_Settings$Bool__init_($rt_s(154), 20, $rt_s(155), 0);
6188
- var$1 = asr_Settings$Bool__init_($rt_s(156), 21, $rt_s(157), 0);
6229
+ asr_Settings$Bool_EXTENDED_ASSEMBLER_ENABLED = asr_Settings$Bool__init_($rt_s(152), 0, $rt_s(94), 1);
6230
+ asr_Settings$Bool_ASSEMBLE_ON_OPEN = asr_Settings$Bool__init_($rt_s(153), 1, $rt_s(85), 0);
6231
+ asr_Settings$Bool_ASSEMBLE_OPEN = asr_Settings$Bool__init_($rt_s(154), 2, $rt_s(155), 0);
6232
+ asr_Settings$Bool_ASSEMBLE_ALL = asr_Settings$Bool__init_($rt_s(156), 3, $rt_s(83), 0);
6233
+ asr_Settings$Bool_LABEL_WINDOW_VISIBILITY = asr_Settings$Bool__init_($rt_s(157), 4, $rt_s(95), 0);
6234
+ asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX = asr_Settings$Bool__init_($rt_s(158), 5, $rt_s(90), 1);
6235
+ asr_Settings$Bool_DISPLAY_VALUES_IN_HEX = asr_Settings$Bool__init_($rt_s(159), 6, $rt_s(91), 1);
6236
+ asr_Settings$Bool_EXCEPTION_HANDLER_ENABLED = asr_Settings$Bool__init_($rt_s(160), 7, $rt_s(96), 0);
6237
+ asr_Settings$Bool_EDITOR_LINE_NUMBERS_DISPLAYED = asr_Settings$Bool__init_($rt_s(161), 8, $rt_s(93), 1);
6238
+ asr_Settings$Bool_WARNINGS_ARE_ERRORS = asr_Settings$Bool__init_($rt_s(162), 9, $rt_s(100), 0);
6239
+ asr_Settings$Bool_PROGRAM_ARGUMENTS = asr_Settings$Bool__init_($rt_s(163), 10, $rt_s(97), 0);
6240
+ asr_Settings$Bool_DATA_SEGMENT_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(164), 11, $rt_s(87), 1);
6241
+ asr_Settings$Bool_REGISTERS_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(165), 12, $rt_s(98), 1);
6242
+ asr_Settings$Bool_START_AT_MAIN = asr_Settings$Bool__init_($rt_s(166), 13, $rt_s(99), 0);
6243
+ asr_Settings$Bool_EDITOR_CURRENT_LINE_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(167), 14, $rt_s(92), 1);
6244
+ asr_Settings$Bool_POPUP_INSTRUCTION_GUIDANCE = asr_Settings$Bool__init_($rt_s(168), 15, $rt_s(101), 1);
6245
+ asr_Settings$Bool_POPUP_SYSCALL_INPUT = asr_Settings$Bool__init_($rt_s(169), 16, $rt_s(170), 0);
6246
+ asr_Settings$Bool_GENERIC_TEXT_EDITOR = asr_Settings$Bool__init_($rt_s(171), 17, $rt_s(172), 0);
6247
+ asr_Settings$Bool_AUTO_INDENT = asr_Settings$Bool__init_($rt_s(173), 18, $rt_s(174), 1);
6248
+ asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED = asr_Settings$Bool__init_($rt_s(175), 19, $rt_s(176), 0);
6249
+ asr_Settings$Bool_RV64_ENABLED = asr_Settings$Bool__init_($rt_s(177), 20, $rt_s(178), 0);
6250
+ var$1 = asr_Settings$Bool__init_($rt_s(179), 21, $rt_s(180), 0);
6189
6251
  asr_Settings$Bool_DERIVE_CURRENT_WORKING_DIRECTORY = var$1;
6190
6252
  var$2 = $rt_createArray(asr_Settings$Bool, 22);
6191
6253
  var$3 = var$2.data;
@@ -6213,70 +6275,6 @@ var asr_Settings$Bool__clinit_ = () => {
6213
6275
  var$3[21] = var$1;
6214
6276
  asr_Settings$Bool_$VALUES = var$2;
6215
6277
  };
6216
- var asrrh_MemoryConfigurations = $rt_classWithoutFields();
6217
- var asrrh_MemoryConfigurations_configurations = null;
6218
- var asrrh_MemoryConfigurations_defaultConfiguration = null;
6219
- var asrrh_MemoryConfigurations_currentConfiguration = null;
6220
- var asrrh_MemoryConfigurations_configurationItemNames = null;
6221
- var asrrh_MemoryConfigurations_defaultConfigurationItemValues = null;
6222
- var asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = null;
6223
- var asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = null;
6224
- var asrrh_MemoryConfigurations_buildConfigurationCollection = () => {
6225
- let var$1, var$2, var$3, var$4;
6226
- if (asrrh_MemoryConfigurations_configurations === null) {
6227
- var$1 = ju_ArrayList__init_();
6228
- asrrh_MemoryConfigurations_configurations = var$1;
6229
- ju_ArrayList_add(var$1, asrrh_MemoryConfiguration__init_($rt_s(158), $rt_s(158), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_defaultConfigurationItemValues));
6230
- ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(159), $rt_s(160), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues));
6231
- ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(161), $rt_s(162), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues));
6232
- var$2 = ju_ArrayList_get(asrrh_MemoryConfigurations_configurations, 0);
6233
- asrrh_MemoryConfigurations_defaultConfiguration = var$2;
6234
- asrrh_MemoryConfigurations_currentConfiguration = var$2;
6235
- var$3 = asr_Globals_getSettings().$stringSettingsValues.data[3];
6236
- if (asrrh_MemoryConfigurations_configurations === null)
6237
- asrrh_MemoryConfigurations_buildConfigurationCollection();
6238
- var$4 = ju_AbstractList_iterator(asrrh_MemoryConfigurations_configurations);
6239
- a: {
6240
- while (true) {
6241
- if (!ju_AbstractList$1_hasNext(var$4)) {
6242
- var$2 = null;
6243
- break a;
6244
- }
6245
- var$2 = ju_AbstractList$1_next(var$4);
6246
- if (jl_String_equals(var$3, var$2.$configurationIdentifier))
6247
- break;
6248
- }
6249
- }
6250
- if (var$2 !== null && var$2 !== asrrh_MemoryConfigurations_currentConfiguration) {
6251
- asrrh_MemoryConfigurations_currentConfiguration = var$2;
6252
- asrrh_Memory_clear(asr_Globals_memory);
6253
- asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(163)), Long_fromInt(asrrh_MemoryConfiguration_getGlobalPointer(var$2)));
6254
- asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(164)), Long_fromInt(asrrh_MemoryConfiguration_getStackPointer(var$2)));
6255
- asrrh_Register_changeResetValue(asrrh_RegisterFile_programCounter, Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6256
- asrrh_RegisterFile_initializeProgramCounter(asrrh_MemoryConfiguration_getTextBaseAddress(var$2));
6257
- asrrh_RegisterFile_resetRegisters();
6258
- }
6259
- }
6260
- };
6261
- var asrrh_MemoryConfigurations_getCurrentConfiguration = () => {
6262
- if (asrrh_MemoryConfigurations_currentConfiguration === null)
6263
- asrrh_MemoryConfigurations_buildConfigurationCollection();
6264
- return asrrh_MemoryConfigurations_currentConfiguration;
6265
- };
6266
- var asrrh_MemoryConfigurations__clinit_ = () => {
6267
- asrrh_MemoryConfigurations_configurations = null;
6268
- asrrh_MemoryConfigurations_configurationItemNames = $rt_wrapArray(jl_String, [$rt_s(165), $rt_s(166), $rt_s(167), $rt_s(168), $rt_s(169), $rt_s(170), $rt_s(171), $rt_s(172), $rt_s(173), $rt_s(174), $rt_s(175), $rt_s(176), $rt_s(177), $rt_s(178), $rt_s(179), $rt_s(180)]);
6269
- asrrh_MemoryConfigurations_defaultConfigurationItemValues = $rt_createIntArrayFromData([4194304, 268435456, 268435456, 268468224, 268500992, 268697600, 2147479548, 2147483644, 2147483647, -2147483648, -65536, -1, 2147483647, 268435452, 268697600, -1]);
6270
- asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([12288, 0, 4096, 6144, 0, 8192, 12284, 12284, 16383, 16384, 32512, 32767, 12287, 16380, 8192, 32767]);
6271
- asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([0, 4096, 4096, 6144, 8192, 12288, 16380, 16380, 16383, 16384, 32512, 32767, 16383, 4092, 12288, 32767]);
6272
- };
6273
- var asrc_ConfigMap = $rt_classWithoutFields(ju_HashMap);
6274
- var asrc_ConfigMap_getIntegerValue = ($this, $key) => {
6275
- return jl_Integer_parseInt0(ju_HashMap_get($this, $key));
6276
- };
6277
- var asrc_SettingsProperties = $rt_classWithoutFields(asrc_ConfigMap);
6278
- var asrc_ConfigProperties = $rt_classWithoutFields(asrc_ConfigMap);
6279
- var jl_IllegalArgumentException = $rt_classWithoutFields(jl_RuntimeException);
6280
6278
  function jl_Boolean() {
6281
6279
  jl_Object.call(this);
6282
6280
  this.$value4 = 0;
@@ -7003,227 +7001,19 @@ var jl_System_currentTimeMillis = () => {
7003
7001
  return Long_fromNumber((/* @__PURE__ */ new Date()).getTime());
7004
7002
  };
7005
7003
  var jl_CloneNotSupportedException = $rt_classWithoutFields(jl_Exception);
7006
- var asrrh_RegisterFile = $rt_classWithoutFields();
7007
- var asrrh_RegisterFile_instance = null;
7008
- var asrrh_RegisterFile_programCounter = null;
7009
- var asrrh_RegisterFile_$callClinit = () => {
7010
- asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7011
- asrrh_RegisterFile__clinit_();
7012
- };
7013
- var asrrh_RegisterFile_updateRegister = (var$1, var$2) => {
7014
- let var$3;
7015
- asrrh_RegisterFile_$callClinit();
7016
- if (var$1) {
7017
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7018
- asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7019
- else {
7020
- var$3 = asr_Globals_program.$backStepper;
7021
- var$2 = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7022
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), var$1, var$2);
7023
- }
7024
- }
7025
- };
7026
- var asrrh_RegisterFile_updateRegister0 = ($name, $val) => {
7027
- asrrh_RegisterFile_$callClinit();
7028
- asrrh_RegisterFile_updateRegister(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name).$number, $val);
7029
- };
7030
- var asrrh_RegisterFile_getValue0 = ($num) => {
7031
- asrrh_RegisterFile_$callClinit();
7032
- return Long_lo(asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num));
7033
- };
7034
- var asrrh_RegisterFile_getValueLong = ($num) => {
7035
- asrrh_RegisterFile_$callClinit();
7036
- return asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num);
7037
- };
7038
- var asrrh_RegisterFile_getValue = ($name) => {
7039
- asrrh_RegisterFile_$callClinit();
7040
- return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_RegisterFile_instance, $name));
7041
- };
7042
- var asrrh_RegisterFile_getRegister = ($name) => {
7043
- asrrh_RegisterFile_$callClinit();
7044
- if (!jl_String_equals($name, $rt_s(211)))
7045
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name);
7046
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(212));
7047
- };
7048
- var asrrh_RegisterFile_initializeProgramCounter = ($value) => {
7049
- asrrh_RegisterFile_$callClinit();
7050
- asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7051
- };
7052
- var asrrh_RegisterFile_initializeProgramCounter0 = ($startAtMain) => {
7053
- let $mainAddr;
7054
- asrrh_RegisterFile_$callClinit();
7055
- asr_Globals_$callClinit();
7056
- $mainAddr = asra_SymbolTable_getAddress(asr_Globals_symbolTable, asra_SymbolTable_startLabel);
7057
- if ($startAtMain && $mainAddr != -1 && asrrh_Memory_inTextSegment($mainAddr))
7058
- asrrh_RegisterFile_initializeProgramCounter($mainAddr);
7059
- else
7060
- asrrh_RegisterFile_initializeProgramCounter(Long_lo(asrrh_RegisterFile_programCounter.$resetValue0));
7061
- };
7062
- var asrrh_RegisterFile_getStackPointerRegister = () => {
7063
- asrrh_RegisterFile_$callClinit();
7064
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(164));
7065
- };
7066
- var asrrh_RegisterFile_setProgramCounter = ($value) => {
7067
- let $old, var$3;
7068
- asrrh_RegisterFile_$callClinit();
7069
- $old = Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7070
- asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7071
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
7072
- var$3 = asr_Globals_program.$backStepper;
7073
- $value = $old + -4 | 0;
7074
- asrs_BackStepper$BackstepStack_push0(var$3.$backSteps, asrs_BackStepper$Action_PC_RESTORE, $value, $value);
7075
- }
7076
- return $old;
7077
- };
7078
- var asrrh_RegisterFile_getProgramCounter = () => {
7079
- asrrh_RegisterFile_$callClinit();
7080
- return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7081
- };
7082
- var asrrh_RegisterFile_resetRegisters = () => {
7083
- asrrh_RegisterFile_$callClinit();
7084
- asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
7085
- asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_START_AT_MAIN));
7086
- };
7087
- var asrrh_RegisterFile_incrementPC = () => {
7088
- let var$1;
7089
- asrrh_RegisterFile_$callClinit();
7090
- var$1 = asrrh_RegisterFile_programCounter;
7091
- asrrh_Register_setValue(var$1, Long_add(asrrh_Register_getValue(var$1), Long_fromInt(4)));
7092
- };
7093
- var asrrh_RegisterFile__clinit_ = () => {
7094
- let var$1, var$2, var$3, var$4;
7095
- var$1 = new asrrh_RegisterBlock();
7096
- var$2 = $rt_createArray(asrrh_Register, 32);
7097
- var$3 = var$2.data;
7098
- var$3[0] = asrrh_Register__init_($rt_s(213), 0, Long_ZERO);
7099
- var$3[1] = asrrh_Register__init_($rt_s(214), 1, Long_ZERO);
7100
- var$4 = new asrrh_Register();
7101
- asrrh_Memory_$callClinit();
7102
- asrrh_Register__init_0(var$4, $rt_s(164), 2, Long_fromInt(asrrh_Memory_stackPointer));
7103
- var$3[2] = var$4;
7104
- var$3[3] = asrrh_Register__init_($rt_s(163), 3, Long_fromInt(asrrh_Memory_globalPointer));
7105
- var$3[4] = asrrh_Register__init_($rt_s(215), 4, Long_ZERO);
7106
- var$3[5] = asrrh_Register__init_($rt_s(216), 5, Long_ZERO);
7107
- var$3[6] = asrrh_Register__init_($rt_s(217), 6, Long_ZERO);
7108
- var$3[7] = asrrh_Register__init_($rt_s(218), 7, Long_ZERO);
7109
- var$3[8] = asrrh_Register__init_($rt_s(212), 8, Long_ZERO);
7110
- var$3[9] = asrrh_Register__init_($rt_s(219), 9, Long_ZERO);
7111
- var$3[10] = asrrh_Register__init_($rt_s(220), 10, Long_ZERO);
7112
- var$3[11] = asrrh_Register__init_($rt_s(221), 11, Long_ZERO);
7113
- var$3[12] = asrrh_Register__init_($rt_s(222), 12, Long_ZERO);
7114
- var$3[13] = asrrh_Register__init_($rt_s(223), 13, Long_ZERO);
7115
- var$3[14] = asrrh_Register__init_($rt_s(224), 14, Long_ZERO);
7116
- var$3[15] = asrrh_Register__init_($rt_s(225), 15, Long_ZERO);
7117
- var$3[16] = asrrh_Register__init_($rt_s(226), 16, Long_ZERO);
7118
- var$3[17] = asrrh_Register__init_($rt_s(227), 17, Long_ZERO);
7119
- var$3[18] = asrrh_Register__init_($rt_s(228), 18, Long_ZERO);
7120
- var$3[19] = asrrh_Register__init_($rt_s(229), 19, Long_ZERO);
7121
- var$3[20] = asrrh_Register__init_($rt_s(230), 20, Long_ZERO);
7122
- var$3[21] = asrrh_Register__init_($rt_s(231), 21, Long_ZERO);
7123
- var$3[22] = asrrh_Register__init_($rt_s(232), 22, Long_ZERO);
7124
- var$3[23] = asrrh_Register__init_($rt_s(233), 23, Long_ZERO);
7125
- var$3[24] = asrrh_Register__init_($rt_s(234), 24, Long_ZERO);
7126
- var$3[25] = asrrh_Register__init_($rt_s(235), 25, Long_ZERO);
7127
- var$3[26] = asrrh_Register__init_($rt_s(236), 26, Long_ZERO);
7128
- var$3[27] = asrrh_Register__init_($rt_s(237), 27, Long_ZERO);
7129
- var$3[28] = asrrh_Register__init_($rt_s(238), 28, Long_ZERO);
7130
- var$3[29] = asrrh_Register__init_($rt_s(239), 29, Long_ZERO);
7131
- var$3[30] = asrrh_Register__init_($rt_s(240), 30, Long_ZERO);
7132
- var$3[31] = asrrh_Register__init_($rt_s(241), 31, Long_ZERO);
7133
- asrrh_RegisterBlock__init_(var$1, 120, var$2);
7134
- asrrh_RegisterFile_instance = var$1;
7135
- asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7136
- };
7137
- function asr_JsProgramStatement() {
7138
- let a = this;
7139
- jl_Object.call(a);
7140
- a.$sourceLine1 = 0;
7141
- a.$address2 = 0;
7142
- a.$binaryStatement0 = 0;
7143
- a.$source3 = null;
7144
- a.$assemblyStatement = null;
7145
- a.$machineStatement0 = null;
7146
- }
7147
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7148
- let var$2, var$3, var$4, var$5, var$6;
7149
- $this.$sourceLine1 = $programStatement.$sourceLine0;
7150
- $this.$address2 = $programStatement.$textAddress0;
7151
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
7152
- $this.$source3 = $programStatement.$source;
7153
- var$2 = $programStatement.$basicStatementList;
7154
- var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7155
- var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7156
- var$5 = new jl_StringBuffer();
7157
- jl_AbstractStringBuilder__init_(var$5);
7158
- var$6 = ju_AbstractList_iterator(var$2.$list);
7159
- while (ju_AbstractList$1_hasNext(var$6)) {
7160
- a: {
7161
- var$2 = ju_AbstractList$1_next(var$6);
7162
- switch (var$2.$type3) {
7163
- case 0:
7164
- break;
7165
- case 1:
7166
- if (var$3 == 10) {
7167
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7168
- break a;
7169
- }
7170
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7171
- break a;
7172
- case 2:
7173
- if (var$4 == 10) {
7174
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7175
- break a;
7176
- }
7177
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7178
- break a;
7179
- case 3:
7180
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7181
- break a;
7182
- default:
7183
- break a;
7184
- }
7185
- jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7186
- }
7187
- }
7188
- $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7189
- $this.$machineStatement0 = $programStatement.$machineStatement;
7190
- };
7191
- var asr_JsProgramStatement__init_ = (var_0) => {
7192
- let var_1 = new asr_JsProgramStatement();
7193
- asr_JsProgramStatement__init_0(var_1, var_0);
7194
- return var_1;
7195
- };
7196
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7197
- return var$1.$sourceLine1;
7198
- };
7199
- var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7200
- return $rt_ustr(var$1.$assemblyStatement);
7201
- };
7202
- var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7203
- return $rt_ustr(var$1.$source3);
7204
- };
7205
- var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7206
- return var$1.$address2;
7207
- };
7208
- var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7209
- return var$1.$binaryStatement0;
7210
- };
7211
- var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7212
- return $rt_ustr(var$1.$machineStatement0);
7213
- };
7214
7004
  var ju_Arrays = $rt_classWithoutFields();
7215
- var ju_Arrays_copyOf1 = ($array, $length) => {
7216
- let $result, var$4, $sz, $i;
7217
- $array = $array.data;
7218
- $result = $rt_createCharArray($length);
7219
- var$4 = $result.data;
7220
- $sz = jl_Math_min($length, $array.length);
7005
+ var ju_Arrays_copyOf1 = (var$1, var$2) => {
7006
+ let var$3, var$4, var$5, $i;
7007
+ var$1 = var$1.data;
7008
+ var$3 = $rt_createCharArray(var$2);
7009
+ var$4 = var$3.data;
7010
+ var$5 = jl_Math_min(var$2, var$1.length);
7221
7011
  $i = 0;
7222
- while ($i < $sz) {
7223
- var$4[$i] = $array[$i];
7012
+ while ($i < var$5) {
7013
+ var$4[$i] = var$1[$i];
7224
7014
  $i = $i + 1 | 0;
7225
7015
  }
7226
- return $result;
7016
+ return var$3;
7227
7017
  };
7228
7018
  var ju_Arrays_copyOf0 = ($array, $length) => {
7229
7019
  let $result, var$4, $sz, $i;
@@ -7402,8 +7192,8 @@ var ju_Arrays_stream = ($array) => {
7402
7192
  var$3.$size2 = var$4 - 0 | 0;
7403
7193
  return var$3;
7404
7194
  };
7405
- var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7406
- var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7195
+ var asr_JsRiscV$getUndoStack$lambda$_22_0 = $rt_classWithoutFields();
7196
+ var asr_JsRiscV$getUndoStack$lambda$_22_0_apply = (var$0, var$1) => {
7407
7197
  let var$2, var$3;
7408
7198
  var$1 = var$1;
7409
7199
  var$2 = new asr_JsBackStep();
@@ -7414,8 +7204,8 @@ var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7414
7204
  var$2.$param20 = Long_lo(var$1.$param2);
7415
7205
  return var$2;
7416
7206
  };
7417
- var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7418
- var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7207
+ var asr_JsRiscV$getUndoStack$lambda$_22_1 = $rt_classWithoutFields();
7208
+ var asr_JsRiscV$getUndoStack$lambda$_22_1_apply = (var$0, var$1) => {
7419
7209
  asr_JsRiscV_$callClinit();
7420
7210
  return $rt_createArray(asr_JsBackStep, var$1);
7421
7211
  };
@@ -7439,6 +7229,274 @@ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7439
7229
  var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7440
7230
  return var$1.$param10;
7441
7231
  };
7232
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7233
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7234
+ let var$2, var$3, var$4, var$5;
7235
+ var$1 = var$1;
7236
+ asr_JsRiscV_$callClinit();
7237
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7238
+ var$3 = var$2.data;
7239
+ var$4 = 0;
7240
+ while (var$4 < asra_TokenList_size(var$1)) {
7241
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7242
+ var$4 = var$4 + 1 | 0;
7243
+ }
7244
+ var$5 = new asr_JsRiscVTokenizedLine();
7245
+ var$5.$line0 = var$1.$processedLine;
7246
+ var$5.$tokens0 = var$2;
7247
+ return var$5;
7248
+ };
7249
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7250
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7251
+ asr_JsRiscV_$callClinit();
7252
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7253
+ };
7254
+ function asr_JsRiscVTokenizedLine() {
7255
+ let a = this;
7256
+ jl_Object.call(a);
7257
+ a.$line0 = null;
7258
+ a.$tokens0 = null;
7259
+ }
7260
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7261
+ return $rt_ustr(var$1.$line0);
7262
+ };
7263
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7264
+ return otji_JS_wrap(var$1.$tokens0);
7265
+ };
7266
+ var asrrh_RegisterFile = $rt_classWithoutFields();
7267
+ var asrrh_RegisterFile_instance = null;
7268
+ var asrrh_RegisterFile_programCounter = null;
7269
+ var asrrh_RegisterFile_$callClinit = () => {
7270
+ asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7271
+ asrrh_RegisterFile__clinit_();
7272
+ };
7273
+ var asrrh_RegisterFile_updateRegister = ($num, $val) => {
7274
+ let var$3;
7275
+ asrrh_RegisterFile_$callClinit();
7276
+ if ($num) {
7277
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7278
+ asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7279
+ else {
7280
+ var$3 = asr_Globals_program.$backStepper;
7281
+ $val = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7282
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
7283
+ }
7284
+ }
7285
+ };
7286
+ var asrrh_RegisterFile_updateRegister0 = ($name, $val) => {
7287
+ asrrh_RegisterFile_$callClinit();
7288
+ asrrh_RegisterFile_updateRegister(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name).$number, $val);
7289
+ };
7290
+ var asrrh_RegisterFile_getValue0 = ($num) => {
7291
+ asrrh_RegisterFile_$callClinit();
7292
+ return Long_lo(asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num));
7293
+ };
7294
+ var asrrh_RegisterFile_getValueLong = ($num) => {
7295
+ asrrh_RegisterFile_$callClinit();
7296
+ return asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num);
7297
+ };
7298
+ var asrrh_RegisterFile_getValue = ($name) => {
7299
+ asrrh_RegisterFile_$callClinit();
7300
+ return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_RegisterFile_instance, $name));
7301
+ };
7302
+ var asrrh_RegisterFile_getRegister = ($name) => {
7303
+ asrrh_RegisterFile_$callClinit();
7304
+ if (!jl_String_equals($name, $rt_s(211)))
7305
+ return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name);
7306
+ return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(212));
7307
+ };
7308
+ var asrrh_RegisterFile_initializeProgramCounter = ($value) => {
7309
+ asrrh_RegisterFile_$callClinit();
7310
+ asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7311
+ };
7312
+ var asrrh_RegisterFile_initializeProgramCounter0 = ($startAtMain) => {
7313
+ let $mainAddr;
7314
+ asrrh_RegisterFile_$callClinit();
7315
+ asr_Globals_$callClinit();
7316
+ $mainAddr = asra_SymbolTable_getAddress(asr_Globals_symbolTable, asra_SymbolTable_startLabel);
7317
+ if ($startAtMain && $mainAddr != -1 && asrrh_Memory_inTextSegment($mainAddr))
7318
+ asrrh_RegisterFile_initializeProgramCounter($mainAddr);
7319
+ else
7320
+ asrrh_RegisterFile_initializeProgramCounter(Long_lo(asrrh_RegisterFile_programCounter.$resetValue0));
7321
+ };
7322
+ var asrrh_RegisterFile_getStackPointerRegister = () => {
7323
+ asrrh_RegisterFile_$callClinit();
7324
+ return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(133));
7325
+ };
7326
+ var asrrh_RegisterFile_setProgramCounter = ($value) => {
7327
+ let $old, var$3;
7328
+ asrrh_RegisterFile_$callClinit();
7329
+ $old = Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7330
+ asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7331
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
7332
+ var$3 = asr_Globals_program.$backStepper;
7333
+ $value = $old + -4 | 0;
7334
+ asrs_BackStepper$BackstepStack_push0(var$3.$backSteps, asrs_BackStepper$Action_PC_RESTORE, $value, $value);
7335
+ }
7336
+ return $old;
7337
+ };
7338
+ var asrrh_RegisterFile_getProgramCounter = () => {
7339
+ asrrh_RegisterFile_$callClinit();
7340
+ return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7341
+ };
7342
+ var asrrh_RegisterFile_resetRegisters = () => {
7343
+ asrrh_RegisterFile_$callClinit();
7344
+ asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
7345
+ asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_START_AT_MAIN));
7346
+ };
7347
+ var asrrh_RegisterFile_incrementPC = () => {
7348
+ let var$1;
7349
+ asrrh_RegisterFile_$callClinit();
7350
+ var$1 = asrrh_RegisterFile_programCounter;
7351
+ asrrh_Register_setValue(var$1, Long_add(asrrh_Register_getValue(var$1), Long_fromInt(4)));
7352
+ };
7353
+ var asrrh_RegisterFile__clinit_ = () => {
7354
+ let var$1, var$2, var$3, var$4;
7355
+ var$1 = new asrrh_RegisterBlock();
7356
+ var$2 = $rt_createArray(asrrh_Register, 32);
7357
+ var$3 = var$2.data;
7358
+ var$3[0] = asrrh_Register__init_($rt_s(213), 0, Long_ZERO);
7359
+ var$3[1] = asrrh_Register__init_($rt_s(214), 1, Long_ZERO);
7360
+ var$4 = new asrrh_Register();
7361
+ asrrh_Memory_$callClinit();
7362
+ asrrh_Register__init_0(var$4, $rt_s(133), 2, Long_fromInt(asrrh_Memory_stackPointer));
7363
+ var$3[2] = var$4;
7364
+ var$3[3] = asrrh_Register__init_($rt_s(132), 3, Long_fromInt(asrrh_Memory_globalPointer));
7365
+ var$3[4] = asrrh_Register__init_($rt_s(215), 4, Long_ZERO);
7366
+ var$3[5] = asrrh_Register__init_($rt_s(216), 5, Long_ZERO);
7367
+ var$3[6] = asrrh_Register__init_($rt_s(217), 6, Long_ZERO);
7368
+ var$3[7] = asrrh_Register__init_($rt_s(218), 7, Long_ZERO);
7369
+ var$3[8] = asrrh_Register__init_($rt_s(212), 8, Long_ZERO);
7370
+ var$3[9] = asrrh_Register__init_($rt_s(219), 9, Long_ZERO);
7371
+ var$3[10] = asrrh_Register__init_($rt_s(220), 10, Long_ZERO);
7372
+ var$3[11] = asrrh_Register__init_($rt_s(221), 11, Long_ZERO);
7373
+ var$3[12] = asrrh_Register__init_($rt_s(222), 12, Long_ZERO);
7374
+ var$3[13] = asrrh_Register__init_($rt_s(223), 13, Long_ZERO);
7375
+ var$3[14] = asrrh_Register__init_($rt_s(224), 14, Long_ZERO);
7376
+ var$3[15] = asrrh_Register__init_($rt_s(225), 15, Long_ZERO);
7377
+ var$3[16] = asrrh_Register__init_($rt_s(226), 16, Long_ZERO);
7378
+ var$3[17] = asrrh_Register__init_($rt_s(227), 17, Long_ZERO);
7379
+ var$3[18] = asrrh_Register__init_($rt_s(228), 18, Long_ZERO);
7380
+ var$3[19] = asrrh_Register__init_($rt_s(229), 19, Long_ZERO);
7381
+ var$3[20] = asrrh_Register__init_($rt_s(230), 20, Long_ZERO);
7382
+ var$3[21] = asrrh_Register__init_($rt_s(231), 21, Long_ZERO);
7383
+ var$3[22] = asrrh_Register__init_($rt_s(232), 22, Long_ZERO);
7384
+ var$3[23] = asrrh_Register__init_($rt_s(233), 23, Long_ZERO);
7385
+ var$3[24] = asrrh_Register__init_($rt_s(234), 24, Long_ZERO);
7386
+ var$3[25] = asrrh_Register__init_($rt_s(235), 25, Long_ZERO);
7387
+ var$3[26] = asrrh_Register__init_($rt_s(236), 26, Long_ZERO);
7388
+ var$3[27] = asrrh_Register__init_($rt_s(237), 27, Long_ZERO);
7389
+ var$3[28] = asrrh_Register__init_($rt_s(238), 28, Long_ZERO);
7390
+ var$3[29] = asrrh_Register__init_($rt_s(239), 29, Long_ZERO);
7391
+ var$3[30] = asrrh_Register__init_($rt_s(240), 30, Long_ZERO);
7392
+ var$3[31] = asrrh_Register__init_($rt_s(241), 31, Long_ZERO);
7393
+ asrrh_RegisterBlock__init_(var$1, 120, var$2);
7394
+ asrrh_RegisterFile_instance = var$1;
7395
+ asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7396
+ };
7397
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
7398
+ var asr_JsRiscV$getRegistersValues$lambda$_21_0 = $rt_classWithoutFields();
7399
+ function asr_JsProgramStatement() {
7400
+ let a = this;
7401
+ jl_Object.call(a);
7402
+ a.$sourceLine1 = 0;
7403
+ a.$address2 = 0;
7404
+ a.$binaryStatement0 = 0;
7405
+ a.$source3 = null;
7406
+ a.$assemblyStatement = null;
7407
+ a.$machineStatement0 = null;
7408
+ }
7409
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7410
+ let var$2, var$3, var$4, var$5, var$6;
7411
+ $this.$sourceLine1 = $programStatement.$sourceLine0;
7412
+ $this.$address2 = $programStatement.$textAddress0;
7413
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
7414
+ $this.$source3 = $programStatement.$source;
7415
+ var$2 = $programStatement.$basicStatementList;
7416
+ var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7417
+ var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7418
+ var$5 = new jl_StringBuffer();
7419
+ jl_AbstractStringBuilder__init_(var$5);
7420
+ var$6 = ju_AbstractList_iterator(var$2.$list);
7421
+ while (ju_AbstractList$1_hasNext(var$6)) {
7422
+ a: {
7423
+ var$2 = ju_AbstractList$1_next(var$6);
7424
+ switch (var$2.$type3) {
7425
+ case 0:
7426
+ break;
7427
+ case 1:
7428
+ if (var$3 == 10) {
7429
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7430
+ break a;
7431
+ }
7432
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7433
+ break a;
7434
+ case 2:
7435
+ if (var$4 == 10) {
7436
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7437
+ break a;
7438
+ }
7439
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7440
+ break a;
7441
+ case 3:
7442
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7443
+ break a;
7444
+ default:
7445
+ break a;
7446
+ }
7447
+ jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7448
+ }
7449
+ }
7450
+ $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7451
+ $this.$machineStatement0 = $programStatement.$machineStatement;
7452
+ };
7453
+ var asr_JsProgramStatement__init_ = (var_0) => {
7454
+ let var_1 = new asr_JsProgramStatement();
7455
+ asr_JsProgramStatement__init_0(var_1, var_0);
7456
+ return var_1;
7457
+ };
7458
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7459
+ return var$1.$sourceLine1;
7460
+ };
7461
+ var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7462
+ return $rt_ustr(var$1.$assemblyStatement);
7463
+ };
7464
+ var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7465
+ return $rt_ustr(var$1.$source3);
7466
+ };
7467
+ var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7468
+ return var$1.$address2;
7469
+ };
7470
+ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7471
+ return var$1.$binaryStatement0;
7472
+ };
7473
+ var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7474
+ return $rt_ustr(var$1.$machineStatement0);
7475
+ };
7476
+ function asr_JsStackFrame() {
7477
+ let a = this;
7478
+ jl_Object.call(a);
7479
+ a.$pc3 = 0;
7480
+ a.$toAddress0 = 0;
7481
+ a.$sp = 0;
7482
+ a.$fp = 0;
7483
+ a.$registers = null;
7484
+ }
7485
+ var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7486
+ return var$1.$pc3;
7487
+ };
7488
+ var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7489
+ return var$1.$toAddress0;
7490
+ };
7491
+ var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7492
+ return otji_JS_wrap0(var$1.$registers);
7493
+ };
7494
+ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7495
+ return var$1.$sp;
7496
+ };
7497
+ var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7498
+ return var$1.$fp;
7499
+ };
7442
7500
  function asr_JsCompilationResult() {
7443
7501
  let a = this;
7444
7502
  jl_Object.call(a);
@@ -7496,66 +7554,6 @@ var asr_AssemblyException__init_ = (var_0) => {
7496
7554
  asr_AssemblyException__init_0(var_1, var_0);
7497
7555
  return var_1;
7498
7556
  };
7499
- var juf_ToIntFunction = $rt_classWithoutFields(0);
7500
- var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7501
- function asr_JsStackFrame() {
7502
- let a = this;
7503
- jl_Object.call(a);
7504
- a.$pc3 = 0;
7505
- a.$toAddress0 = 0;
7506
- a.$sp = 0;
7507
- a.$fp = 0;
7508
- a.$registers = null;
7509
- }
7510
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7511
- return var$1.$pc3;
7512
- };
7513
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7514
- return var$1.$toAddress0;
7515
- };
7516
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7517
- return otji_JS_wrap0(var$1.$registers);
7518
- };
7519
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7520
- return var$1.$sp;
7521
- };
7522
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7523
- return var$1.$fp;
7524
- };
7525
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7526
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7527
- let var$2, var$3, var$4, var$5;
7528
- var$1 = var$1;
7529
- asr_JsRiscV_$callClinit();
7530
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7531
- var$3 = var$2.data;
7532
- var$4 = 0;
7533
- while (var$4 < asra_TokenList_size(var$1)) {
7534
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7535
- var$4 = var$4 + 1 | 0;
7536
- }
7537
- var$5 = new asr_JsRiscVTokenizedLine();
7538
- var$5.$line0 = var$1.$processedLine;
7539
- var$5.$tokens0 = var$2;
7540
- return var$5;
7541
- };
7542
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7543
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7544
- asr_JsRiscV_$callClinit();
7545
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7546
- };
7547
- function asr_JsRiscVTokenizedLine() {
7548
- let a = this;
7549
- jl_Object.call(a);
7550
- a.$line0 = null;
7551
- a.$tokens0 = null;
7552
- }
7553
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7554
- return $rt_ustr(var$1.$line0);
7555
- };
7556
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7557
- return otji_JS_wrap(var$1.$tokens0);
7558
- };
7559
7557
  var ju_Map$Entry = $rt_classWithoutFields(0);
7560
7558
  function ju_MapEntry() {
7561
7559
  let a = this;
@@ -7776,7 +7774,6 @@ var asrr_BasicInstruction__init_ = ($this, $example, $description, $instrFormat,
7776
7774
  };
7777
7775
  var asrr_BasicInstruction__init_0 = ($this, $example, $description, $instrFormat, $operMask, $onlyinrv64) => {
7778
7776
  asrr_BasicInstruction__init_($this, $example, $description, $instrFormat, $operMask);
7779
- asrr_InstructionSet_$callClinit();
7780
7777
  if (!asrr_InstructionSet_rv64 && $onlyinrv64) {
7781
7778
  $description = new jl_NullPointerException();
7782
7779
  $instrFormat = new jl_StringBuilder();
@@ -8100,100 +8097,6 @@ var asr_RISCVFile_getName = ($this) => {
8100
8097
  return $this.$name2;
8101
8098
  };
8102
8099
  var jl_StringIndexOutOfBoundsException = $rt_classWithoutFields(jl_IndexOutOfBoundsException);
8103
- function asrrh_Register() {
8104
- let a = this;
8105
- ju_Observable.call(a);
8106
- a.$name1 = null;
8107
- a.$number = 0;
8108
- a.$resetValue0 = Long_ZERO;
8109
- a.$value2 = Long_ZERO;
8110
- }
8111
- var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8112
- ju_Observable__init_($this);
8113
- $this.$name1 = $n;
8114
- $this.$number = $num;
8115
- $this.$value2 = $val;
8116
- $this.$resetValue0 = $val;
8117
- };
8118
- var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8119
- let var_3 = new asrrh_Register();
8120
- asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8121
- return var_3;
8122
- };
8123
- var asrrh_Register_getName = ($this) => {
8124
- return $this.$name1;
8125
- };
8126
- var asrrh_Register_getValue = ($this) => {
8127
- jl_Object_monitorEnterSync($this);
8128
- try {
8129
- asrrh_Register_notifyAnyObservers($this, 0);
8130
- return $this.$value2;
8131
- } finally {
8132
- jl_Object_monitorExitSync($this);
8133
- }
8134
- };
8135
- var asrrh_Register_getValueNoNotify = ($this) => {
8136
- jl_Object_monitorEnterSync($this);
8137
- try {
8138
- return $this.$value2;
8139
- } finally {
8140
- jl_Object_monitorExitSync($this);
8141
- }
8142
- };
8143
- var asrrh_Register_getNumber = ($this) => {
8144
- return $this.$number;
8145
- };
8146
- var asrrh_Register_setValue = ($this, $val) => {
8147
- let $old;
8148
- jl_Object_monitorEnterSync($this);
8149
- try {
8150
- $old = $this.$value2;
8151
- $this.$value2 = $val;
8152
- asrrh_Register_notifyAnyObservers($this, 1);
8153
- return $old;
8154
- } finally {
8155
- jl_Object_monitorExitSync($this);
8156
- }
8157
- };
8158
- var asrrh_Register_setValueBackdoor = ($this, $val) => {
8159
- let $old;
8160
- jl_Object_monitorEnterSync($this);
8161
- try {
8162
- $old = $this.$value2;
8163
- $this.$value2 = $val;
8164
- return $old;
8165
- } finally {
8166
- jl_Object_monitorExitSync($this);
8167
- }
8168
- };
8169
- var asrrh_Register_resetValue = ($this) => {
8170
- jl_Object_monitorEnterSync($this);
8171
- try {
8172
- $this.$value2 = $this.$resetValue0;
8173
- } finally {
8174
- jl_Object_monitorExitSync($this);
8175
- }
8176
- };
8177
- var asrrh_Register_changeResetValue = ($this, $reset) => {
8178
- jl_Object_monitorEnterSync($this);
8179
- try {
8180
- $this.$resetValue0 = $reset;
8181
- } finally {
8182
- jl_Object_monitorExitSync($this);
8183
- }
8184
- };
8185
- var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8186
- let var$2, var$3, var$4;
8187
- var$2 = $this;
8188
- if (ju_Observable_countObservers(var$2) > 0) {
8189
- ju_Observable_setChanged(var$2);
8190
- var$3 = new asrrh_RegisterAccessNotice();
8191
- var$4 = $this.$name1;
8192
- asrrh_AccessNotice__init_(var$3, $type);
8193
- var$3.$registerName = var$4;
8194
- ju_Observable_notifyObservers(var$2, var$3);
8195
- }
8196
- };
8197
8100
  function asrs_BackStepper() {
8198
8101
  let a = this;
8199
8102
  jl_Object.call(a);
@@ -8411,6 +8314,100 @@ var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8411
8314
  var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8412
8315
  return $this.$size2;
8413
8316
  };
8317
+ function asrrh_Register() {
8318
+ let a = this;
8319
+ ju_Observable.call(a);
8320
+ a.$name1 = null;
8321
+ a.$number = 0;
8322
+ a.$resetValue0 = Long_ZERO;
8323
+ a.$value2 = Long_ZERO;
8324
+ }
8325
+ var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8326
+ ju_Observable__init_($this);
8327
+ $this.$name1 = $n;
8328
+ $this.$number = $num;
8329
+ $this.$value2 = $val;
8330
+ $this.$resetValue0 = $val;
8331
+ };
8332
+ var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8333
+ let var_3 = new asrrh_Register();
8334
+ asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8335
+ return var_3;
8336
+ };
8337
+ var asrrh_Register_getName = ($this) => {
8338
+ return $this.$name1;
8339
+ };
8340
+ var asrrh_Register_getValue = ($this) => {
8341
+ jl_Object_monitorEnterSync($this);
8342
+ try {
8343
+ asrrh_Register_notifyAnyObservers($this, 0);
8344
+ return $this.$value2;
8345
+ } finally {
8346
+ jl_Object_monitorExitSync($this);
8347
+ }
8348
+ };
8349
+ var asrrh_Register_getValueNoNotify = ($this) => {
8350
+ jl_Object_monitorEnterSync($this);
8351
+ try {
8352
+ return $this.$value2;
8353
+ } finally {
8354
+ jl_Object_monitorExitSync($this);
8355
+ }
8356
+ };
8357
+ var asrrh_Register_getNumber = ($this) => {
8358
+ return $this.$number;
8359
+ };
8360
+ var asrrh_Register_setValue = ($this, $val) => {
8361
+ let $old;
8362
+ jl_Object_monitorEnterSync($this);
8363
+ try {
8364
+ $old = $this.$value2;
8365
+ $this.$value2 = $val;
8366
+ asrrh_Register_notifyAnyObservers($this, 1);
8367
+ return $old;
8368
+ } finally {
8369
+ jl_Object_monitorExitSync($this);
8370
+ }
8371
+ };
8372
+ var asrrh_Register_setValueBackdoor = ($this, $val) => {
8373
+ let $old;
8374
+ jl_Object_monitorEnterSync($this);
8375
+ try {
8376
+ $old = $this.$value2;
8377
+ $this.$value2 = $val;
8378
+ return $old;
8379
+ } finally {
8380
+ jl_Object_monitorExitSync($this);
8381
+ }
8382
+ };
8383
+ var asrrh_Register_resetValue = ($this) => {
8384
+ jl_Object_monitorEnterSync($this);
8385
+ try {
8386
+ $this.$value2 = $this.$resetValue0;
8387
+ } finally {
8388
+ jl_Object_monitorExitSync($this);
8389
+ }
8390
+ };
8391
+ var asrrh_Register_changeResetValue = ($this, $reset) => {
8392
+ jl_Object_monitorEnterSync($this);
8393
+ try {
8394
+ $this.$resetValue0 = $reset;
8395
+ } finally {
8396
+ jl_Object_monitorExitSync($this);
8397
+ }
8398
+ };
8399
+ var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8400
+ let var$2, var$3, var$4;
8401
+ var$2 = $this;
8402
+ if (ju_Observable_countObservers(var$2) > 0) {
8403
+ ju_Observable_setChanged(var$2);
8404
+ var$3 = new asrrh_RegisterAccessNotice();
8405
+ var$4 = $this.$name1;
8406
+ asrrh_AccessNotice__init_(var$3, $type);
8407
+ var$3.$registerName = var$4;
8408
+ ju_Observable_notifyObservers(var$2, var$3);
8409
+ }
8410
+ };
8414
8411
  function asr_JsCompilationResult$_init_$lambda$_0_0() {
8415
8412
  jl_Object.call(this);
8416
8413
  this.$_06 = null;
@@ -8466,7 +8463,6 @@ var asrri_Arithmetic__init_ = ($this, $usage, $description, $funct7, $funct3) =>
8466
8463
  var asrri_Arithmetic_simulate = ($this, $statement) => {
8467
8464
  let $operands;
8468
8465
  $operands = $statement.$operands;
8469
- asrr_InstructionSet_$callClinit();
8470
8466
  if (asrr_InstructionSet_rv64) {
8471
8467
  $operands = $operands.data;
8472
8468
  asrrh_RegisterFile_updateRegister($operands[0], $this.$compute(asrrh_RegisterFile_getValueLong($operands[1]), asrrh_RegisterFile_getValueLong($operands[2])));
@@ -8502,7 +8498,6 @@ var asrri_ImmediateInstruction__init_ = ($this, $usage, $description, $funct) =>
8502
8498
  var asrri_ImmediateInstruction_simulate = ($this, $statement) => {
8503
8499
  let $operands;
8504
8500
  $operands = $statement.$operands;
8505
- asrr_InstructionSet_$callClinit();
8506
8501
  if (!asrr_InstructionSet_rv64) {
8507
8502
  $operands = $operands.data;
8508
8503
  asrrh_RegisterFile_updateRegister($operands[0], Long_fromInt(asrri_ImmediateInstruction_computeW($this, asrrh_RegisterFile_getValue0($operands[1]), $operands[2] << 20 >> 20)));
@@ -8577,7 +8572,6 @@ var asrri_Branch_simulate = ($this, $statement) => {
8577
8572
  let var$2;
8578
8573
  if ($this.$willBranch($statement)) {
8579
8574
  var$2 = $statement.$operands.data[2];
8580
- asrr_InstructionSet_$callClinit();
8581
8575
  asrrh_RegisterFile_setProgramCounter((asrrh_RegisterFile_getProgramCounter() + var$2 | 0) - 4 | 0);
8582
8576
  }
8583
8577
  };
@@ -8974,7 +8968,6 @@ var asrri_ECALL__init_ = () => {
8974
8968
  var asrri_ECALL_simulate = ($this, $statement) => {
8975
8969
  let var$2, var$3, var$4, var$5;
8976
8970
  var$2 = asrrh_RegisterFile_getValue($rt_s(227));
8977
- asrr_InstructionSet_$callClinit();
8978
8971
  var$3 = asrr_SyscallLoader_findSyscall(var$2);
8979
8972
  if (var$3 === null) {
8980
8973
  var$3 = new asr_SimulationException();
@@ -10121,7 +10114,7 @@ var asrri_JAL_simulate = ($this, $statement) => {
10121
10114
  var$4.$registers0 = $operands;
10122
10115
  ju_ArrayList_add(asrrh_Stack_callStack, var$4);
10123
10116
  }
10124
- asrr_InstructionSet_processJump($address);
10117
+ asrrh_RegisterFile_setProgramCounter($address);
10125
10118
  };
10126
10119
  var asrri_JALR = $rt_classWithoutFields(asrr_BasicInstruction);
10127
10120
  var asrri_JALR__init_ = ($this) => {
@@ -10141,7 +10134,7 @@ var asrri_JALR_simulate = ($this, $statement) => {
10141
10134
  $statement = asrrh_Stack_callStack;
10142
10135
  ju_ArrayList_remove($statement, $statement.$size0 - 1 | 0);
10143
10136
  }
10144
- asrr_InstructionSet_processJump(($target + ($operands[2] << 20 >> 20) | 0) & -2);
10137
+ asrrh_RegisterFile_setProgramCounter(($target + ($operands[2] << 20 >> 20) | 0) & -2);
10145
10138
  };
10146
10139
  var asrri_Load = $rt_classWithoutFields(asrr_BasicInstruction);
10147
10140
  var asrri_Load__init_ = ($this, $usage, $description, $funct) => {
@@ -11767,6 +11760,15 @@ var asrrh_RegisterBlock_resetRegisters = ($this) => {
11767
11760
  var$3 = var$3 + 1 | 0;
11768
11761
  }
11769
11762
  };
11763
+ function asrrh_StackFrame() {
11764
+ let a = this;
11765
+ jl_Object.call(a);
11766
+ a.$pc4 = 0;
11767
+ a.$toAddress = 0;
11768
+ a.$sp0 = 0;
11769
+ a.$fp0 = 0;
11770
+ a.$registers0 = null;
11771
+ }
11770
11772
  function asr_ErrorList() {
11771
11773
  let a = this;
11772
11774
  jl_Object.call(a);
@@ -11852,15 +11854,6 @@ var asr_ErrorList_generateReport = ($this, $isWarning) => {
11852
11854
  }
11853
11855
  return jl_AbstractStringBuilder_toString($report);
11854
11856
  };
11855
- function asrrh_StackFrame() {
11856
- let a = this;
11857
- jl_Object.call(a);
11858
- a.$pc4 = 0;
11859
- a.$toAddress = 0;
11860
- a.$sp0 = 0;
11861
- a.$fp0 = 0;
11862
- a.$registers0 = null;
11863
- }
11864
11857
  function asrrh_MemoryConfiguration() {
11865
11858
  let a = this;
11866
11859
  jl_Object.call(a);
@@ -31195,222 +31188,6 @@ var asrjt_Floating = $rt_classWithoutFields();
31195
31188
  var asrjt_Floating_isFinite = ($this) => {
31196
31189
  return !$this.$isZero() && !$this.$isNormal() && !$this.$isSubnormal() ? 0 : 1;
31197
31190
  };
31198
- function asrjt_Float64() {
31199
- asrjt_Floating.call(this);
31200
- this.$bits1 = Long_ZERO;
31201
- }
31202
- var asrjt_Float64_Zero = null;
31203
- var asrjt_Float64_NegativeZero = null;
31204
- var asrjt_Float64_NaN = null;
31205
- var asrjt_Float64_Infinity = null;
31206
- var asrjt_Float64_NegativeInfinity = null;
31207
- var asrjt_Float64_$assertionsDisabled = 0;
31208
- var asrjt_Float64__init_1 = ($this, $bits) => {
31209
- $this.$bits1 = $bits;
31210
- };
31211
- var asrjt_Float64__init_ = (var_0) => {
31212
- let var_1 = new asrjt_Float64();
31213
- asrjt_Float64__init_1(var_1, var_0);
31214
- return var_1;
31215
- };
31216
- var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31217
- asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31218
- };
31219
- var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31220
- let var_3 = new asrjt_Float64();
31221
- asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31222
- return var_3;
31223
- };
31224
- var asrjt_Float64_exponent = ($this) => {
31225
- return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31226
- };
31227
- var asrjt_Float64_negate = ($this) => {
31228
- return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31229
- };
31230
- var asrjt_Float64_isSignMinus = ($this) => {
31231
- return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31232
- };
31233
- var asrjt_Float64_isInfinite = ($this) => {
31234
- return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31235
- };
31236
- var asrjt_Float64_isNormal = ($this) => {
31237
- return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31238
- };
31239
- var asrjt_Float64_isSubnormal = ($this) => {
31240
- return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31241
- };
31242
- var asrjt_Float64_isNaN = ($this) => {
31243
- return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31244
- };
31245
- var asrjt_Float64_isSignalling = ($this) => {
31246
- if (!asrjt_Float64_isNaN($this))
31247
- return 0;
31248
- return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31249
- };
31250
- var asrjt_Float64_isZero = ($this) => {
31251
- let var$1;
31252
- var$1 = $this.$bits1;
31253
- return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31254
- };
31255
- var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31256
- let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31257
- if (asrji_ExactFloat_isZero($ef))
31258
- return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31259
- $ef = asrji_ExactFloat_normalize($ef);
31260
- $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31261
- if ($normalizedExponent > -1022) {
31262
- if ($normalizedExponent > 1024) {
31263
- $mainBits = $env.$flags;
31264
- $roundedBits = asrj_Flags_overflow;
31265
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31266
- $mainBits = $env.$flags;
31267
- $roundedBits = asrj_Flags_inexact;
31268
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31269
- asrjt_Float64$1_$callClinit();
31270
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31271
- case 1:
31272
- break;
31273
- case 2:
31274
- case 3:
31275
- $normalizedExponent = $ef.$sign;
31276
- if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31277
- return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31278
- return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31279
- case 4:
31280
- case 5:
31281
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31282
- default:
31283
- if (!asrjt_Float64_$assertionsDisabled)
31284
- $rt_throw(jl_AssertionError__init_($rt_s(1617)));
31285
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31286
- }
31287
- return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31288
- }
31289
- if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31290
- if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31291
- $rt_throw(jl_AssertionError__init_($rt_s(1618)));
31292
- $a = new asrjt_Float64();
31293
- $normalizedExponent = $ef.$sign;
31294
- $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31295
- $ef = $ef.$significand;
31296
- asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
31297
- return $a;
31298
- }
31299
- $mainBits = $env.$flags;
31300
- $roundedBits = asrj_Flags_inexact;
31301
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31302
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31303
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31304
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31305
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31306
- $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
31307
- $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31308
- } else {
31309
- if ($ef.$exponent0 > -1075) {
31310
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31311
- $rt_throw(jl_AssertionError__init_($rt_s(1619)));
31312
- return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31313
- }
31314
- $mainBits = $env.$flags;
31315
- $roundedBits = asrj_Flags_inexact;
31316
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31317
- $mainBits = $env.$flags;
31318
- $roundedBits = asrj_Flags_underflow;
31319
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31320
- $bitsToRound = -1074 - $ef.$exponent0 | 0;
31321
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31322
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31323
- $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31324
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31325
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31326
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31327
- else {
31328
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31329
- $rt_throw(jl_AssertionError__init_1());
31330
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31331
- }
31332
- }
31333
- asrjt_Float64$1_$callClinit();
31334
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31335
- case 1:
31336
- break;
31337
- case 2:
31338
- case 3:
31339
- if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31340
- return $towardsZero;
31341
- return $awayZero;
31342
- default:
31343
- $ef = jm_BigInteger_ONE;
31344
- $normalizedExponent = $bitsToRound - 1 | 0;
31345
- if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
31346
- if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
31347
- return $towardsZero;
31348
- return $awayZero;
31349
- }
31350
- if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
31351
- return $towardsZero;
31352
- return $awayZero;
31353
- }
31354
- return $towardsZero;
31355
- };
31356
- var asrjt_Float64_toExactFloat = ($this) => {
31357
- let $sign, $exponent, $significand;
31358
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
31359
- $rt_throw(jl_AssertionError__init_($rt_s(1620)));
31360
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
31361
- $rt_throw(jl_AssertionError__init_($rt_s(1621)));
31362
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
31363
- $rt_throw(jl_AssertionError__init_($rt_s(1622)));
31364
- $sign = asrjt_Float64_isSignMinus($this);
31365
- if (asrjt_Float64_isZero($this)) {
31366
- $exponent = 0;
31367
- $significand = jm_BigInteger_ZERO;
31368
- } else if (asrjt_Float64_isNormal($this)) {
31369
- $exponent = asrjt_Float64_exponent($this) - 52 | 0;
31370
- $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
31371
- } else {
31372
- if (!asrjt_Float64_isSubnormal($this)) {
31373
- if (asrjt_Float64_$assertionsDisabled)
31374
- return null;
31375
- $rt_throw(jl_AssertionError__init_($rt_s(1623)));
31376
- }
31377
- $exponent = asrjt_Float64_exponent($this) - 51 | 0;
31378
- $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
31379
- }
31380
- return asrji_ExactFloat__init_($sign, $exponent, $significand);
31381
- };
31382
- var asrjt_Float64_maxPrecision = ($this) => {
31383
- return 60;
31384
- };
31385
- var asrjt_Float64_negate0 = ($this) => {
31386
- return asrjt_Float64_negate($this);
31387
- };
31388
- var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
31389
- return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
31390
- };
31391
- var asrjt_Float64_NegativeInfinity0 = ($this) => {
31392
- return asrjt_Float64_NegativeInfinity;
31393
- };
31394
- var asrjt_Float64_Infinity0 = ($this) => {
31395
- return asrjt_Float64_Infinity;
31396
- };
31397
- var asrjt_Float64_NegativeZero0 = ($this) => {
31398
- return asrjt_Float64_NegativeZero;
31399
- };
31400
- var asrjt_Float64_Zero0 = ($this) => {
31401
- return asrjt_Float64_Zero;
31402
- };
31403
- var asrjt_Float64_NaN0 = ($this) => {
31404
- return asrjt_Float64_NaN;
31405
- };
31406
- var asrjt_Float64__clinit_ = () => {
31407
- asrjt_Float64_$assertionsDisabled = 0;
31408
- asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
31409
- asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
31410
- asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
31411
- asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31412
- asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31413
- };
31414
31191
  function asrjt_Float32() {
31415
31192
  asrjt_Floating.call(this);
31416
31193
  this.$bits0 = 0;
@@ -31627,6 +31404,222 @@ var asrjt_Float32__clinit_ = () => {
31627
31404
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
31628
31405
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
31629
31406
  };
31407
+ function asrjt_Float64() {
31408
+ asrjt_Floating.call(this);
31409
+ this.$bits1 = Long_ZERO;
31410
+ }
31411
+ var asrjt_Float64_Zero = null;
31412
+ var asrjt_Float64_NegativeZero = null;
31413
+ var asrjt_Float64_NaN = null;
31414
+ var asrjt_Float64_Infinity = null;
31415
+ var asrjt_Float64_NegativeInfinity = null;
31416
+ var asrjt_Float64_$assertionsDisabled = 0;
31417
+ var asrjt_Float64__init_1 = ($this, $bits) => {
31418
+ $this.$bits1 = $bits;
31419
+ };
31420
+ var asrjt_Float64__init_ = (var_0) => {
31421
+ let var_1 = new asrjt_Float64();
31422
+ asrjt_Float64__init_1(var_1, var_0);
31423
+ return var_1;
31424
+ };
31425
+ var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31426
+ asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31427
+ };
31428
+ var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31429
+ let var_3 = new asrjt_Float64();
31430
+ asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31431
+ return var_3;
31432
+ };
31433
+ var asrjt_Float64_exponent = ($this) => {
31434
+ return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31435
+ };
31436
+ var asrjt_Float64_negate = ($this) => {
31437
+ return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31438
+ };
31439
+ var asrjt_Float64_isSignMinus = ($this) => {
31440
+ return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31441
+ };
31442
+ var asrjt_Float64_isInfinite = ($this) => {
31443
+ return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31444
+ };
31445
+ var asrjt_Float64_isNormal = ($this) => {
31446
+ return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31447
+ };
31448
+ var asrjt_Float64_isSubnormal = ($this) => {
31449
+ return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31450
+ };
31451
+ var asrjt_Float64_isNaN = ($this) => {
31452
+ return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31453
+ };
31454
+ var asrjt_Float64_isSignalling = ($this) => {
31455
+ if (!asrjt_Float64_isNaN($this))
31456
+ return 0;
31457
+ return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31458
+ };
31459
+ var asrjt_Float64_isZero = ($this) => {
31460
+ let var$1;
31461
+ var$1 = $this.$bits1;
31462
+ return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31463
+ };
31464
+ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31465
+ let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31466
+ if (asrji_ExactFloat_isZero($ef))
31467
+ return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31468
+ $ef = asrji_ExactFloat_normalize($ef);
31469
+ $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31470
+ if ($normalizedExponent > -1022) {
31471
+ if ($normalizedExponent > 1024) {
31472
+ $mainBits = $env.$flags;
31473
+ $roundedBits = asrj_Flags_overflow;
31474
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31475
+ $mainBits = $env.$flags;
31476
+ $roundedBits = asrj_Flags_inexact;
31477
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31478
+ asrjt_Float64$1_$callClinit();
31479
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31480
+ case 1:
31481
+ break;
31482
+ case 2:
31483
+ case 3:
31484
+ $normalizedExponent = $ef.$sign;
31485
+ if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31486
+ return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31487
+ return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31488
+ case 4:
31489
+ case 5:
31490
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31491
+ default:
31492
+ if (!asrjt_Float64_$assertionsDisabled)
31493
+ $rt_throw(jl_AssertionError__init_($rt_s(1617)));
31494
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31495
+ }
31496
+ return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31497
+ }
31498
+ if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31499
+ if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31500
+ $rt_throw(jl_AssertionError__init_($rt_s(1618)));
31501
+ $a = new asrjt_Float64();
31502
+ $normalizedExponent = $ef.$sign;
31503
+ $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31504
+ $ef = $ef.$significand;
31505
+ asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
31506
+ return $a;
31507
+ }
31508
+ $mainBits = $env.$flags;
31509
+ $roundedBits = asrj_Flags_inexact;
31510
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31511
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31512
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31513
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31514
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31515
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
31516
+ $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31517
+ } else {
31518
+ if ($ef.$exponent0 > -1075) {
31519
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31520
+ $rt_throw(jl_AssertionError__init_($rt_s(1619)));
31521
+ return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31522
+ }
31523
+ $mainBits = $env.$flags;
31524
+ $roundedBits = asrj_Flags_inexact;
31525
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31526
+ $mainBits = $env.$flags;
31527
+ $roundedBits = asrj_Flags_underflow;
31528
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31529
+ $bitsToRound = -1074 - $ef.$exponent0 | 0;
31530
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31531
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31532
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31533
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31534
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31535
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31536
+ else {
31537
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31538
+ $rt_throw(jl_AssertionError__init_1());
31539
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31540
+ }
31541
+ }
31542
+ asrjt_Float64$1_$callClinit();
31543
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31544
+ case 1:
31545
+ break;
31546
+ case 2:
31547
+ case 3:
31548
+ if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31549
+ return $towardsZero;
31550
+ return $awayZero;
31551
+ default:
31552
+ $ef = jm_BigInteger_ONE;
31553
+ $normalizedExponent = $bitsToRound - 1 | 0;
31554
+ if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
31555
+ if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
31556
+ return $towardsZero;
31557
+ return $awayZero;
31558
+ }
31559
+ if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
31560
+ return $towardsZero;
31561
+ return $awayZero;
31562
+ }
31563
+ return $towardsZero;
31564
+ };
31565
+ var asrjt_Float64_toExactFloat = ($this) => {
31566
+ let $sign, $exponent, $significand;
31567
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
31568
+ $rt_throw(jl_AssertionError__init_($rt_s(1620)));
31569
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
31570
+ $rt_throw(jl_AssertionError__init_($rt_s(1621)));
31571
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
31572
+ $rt_throw(jl_AssertionError__init_($rt_s(1622)));
31573
+ $sign = asrjt_Float64_isSignMinus($this);
31574
+ if (asrjt_Float64_isZero($this)) {
31575
+ $exponent = 0;
31576
+ $significand = jm_BigInteger_ZERO;
31577
+ } else if (asrjt_Float64_isNormal($this)) {
31578
+ $exponent = asrjt_Float64_exponent($this) - 52 | 0;
31579
+ $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
31580
+ } else {
31581
+ if (!asrjt_Float64_isSubnormal($this)) {
31582
+ if (asrjt_Float64_$assertionsDisabled)
31583
+ return null;
31584
+ $rt_throw(jl_AssertionError__init_($rt_s(1623)));
31585
+ }
31586
+ $exponent = asrjt_Float64_exponent($this) - 51 | 0;
31587
+ $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
31588
+ }
31589
+ return asrji_ExactFloat__init_($sign, $exponent, $significand);
31590
+ };
31591
+ var asrjt_Float64_maxPrecision = ($this) => {
31592
+ return 60;
31593
+ };
31594
+ var asrjt_Float64_negate0 = ($this) => {
31595
+ return asrjt_Float64_negate($this);
31596
+ };
31597
+ var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
31598
+ return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
31599
+ };
31600
+ var asrjt_Float64_NegativeInfinity0 = ($this) => {
31601
+ return asrjt_Float64_NegativeInfinity;
31602
+ };
31603
+ var asrjt_Float64_Infinity0 = ($this) => {
31604
+ return asrjt_Float64_Infinity;
31605
+ };
31606
+ var asrjt_Float64_NegativeZero0 = ($this) => {
31607
+ return asrjt_Float64_NegativeZero;
31608
+ };
31609
+ var asrjt_Float64_Zero0 = ($this) => {
31610
+ return asrjt_Float64_Zero;
31611
+ };
31612
+ var asrjt_Float64_NaN0 = ($this) => {
31613
+ return asrjt_Float64_NaN;
31614
+ };
31615
+ var asrjt_Float64__clinit_ = () => {
31616
+ asrjt_Float64_$assertionsDisabled = 0;
31617
+ asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
31618
+ asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
31619
+ asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
31620
+ asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31621
+ asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31622
+ };
31630
31623
  var asrjo_Conversions = $rt_classWithoutFields();
31631
31624
  var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
31632
31625
  let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
@@ -31735,6 +31728,241 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31735
31728
  var$4.$significand = $i;
31736
31729
  return $helper.$fromExactFloat(var$4, $env);
31737
31730
  };
31731
+ var asrjo_Arithmetic = $rt_classWithoutFields();
31732
+ var asrjo_Arithmetic_$assertionsDisabled = 0;
31733
+ var asrjo_Arithmetic_add = ($a, $b, $env) => {
31734
+ let $out;
31735
+ if ($a.$isNaN())
31736
+ return $a;
31737
+ if ($b.$isNaN())
31738
+ return $b;
31739
+ if ($a.$isInfinite()) {
31740
+ if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
31741
+ $b = $env.$flags;
31742
+ $env = asrj_Flags_invalid;
31743
+ ju_GenericEnumSet_add($b, $env);
31744
+ return $a.$NaN();
31745
+ }
31746
+ return $a;
31747
+ }
31748
+ if ($b.$isInfinite())
31749
+ return $b;
31750
+ if ($a.$isZero()) {
31751
+ if (!$b.$isZero())
31752
+ return $b;
31753
+ if ($a.$isSignMinus() == $b.$isSignMinus())
31754
+ return $a;
31755
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31756
+ }
31757
+ if ($b.$isZero())
31758
+ return $a;
31759
+ $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
31760
+ if (!asrji_ExactFloat_isZero($out))
31761
+ return $a.$fromExactFloat($out, $env);
31762
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31763
+ };
31764
+ var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
31765
+ if ($a.$isNaN())
31766
+ return $a;
31767
+ if ($b.$isNaN())
31768
+ return $b;
31769
+ return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
31770
+ };
31771
+ var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
31772
+ if ($a.$isNaN())
31773
+ return $a;
31774
+ if ($b.$isNaN())
31775
+ return $b;
31776
+ a: {
31777
+ if (!($a.$isZero() && $b.$isInfinite())) {
31778
+ if (!$b.$isZero())
31779
+ break a;
31780
+ if (!$a.$isInfinite())
31781
+ break a;
31782
+ }
31783
+ $b = $env.$flags;
31784
+ $env = asrj_Flags_invalid;
31785
+ ju_GenericEnumSet_add($b, $env);
31786
+ return $a.$NaN();
31787
+ }
31788
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31789
+ if (!$a.$isZero() && !$b.$isZero())
31790
+ return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
31791
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
31792
+ }
31793
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31794
+ };
31795
+ var asrjo_Arithmetic_squareRoot = ($a, $env) => {
31796
+ let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
31797
+ if ($a.$isNaN())
31798
+ return $a;
31799
+ if ($a.$isZero())
31800
+ return $a;
31801
+ if ($a.$isSignMinus()) {
31802
+ $env = $env.$flags;
31803
+ var$3 = asrj_Flags_invalid;
31804
+ ju_GenericEnumSet_add($env, var$3);
31805
+ return $a.$NaN();
31806
+ }
31807
+ if ($a.$isInfinite())
31808
+ return $a;
31809
+ var$3 = $a.$toExactFloat();
31810
+ var$4 = $a.$maxPrecision();
31811
+ if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
31812
+ $rt_throw(jl_AssertionError__init_($rt_s(1625)));
31813
+ var$5 = asrji_ExactFloat_normalize(var$3);
31814
+ var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
31815
+ a: {
31816
+ while (true) {
31817
+ var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31818
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31819
+ if (!var$8)
31820
+ break;
31821
+ if (var$8 > 0) {
31822
+ var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31823
+ var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
31824
+ var$6 = 0;
31825
+ while (true) {
31826
+ if (var$6 >= var$4) {
31827
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31828
+ var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31829
+ if (!var$4)
31830
+ break a;
31831
+ if (var$4 > 0) {
31832
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
31833
+ break a;
31834
+ }
31835
+ if (var$4 < 0) {
31836
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
31837
+ break a;
31838
+ }
31839
+ if (!asrji_ExactFloat_$assertionsDisabled)
31840
+ $rt_throw(jl_AssertionError__init_($rt_s(1626)));
31841
+ var$7 = null;
31842
+ break a;
31843
+ }
31844
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31845
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31846
+ if (!var$8)
31847
+ break;
31848
+ if (var$8 <= 0) {
31849
+ if (var$8 < 0) {
31850
+ var$10 = var$7;
31851
+ var$7 = var$9;
31852
+ } else {
31853
+ if (!asrji_ExactFloat_$assertionsDisabled)
31854
+ $rt_throw(jl_AssertionError__init_($rt_s(1626)));
31855
+ var$7 = var$9;
31856
+ }
31857
+ }
31858
+ var$6 = var$6 + 1 | 0;
31859
+ var$9 = var$7;
31860
+ }
31861
+ break a;
31862
+ }
31863
+ var$6 = var$6 + -1 | 0;
31864
+ }
31865
+ }
31866
+ return $a.$fromExactFloat(var$7, $env);
31867
+ };
31868
+ var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
31869
+ if ($a.$isNaN())
31870
+ return $a;
31871
+ if ($b.$isNaN())
31872
+ return $b;
31873
+ if ($c.$isNaN())
31874
+ return $c;
31875
+ a: {
31876
+ if (!($a.$isZero() && $b.$isInfinite())) {
31877
+ if (!$b.$isZero())
31878
+ break a;
31879
+ if (!$a.$isInfinite())
31880
+ break a;
31881
+ }
31882
+ $b = $env.$flags;
31883
+ $c = asrj_Flags_invalid;
31884
+ ju_GenericEnumSet_add($b, $c);
31885
+ return $a.$NaN();
31886
+ }
31887
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31888
+ if (!$a.$isZero() && !$b.$isZero())
31889
+ return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
31890
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
31891
+ }
31892
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
31893
+ };
31894
+ var asrjo_Arithmetic_division = ($a, $b, $env) => {
31895
+ let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
31896
+ if ($a.$isNaN())
31897
+ return $a;
31898
+ if ($b.$isNaN())
31899
+ return $b;
31900
+ a: {
31901
+ if (!($a.$isZero() && $b.$isZero())) {
31902
+ if (!$a.$isInfinite())
31903
+ break a;
31904
+ if (!$b.$isInfinite())
31905
+ break a;
31906
+ }
31907
+ $b = $env.$flags;
31908
+ $env = asrj_Flags_invalid;
31909
+ ju_GenericEnumSet_add($b, $env);
31910
+ return $a.$NaN();
31911
+ }
31912
+ if ($a.$isInfinite())
31913
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31914
+ if (!$b.$isInfinite() && !$a.$isZero()) {
31915
+ if ($b.$isZero()) {
31916
+ $env = $env.$flags;
31917
+ var$4 = asrj_Flags_divByZero;
31918
+ ju_GenericEnumSet_add($env, var$4);
31919
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31920
+ }
31921
+ if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
31922
+ $rt_throw(jl_AssertionError__init_($rt_s(1627)));
31923
+ var$4 = $a.$toExactFloat();
31924
+ $b = $b.$toExactFloat();
31925
+ var$5 = $a.$maxPrecision();
31926
+ var$6 = asrji_ExactFloat_$assertionsDisabled;
31927
+ if (!var$6 && var$5 <= 0)
31928
+ $rt_throw(jl_AssertionError__init_($rt_s(1628)));
31929
+ if (!var$6 && asrji_ExactFloat_isZero($b))
31930
+ $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31931
+ var$4 = asrji_ExactFloat_normalize(var$4);
31932
+ var$7 = asrji_ExactFloat_normalize($b);
31933
+ var$8 = var$4.$significand;
31934
+ var$9 = var$7.$significand;
31935
+ var$10 = jm_BigInteger_ZERO;
31936
+ var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
31937
+ if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
31938
+ var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
31939
+ else
31940
+ var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
31941
+ var$6 = 0;
31942
+ b: {
31943
+ while (jm_BigInteger_bitLength(var$10) < var$5) {
31944
+ var$10 = jm_BigInteger_shiftLeft(var$10, 1);
31945
+ if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
31946
+ var$8 = jm_BigInteger_subtract(var$8, var$9);
31947
+ var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
31948
+ }
31949
+ var$6 = var$6 + 1 | 0;
31950
+ var$8 = jm_BigInteger_shiftLeft(var$8, 1);
31951
+ if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
31952
+ break b;
31953
+ }
31954
+ }
31955
+ if (jm_BigInteger_bitLength(var$10) >= var$5) {
31956
+ var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
31957
+ var$6 = var$6 + 1 | 0;
31958
+ }
31959
+ 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);
31960
+ }
31961
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
31962
+ };
31963
+ var asrjo_Arithmetic__clinit_ = () => {
31964
+ asrjo_Arithmetic_$assertionsDisabled = 0;
31965
+ };
31738
31966
  var asrjo_Comparisons = $rt_classWithoutFields();
31739
31967
  var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31740
31968
  if ($a.$isZero()) {
@@ -32039,7 +32267,7 @@ var jm_BigInteger_testBit = ($this, $n) => {
32039
32267
  return !($this.$digits.data[0] & 1) ? 0 : 1;
32040
32268
  if ($n < 0) {
32041
32269
  var$2 = new jl_ArithmeticException();
32042
- jl_Throwable__init_0(var$2, $rt_s(1625));
32270
+ jl_Throwable__init_0(var$2, $rt_s(1630));
32043
32271
  $rt_throw(var$2);
32044
32272
  }
32045
32273
  $intCount = $n >> 5;
@@ -32067,7 +32295,7 @@ var jm_BigInteger_intValueExact = ($this) => {
32067
32295
  if ($this.$numberLength <= 1 && jm_BigInteger_bitLength($this) <= 31)
32068
32296
  return $rt_imul($this.$sign0, $this.$digits.data[0]);
32069
32297
  var$1 = new jl_ArithmeticException();
32070
- jl_Throwable__init_0(var$1, $rt_s(1626));
32298
+ jl_Throwable__init_0(var$1, $rt_s(1631));
32071
32299
  $rt_throw(var$1);
32072
32300
  };
32073
32301
  var jm_BigInteger_longValue = ($this) => {
@@ -32085,7 +32313,7 @@ var jm_BigInteger_longValueExact = ($this) => {
32085
32313
  if ($this.$numberLength <= 2 && jm_BigInteger_bitLength($this) <= 63)
32086
32314
  return jm_BigInteger_longValue($this);
32087
32315
  var$1 = new jl_ArithmeticException();
32088
- jl_Throwable__init_0(var$1, $rt_s(1627));
32316
+ jl_Throwable__init_0(var$1, $rt_s(1632));
32089
32317
  $rt_throw(var$1);
32090
32318
  };
32091
32319
  var jm_BigInteger_compareTo = ($this, $val) => {
@@ -32206,241 +32434,6 @@ var jm_BigInteger__clinit_ = () => {
32206
32434
  $i = $i + 1 | 0;
32207
32435
  }
32208
32436
  };
32209
- var asrjo_Arithmetic = $rt_classWithoutFields();
32210
- var asrjo_Arithmetic_$assertionsDisabled = 0;
32211
- var asrjo_Arithmetic_add = ($a, $b, $env) => {
32212
- let $out;
32213
- if ($a.$isNaN())
32214
- return $a;
32215
- if ($b.$isNaN())
32216
- return $b;
32217
- if ($a.$isInfinite()) {
32218
- if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
32219
- $b = $env.$flags;
32220
- $env = asrj_Flags_invalid;
32221
- ju_GenericEnumSet_add($b, $env);
32222
- return $a.$NaN();
32223
- }
32224
- return $a;
32225
- }
32226
- if ($b.$isInfinite())
32227
- return $b;
32228
- if ($a.$isZero()) {
32229
- if (!$b.$isZero())
32230
- return $b;
32231
- if ($a.$isSignMinus() == $b.$isSignMinus())
32232
- return $a;
32233
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32234
- }
32235
- if ($b.$isZero())
32236
- return $a;
32237
- $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
32238
- if (!asrji_ExactFloat_isZero($out))
32239
- return $a.$fromExactFloat($out, $env);
32240
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32241
- };
32242
- var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
32243
- if ($a.$isNaN())
32244
- return $a;
32245
- if ($b.$isNaN())
32246
- return $b;
32247
- return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
32248
- };
32249
- var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
32250
- if ($a.$isNaN())
32251
- return $a;
32252
- if ($b.$isNaN())
32253
- return $b;
32254
- a: {
32255
- if (!($a.$isZero() && $b.$isInfinite())) {
32256
- if (!$b.$isZero())
32257
- break a;
32258
- if (!$a.$isInfinite())
32259
- break a;
32260
- }
32261
- $b = $env.$flags;
32262
- $env = asrj_Flags_invalid;
32263
- ju_GenericEnumSet_add($b, $env);
32264
- return $a.$NaN();
32265
- }
32266
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32267
- if (!$a.$isZero() && !$b.$isZero())
32268
- return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
32269
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32270
- }
32271
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32272
- };
32273
- var asrjo_Arithmetic_squareRoot = ($a, $env) => {
32274
- let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
32275
- if ($a.$isNaN())
32276
- return $a;
32277
- if ($a.$isZero())
32278
- return $a;
32279
- if ($a.$isSignMinus()) {
32280
- $env = $env.$flags;
32281
- var$3 = asrj_Flags_invalid;
32282
- ju_GenericEnumSet_add($env, var$3);
32283
- return $a.$NaN();
32284
- }
32285
- if ($a.$isInfinite())
32286
- return $a;
32287
- var$3 = $a.$toExactFloat();
32288
- var$4 = $a.$maxPrecision();
32289
- if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
32290
- $rt_throw(jl_AssertionError__init_($rt_s(1628)));
32291
- var$5 = asrji_ExactFloat_normalize(var$3);
32292
- var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
32293
- a: {
32294
- while (true) {
32295
- var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32296
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32297
- if (!var$8)
32298
- break;
32299
- if (var$8 > 0) {
32300
- var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32301
- var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
32302
- var$6 = 0;
32303
- while (true) {
32304
- if (var$6 >= var$4) {
32305
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32306
- var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32307
- if (!var$4)
32308
- break a;
32309
- if (var$4 > 0) {
32310
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
32311
- break a;
32312
- }
32313
- if (var$4 < 0) {
32314
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
32315
- break a;
32316
- }
32317
- if (!asrji_ExactFloat_$assertionsDisabled)
32318
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32319
- var$7 = null;
32320
- break a;
32321
- }
32322
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32323
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32324
- if (!var$8)
32325
- break;
32326
- if (var$8 <= 0) {
32327
- if (var$8 < 0) {
32328
- var$10 = var$7;
32329
- var$7 = var$9;
32330
- } else {
32331
- if (!asrji_ExactFloat_$assertionsDisabled)
32332
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32333
- var$7 = var$9;
32334
- }
32335
- }
32336
- var$6 = var$6 + 1 | 0;
32337
- var$9 = var$7;
32338
- }
32339
- break a;
32340
- }
32341
- var$6 = var$6 + -1 | 0;
32342
- }
32343
- }
32344
- return $a.$fromExactFloat(var$7, $env);
32345
- };
32346
- var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
32347
- if ($a.$isNaN())
32348
- return $a;
32349
- if ($b.$isNaN())
32350
- return $b;
32351
- if ($c.$isNaN())
32352
- return $c;
32353
- a: {
32354
- if (!($a.$isZero() && $b.$isInfinite())) {
32355
- if (!$b.$isZero())
32356
- break a;
32357
- if (!$a.$isInfinite())
32358
- break a;
32359
- }
32360
- $b = $env.$flags;
32361
- $c = asrj_Flags_invalid;
32362
- ju_GenericEnumSet_add($b, $c);
32363
- return $a.$NaN();
32364
- }
32365
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32366
- if (!$a.$isZero() && !$b.$isZero())
32367
- return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
32368
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
32369
- }
32370
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
32371
- };
32372
- var asrjo_Arithmetic_division = ($a, $b, $env) => {
32373
- let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
32374
- if ($a.$isNaN())
32375
- return $a;
32376
- if ($b.$isNaN())
32377
- return $b;
32378
- a: {
32379
- if (!($a.$isZero() && $b.$isZero())) {
32380
- if (!$a.$isInfinite())
32381
- break a;
32382
- if (!$b.$isInfinite())
32383
- break a;
32384
- }
32385
- $b = $env.$flags;
32386
- $env = asrj_Flags_invalid;
32387
- ju_GenericEnumSet_add($b, $env);
32388
- return $a.$NaN();
32389
- }
32390
- if ($a.$isInfinite())
32391
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32392
- if (!$b.$isInfinite() && !$a.$isZero()) {
32393
- if ($b.$isZero()) {
32394
- $env = $env.$flags;
32395
- var$4 = asrj_Flags_divByZero;
32396
- ju_GenericEnumSet_add($env, var$4);
32397
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32398
- }
32399
- if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
32400
- $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32401
- var$4 = $a.$toExactFloat();
32402
- $b = $b.$toExactFloat();
32403
- var$5 = $a.$maxPrecision();
32404
- var$6 = asrji_ExactFloat_$assertionsDisabled;
32405
- if (!var$6 && var$5 <= 0)
32406
- $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32407
- if (!var$6 && asrji_ExactFloat_isZero($b))
32408
- $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32409
- var$4 = asrji_ExactFloat_normalize(var$4);
32410
- var$7 = asrji_ExactFloat_normalize($b);
32411
- var$8 = var$4.$significand;
32412
- var$9 = var$7.$significand;
32413
- var$10 = jm_BigInteger_ZERO;
32414
- var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
32415
- if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
32416
- var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
32417
- else
32418
- var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
32419
- var$6 = 0;
32420
- b: {
32421
- while (jm_BigInteger_bitLength(var$10) < var$5) {
32422
- var$10 = jm_BigInteger_shiftLeft(var$10, 1);
32423
- if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
32424
- var$8 = jm_BigInteger_subtract(var$8, var$9);
32425
- var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
32426
- }
32427
- var$6 = var$6 + 1 | 0;
32428
- var$8 = jm_BigInteger_shiftLeft(var$8, 1);
32429
- if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
32430
- break b;
32431
- }
32432
- }
32433
- if (jm_BigInteger_bitLength(var$10) >= var$5) {
32434
- var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
32435
- var$6 = var$6 + 1 | 0;
32436
- }
32437
- 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);
32438
- }
32439
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32440
- };
32441
- var asrjo_Arithmetic__clinit_ = () => {
32442
- asrjo_Arithmetic_$assertionsDisabled = 0;
32443
- };
32444
32437
  function jnci_BufferedEncoder$Controller() {
32445
32438
  let a = this;
32446
32439
  jl_Object.call(a);
@@ -33800,34 +33793,34 @@ function ju_Hashtable$Entry() {
33800
33793
  var ju_Hashtable$Entry_equalsKey = ($this, $aKey, $hash) => {
33801
33794
  return $this.$hashcode == jl_String_hashCode($aKey) && $this.$key.$equals($aKey) ? 1 : 0;
33802
33795
  };
33803
- var asrjt_Float32$1 = $rt_classWithoutFields();
33804
- var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33805
- var asrjt_Float32$1_$callClinit = () => {
33806
- asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33807
- asrjt_Float32$1__clinit_();
33796
+ var asrjt_Float64$1 = $rt_classWithoutFields();
33797
+ var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33798
+ var asrjt_Float64$1_$callClinit = () => {
33799
+ asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33800
+ asrjt_Float64$1__clinit_();
33808
33801
  };
33809
- var asrjt_Float32$1__clinit_ = () => {
33802
+ var asrjt_Float64$1__clinit_ = () => {
33810
33803
  let var$1, var$2;
33811
33804
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33812
33805
  var$2 = var$1.data;
33813
- asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33806
+ asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33814
33807
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33815
33808
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33816
33809
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
33817
33810
  var$2[asrj_RoundingMode_away.$ordinal0] = 4;
33818
33811
  var$2[asrj_RoundingMode_even.$ordinal0] = 5;
33819
33812
  };
33820
- var asrjt_Float64$1 = $rt_classWithoutFields();
33821
- var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33822
- var asrjt_Float64$1_$callClinit = () => {
33823
- asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33824
- asrjt_Float64$1__clinit_();
33813
+ var asrjt_Float32$1 = $rt_classWithoutFields();
33814
+ var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33815
+ var asrjt_Float32$1_$callClinit = () => {
33816
+ asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33817
+ asrjt_Float32$1__clinit_();
33825
33818
  };
33826
- var asrjt_Float64$1__clinit_ = () => {
33819
+ var asrjt_Float32$1__clinit_ = () => {
33827
33820
  let var$1, var$2;
33828
33821
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33829
33822
  var$2 = var$1.data;
33830
- asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33823
+ asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33831
33824
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33832
33825
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33833
33826
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
@@ -34588,7 +34581,7 @@ $rt_metadata([
34588
34581
  0,
34589
34582
  0,
34590
34583
  0,
34591
- asr_JsRiscV$getInstructionSet$lambda$_34_0,
34584
+ asr_JsRiscV$getInstructionSet$lambda$_35_0,
34592
34585
  0,
34593
34586
  jl_Object,
34594
34587
  [juf_Function],
@@ -34596,7 +34589,7 @@ $rt_metadata([
34596
34589
  3,
34597
34590
  0,
34598
34591
  0,
34599
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_34_0_apply)],
34592
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_35_0_apply)],
34600
34593
  juf_IntFunction,
34601
34594
  0,
34602
34595
  jl_Object,
@@ -34606,7 +34599,7 @@ $rt_metadata([
34606
34599
  0,
34607
34600
  0,
34608
34601
  0,
34609
- asr_JsRiscV$getInstructionSet$lambda$_34_1,
34602
+ asr_JsRiscV$getInstructionSet$lambda$_35_1,
34610
34603
  0,
34611
34604
  jl_Object,
34612
34605
  [juf_IntFunction],
@@ -34614,7 +34607,7 @@ $rt_metadata([
34614
34607
  3,
34615
34608
  0,
34616
34609
  0,
34617
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_34_1_apply)],
34610
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_35_1_apply)],
34618
34611
  asr_JsInstruction,
34619
34612
  "JsInstruction",
34620
34613
  10,
@@ -34687,7 +34680,7 @@ $rt_metadata([
34687
34680
  0,
34688
34681
  3,
34689
34682
  0,
34690
- asrr_InstructionSet_$callClinit,
34683
+ 0,
34691
34684
  0,
34692
34685
  ju_Observable,
34693
34686
  0,
@@ -34855,26 +34848,6 @@ $rt_metadata([
34855
34848
  0,
34856
34849
  0,
34857
34850
  ["$get0", $rt_wrapFunction1(ju_ArrayList_get), "$size", $rt_wrapFunction0(ju_ArrayList_size)],
34858
- jl_Enum,
34859
- "Enum",
34860
- 14,
34861
- jl_Object,
34862
- [jl_Comparable, ji_Serializable],
34863
- 1,
34864
- 3,
34865
- 0,
34866
- 0,
34867
- ["$toString", $rt_wrapFunction0(jl_Enum_toString), "$equals", $rt_wrapFunction1(jl_Enum_equals), "$hashCode", $rt_wrapFunction0(jl_Enum_hashCode), "$compareTo", $rt_wrapFunction1(jl_Enum_compareTo)],
34868
- asr_Settings$Bool,
34869
- "Settings$Bool",
34870
- 2,
34871
- jl_Enum,
34872
- [],
34873
- 12,
34874
- 3,
34875
- 0,
34876
- 0,
34877
- 0,
34878
34851
  asrrh_MemoryConfigurations,
34879
34852
  0,
34880
34853
  jl_Object,
@@ -34920,6 +34893,26 @@ $rt_metadata([
34920
34893
  0,
34921
34894
  0,
34922
34895
  0,
34896
+ jl_Enum,
34897
+ "Enum",
34898
+ 14,
34899
+ jl_Object,
34900
+ [jl_Comparable, ji_Serializable],
34901
+ 1,
34902
+ 3,
34903
+ 0,
34904
+ 0,
34905
+ ["$toString", $rt_wrapFunction0(jl_Enum_toString), "$equals", $rt_wrapFunction1(jl_Enum_equals), "$hashCode", $rt_wrapFunction0(jl_Enum_hashCode), "$compareTo", $rt_wrapFunction1(jl_Enum_compareTo)],
34906
+ asr_Settings$Bool,
34907
+ "Settings$Bool",
34908
+ 2,
34909
+ jl_Enum,
34910
+ [],
34911
+ 12,
34912
+ 3,
34913
+ 0,
34914
+ 0,
34915
+ 0,
34923
34916
  jl_Boolean,
34924
34917
  "Boolean",
34925
34918
  14,
@@ -34967,25 +34960,6 @@ $rt_metadata([
34967
34960
  0,
34968
34961
  0,
34969
34962
  0,
34970
- asrrh_RegisterFile,
34971
- 0,
34972
- jl_Object,
34973
- [],
34974
- 0,
34975
- 3,
34976
- 0,
34977
- asrrh_RegisterFile_$callClinit,
34978
- 0,
34979
- asr_JsProgramStatement,
34980
- "JsProgramStatement",
34981
- 10,
34982
- jl_Object,
34983
- [],
34984
- 0,
34985
- 3,
34986
- 0,
34987
- 0,
34988
- 0,
34989
34963
  ju_Arrays,
34990
34964
  0,
34991
34965
  jl_Object,
@@ -34995,7 +34969,7 @@ $rt_metadata([
34995
34969
  0,
34996
34970
  0,
34997
34971
  0,
34998
- asr_JsRiscV$getUndoStack$lambda$_21_0,
34972
+ asr_JsRiscV$getUndoStack$lambda$_22_0,
34999
34973
  0,
35000
34974
  jl_Object,
35001
34975
  [juf_Function],
@@ -35003,8 +34977,8 @@ $rt_metadata([
35003
34977
  3,
35004
34978
  0,
35005
34979
  0,
35006
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_0_apply)],
35007
- asr_JsRiscV$getUndoStack$lambda$_21_1,
34980
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_22_0_apply)],
34981
+ asr_JsRiscV$getUndoStack$lambda$_22_1,
35008
34982
  0,
35009
34983
  jl_Object,
35010
34984
  [juf_IntFunction],
@@ -35012,7 +34986,7 @@ $rt_metadata([
35012
34986
  3,
35013
34987
  0,
35014
34988
  0,
35015
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_1_apply)],
34989
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_22_1_apply)],
35016
34990
  asr_JsBackStep,
35017
34991
  "JsBackStep",
35018
34992
  10,
@@ -35023,8 +34997,26 @@ $rt_metadata([
35023
34997
  0,
35024
34998
  0,
35025
34999
  0,
35026
- asr_JsCompilationResult,
35027
- "JsCompilationResult",
35000
+ asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35001
+ 0,
35002
+ jl_Object,
35003
+ [juf_Function],
35004
+ 0,
35005
+ 3,
35006
+ 0,
35007
+ 0,
35008
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply)],
35009
+ asr_JsRiscV$getTokenizedLines$lambda$_5_1,
35010
+ 0,
35011
+ jl_Object,
35012
+ [juf_IntFunction],
35013
+ 0,
35014
+ 3,
35015
+ 0,
35016
+ 0,
35017
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply)],
35018
+ asr_JsRiscVTokenizedLine,
35019
+ "JsRiscVTokenizedLine",
35028
35020
  10,
35029
35021
  jl_Object,
35030
35022
  [],
@@ -35033,14 +35025,14 @@ $rt_metadata([
35033
35025
  0,
35034
35026
  0,
35035
35027
  0,
35036
- asr_AssemblyException,
35028
+ asrrh_RegisterFile,
35037
35029
  0,
35038
- jl_Exception,
35030
+ jl_Object,
35039
35031
  [],
35040
35032
  0,
35041
35033
  3,
35042
35034
  0,
35043
- 0,
35035
+ asrrh_RegisterFile_$callClinit,
35044
35036
  0,
35045
35037
  juf_ToIntFunction,
35046
35038
  0,
@@ -35051,7 +35043,7 @@ $rt_metadata([
35051
35043
  0,
35052
35044
  0,
35053
35045
  0,
35054
- asr_JsRiscV$getRegistersValues$lambda$_20_0,
35046
+ asr_JsRiscV$getRegistersValues$lambda$_21_0,
35055
35047
  0,
35056
35048
  jl_Object,
35057
35049
  [juf_ToIntFunction],
@@ -35060,8 +35052,8 @@ $rt_metadata([
35060
35052
  0,
35061
35053
  0,
35062
35054
  0,
35063
- asr_JsStackFrame,
35064
- "JsStackFrame",
35055
+ asr_JsProgramStatement,
35056
+ "JsProgramStatement",
35065
35057
  10,
35066
35058
  jl_Object,
35067
35059
  [],
@@ -35070,28 +35062,29 @@ $rt_metadata([
35070
35062
  0,
35071
35063
  0,
35072
35064
  0,
35073
- asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35074
- 0,
35065
+ asr_JsStackFrame,
35066
+ "JsStackFrame",
35067
+ 10,
35075
35068
  jl_Object,
35076
- [juf_Function],
35069
+ [],
35077
35070
  0,
35078
35071
  3,
35079
35072
  0,
35080
35073
  0,
35081
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply)],
35082
- asr_JsRiscV$getTokenizedLines$lambda$_5_1,
35083
35074
  0,
35075
+ asr_JsCompilationResult,
35076
+ "JsCompilationResult",
35077
+ 10,
35084
35078
  jl_Object,
35085
- [juf_IntFunction],
35079
+ [],
35086
35080
  0,
35087
35081
  3,
35088
35082
  0,
35089
35083
  0,
35090
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply)],
35091
- asr_JsRiscVTokenizedLine,
35092
- "JsRiscVTokenizedLine",
35093
- 10,
35094
- jl_Object,
35084
+ 0,
35085
+ asr_AssemblyException,
35086
+ 0,
35087
+ jl_Exception,
35095
35088
  [],
35096
35089
  0,
35097
35090
  3,
@@ -35191,16 +35184,6 @@ $rt_metadata([
35191
35184
  0,
35192
35185
  0,
35193
35186
  0,
35194
- asrrh_Register,
35195
- "Register",
35196
- 7,
35197
- ju_Observable,
35198
- [],
35199
- 0,
35200
- 3,
35201
- 0,
35202
- 0,
35203
- ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35204
35187
  asrs_BackStepper,
35205
35188
  0,
35206
35189
  jl_Object,
@@ -35236,9 +35219,7 @@ $rt_metadata([
35236
35219
  3,
35237
35220
  0,
35238
35221
  0,
35239
- 0
35240
- ]);
35241
- $rt_metadata([
35222
+ 0,
35242
35223
  jus_Stream,
35243
35224
  0,
35244
35225
  jl_Object,
@@ -35247,7 +35228,9 @@ $rt_metadata([
35247
35228
  3,
35248
35229
  0,
35249
35230
  0,
35250
- 0,
35231
+ 0
35232
+ ]);
35233
+ $rt_metadata([
35251
35234
  jusi_SimpleStreamImpl,
35252
35235
  0,
35253
35236
  jl_Object,
@@ -35266,6 +35249,16 @@ $rt_metadata([
35266
35249
  0,
35267
35250
  0,
35268
35251
  ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35252
+ asrrh_Register,
35253
+ "Register",
35254
+ 7,
35255
+ ju_Observable,
35256
+ [],
35257
+ 0,
35258
+ 3,
35259
+ 0,
35260
+ 0,
35261
+ ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35269
35262
  asr_JsCompilationResult$_init_$lambda$_0_0,
35270
35263
  0,
35271
35264
  jl_Object,
@@ -36870,8 +36863,9 @@ $rt_metadata([
36870
36863
  0,
36871
36864
  0,
36872
36865
  0,
36873
- asr_ErrorList,
36874
- 0,
36866
+ asrrh_StackFrame,
36867
+ "StackFrame",
36868
+ 7,
36875
36869
  jl_Object,
36876
36870
  [],
36877
36871
  0,
@@ -36879,9 +36873,8 @@ $rt_metadata([
36879
36873
  0,
36880
36874
  0,
36881
36875
  0,
36882
- asrrh_StackFrame,
36883
- "StackFrame",
36884
- 7,
36876
+ asr_ErrorList,
36877
+ 0,
36885
36878
  jl_Object,
36886
36879
  [],
36887
36880
  0,
@@ -40645,7 +40638,7 @@ $rt_metadata([
40645
40638
  0,
40646
40639
  0,
40647
40640
  0,
40648
- asrjt_Float64,
40641
+ asrjt_Float32,
40649
40642
  0,
40650
40643
  asrjt_Floating,
40651
40644
  [],
@@ -40655,39 +40648,39 @@ $rt_metadata([
40655
40648
  0,
40656
40649
  [
40657
40650
  "$isSignMinus",
40658
- $rt_wrapFunction0(asrjt_Float64_isSignMinus),
40651
+ $rt_wrapFunction0(asrjt_Float32_isSignMinus),
40659
40652
  "$isInfinite",
40660
- $rt_wrapFunction0(asrjt_Float64_isInfinite),
40653
+ $rt_wrapFunction0(asrjt_Float32_isInfinite),
40661
40654
  "$isNormal",
40662
- $rt_wrapFunction0(asrjt_Float64_isNormal),
40655
+ $rt_wrapFunction0(asrjt_Float32_isNormal),
40663
40656
  "$isSubnormal",
40664
- $rt_wrapFunction0(asrjt_Float64_isSubnormal),
40657
+ $rt_wrapFunction0(asrjt_Float32_isSubnormal),
40665
40658
  "$isNaN",
40666
- $rt_wrapFunction0(asrjt_Float64_isNaN),
40659
+ $rt_wrapFunction0(asrjt_Float32_isNaN),
40667
40660
  "$isSignalling",
40668
- $rt_wrapFunction0(asrjt_Float64_isSignalling),
40661
+ $rt_wrapFunction0(asrjt_Float32_isSignalling),
40669
40662
  "$isZero",
40670
- $rt_wrapFunction0(asrjt_Float64_isZero),
40663
+ $rt_wrapFunction0(asrjt_Float32_isZero),
40671
40664
  "$toExactFloat",
40672
- $rt_wrapFunction0(asrjt_Float64_toExactFloat),
40665
+ $rt_wrapFunction0(asrjt_Float32_toExactFloat),
40673
40666
  "$maxPrecision",
40674
- $rt_wrapFunction0(asrjt_Float64_maxPrecision),
40667
+ $rt_wrapFunction0(asrjt_Float32_maxPrecision),
40675
40668
  "$negate2",
40676
- $rt_wrapFunction0(asrjt_Float64_negate0),
40669
+ $rt_wrapFunction0(asrjt_Float32_negate0),
40677
40670
  "$fromExactFloat",
40678
- $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
40671
+ $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
40679
40672
  "$NegativeInfinity",
40680
- $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
40673
+ $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
40681
40674
  "$Infinity",
40682
- $rt_wrapFunction0(asrjt_Float64_Infinity0),
40675
+ $rt_wrapFunction0(asrjt_Float32_Infinity0),
40683
40676
  "$NegativeZero",
40684
- $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
40677
+ $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
40685
40678
  "$Zero",
40686
- $rt_wrapFunction0(asrjt_Float64_Zero0),
40679
+ $rt_wrapFunction0(asrjt_Float32_Zero0),
40687
40680
  "$NaN",
40688
- $rt_wrapFunction0(asrjt_Float64_NaN0)
40681
+ $rt_wrapFunction0(asrjt_Float32_NaN0)
40689
40682
  ],
40690
- asrjt_Float32,
40683
+ asrjt_Float64,
40691
40684
  0,
40692
40685
  asrjt_Floating,
40693
40686
  [],
@@ -40697,37 +40690,37 @@ $rt_metadata([
40697
40690
  0,
40698
40691
  [
40699
40692
  "$isSignMinus",
40700
- $rt_wrapFunction0(asrjt_Float32_isSignMinus),
40693
+ $rt_wrapFunction0(asrjt_Float64_isSignMinus),
40701
40694
  "$isInfinite",
40702
- $rt_wrapFunction0(asrjt_Float32_isInfinite),
40695
+ $rt_wrapFunction0(asrjt_Float64_isInfinite),
40703
40696
  "$isNormal",
40704
- $rt_wrapFunction0(asrjt_Float32_isNormal),
40697
+ $rt_wrapFunction0(asrjt_Float64_isNormal),
40705
40698
  "$isSubnormal",
40706
- $rt_wrapFunction0(asrjt_Float32_isSubnormal),
40699
+ $rt_wrapFunction0(asrjt_Float64_isSubnormal),
40707
40700
  "$isNaN",
40708
- $rt_wrapFunction0(asrjt_Float32_isNaN),
40701
+ $rt_wrapFunction0(asrjt_Float64_isNaN),
40709
40702
  "$isSignalling",
40710
- $rt_wrapFunction0(asrjt_Float32_isSignalling),
40703
+ $rt_wrapFunction0(asrjt_Float64_isSignalling),
40711
40704
  "$isZero",
40712
- $rt_wrapFunction0(asrjt_Float32_isZero),
40705
+ $rt_wrapFunction0(asrjt_Float64_isZero),
40713
40706
  "$toExactFloat",
40714
- $rt_wrapFunction0(asrjt_Float32_toExactFloat),
40707
+ $rt_wrapFunction0(asrjt_Float64_toExactFloat),
40715
40708
  "$maxPrecision",
40716
- $rt_wrapFunction0(asrjt_Float32_maxPrecision),
40709
+ $rt_wrapFunction0(asrjt_Float64_maxPrecision),
40717
40710
  "$negate2",
40718
- $rt_wrapFunction0(asrjt_Float32_negate0),
40711
+ $rt_wrapFunction0(asrjt_Float64_negate0),
40719
40712
  "$fromExactFloat",
40720
- $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
40713
+ $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
40721
40714
  "$NegativeInfinity",
40722
- $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
40715
+ $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
40723
40716
  "$Infinity",
40724
- $rt_wrapFunction0(asrjt_Float32_Infinity0),
40717
+ $rt_wrapFunction0(asrjt_Float64_Infinity0),
40725
40718
  "$NegativeZero",
40726
- $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
40719
+ $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
40727
40720
  "$Zero",
40728
- $rt_wrapFunction0(asrjt_Float32_Zero0),
40721
+ $rt_wrapFunction0(asrjt_Float64_Zero0),
40729
40722
  "$NaN",
40730
- $rt_wrapFunction0(asrjt_Float32_NaN0)
40723
+ $rt_wrapFunction0(asrjt_Float64_NaN0)
40731
40724
  ],
40732
40725
  asrjo_Conversions,
40733
40726
  0,
@@ -40738,7 +40731,7 @@ $rt_metadata([
40738
40731
  0,
40739
40732
  0,
40740
40733
  0,
40741
- asrjo_Comparisons,
40734
+ asrjo_Arithmetic,
40742
40735
  0,
40743
40736
  jl_Object,
40744
40737
  [],
@@ -40747,19 +40740,19 @@ $rt_metadata([
40747
40740
  0,
40748
40741
  0,
40749
40742
  0,
40750
- jm_BigInteger,
40743
+ asrjo_Comparisons,
40751
40744
  0,
40752
- jl_Number,
40753
- [jl_Comparable, ji_Serializable],
40745
+ jl_Object,
40746
+ [],
40754
40747
  0,
40755
40748
  3,
40756
40749
  0,
40757
40750
  0,
40758
40751
  0,
40759
- asrjo_Arithmetic,
40752
+ jm_BigInteger,
40760
40753
  0,
40761
- jl_Object,
40762
- [],
40754
+ jl_Number,
40755
+ [jl_Comparable, ji_Serializable],
40763
40756
  0,
40764
40757
  3,
40765
40758
  0,
@@ -40994,23 +40987,23 @@ $rt_metadata([
40994
40987
  0,
40995
40988
  0,
40996
40989
  0,
40997
- asrjt_Float32$1,
40990
+ asrjt_Float64$1,
40998
40991
  0,
40999
40992
  jl_Object,
41000
40993
  [],
41001
40994
  32,
41002
40995
  0,
41003
40996
  0,
41004
- asrjt_Float32$1_$callClinit,
40997
+ asrjt_Float64$1_$callClinit,
41005
40998
  0,
41006
- asrjt_Float64$1,
40999
+ asrjt_Float32$1,
41007
41000
  0,
41008
41001
  jl_Object,
41009
41002
  [],
41010
41003
  32,
41011
41004
  0,
41012
41005
  0,
41013
- asrjt_Float64$1_$callClinit,
41006
+ asrjt_Float32$1_$callClinit,
41014
41007
  0,
41015
41008
  jm_Multiplication,
41016
41009
  0,
@@ -41238,6 +41231,29 @@ $rt_stringPool([
41238
41231
  "STDOUT",
41239
41232
  "STDERR",
41240
41233
  "File operation OK",
41234
+ "Default",
41235
+ "CompactDataAtZero",
41236
+ "Compact, Data at Address 0",
41237
+ "CompactTextAtZero",
41238
+ "Compact, Text at Address 0",
41239
+ "gp",
41240
+ "sp",
41241
+ ".text base address",
41242
+ "data segment base address",
41243
+ ".extern base address",
41244
+ "global pointer (gp)",
41245
+ ".data base address",
41246
+ "heap base address",
41247
+ "stack pointer (sp)",
41248
+ "stack base address",
41249
+ "user space high address",
41250
+ "kernel space base address",
41251
+ "MMIO base address",
41252
+ "kernel space high address",
41253
+ "data segment limit address",
41254
+ "text limit address",
41255
+ "stack limit address",
41256
+ "memory map limit address",
41241
41257
  "Can't compare ",
41242
41258
  " to ",
41243
41259
  "EXTENDED_ASSEMBLER_ENABLED",
@@ -41269,29 +41285,6 @@ $rt_stringPool([
41269
41285
  "rv64Enabled",
41270
41286
  "DERIVE_CURRENT_WORKING_DIRECTORY",
41271
41287
  "DeriveCurrentWorkingDirectory",
41272
- "Default",
41273
- "CompactDataAtZero",
41274
- "Compact, Data at Address 0",
41275
- "CompactTextAtZero",
41276
- "Compact, Text at Address 0",
41277
- "gp",
41278
- "sp",
41279
- ".text base address",
41280
- "data segment base address",
41281
- ".extern base address",
41282
- "global pointer (gp)",
41283
- ".data base address",
41284
- "heap base address",
41285
- "stack pointer (sp)",
41286
- "stack base address",
41287
- "user space high address",
41288
- "kernel space base address",
41289
- "MMIO base address",
41290
- "kernel space high address",
41291
- "data segment limit address",
41292
- "text limit address",
41293
- "stack limit address",
41294
- "memory map limit address",
41295
41288
  "invalid register name",
41296
41289
  "invalid CSR name",
41297
41290
  "invalid FPU register name",
@@ -42086,7 +42079,7 @@ $rt_stringPool([
42086
42079
  "addi t1,t2,%lo(label) ;addi RG1,RG2,LL5 ;#Load Lower Address : Set t1 to t2 + lower 12-bit label's address",
42087
42080
  "lb t1,%lo(label)(t2) ;lb RG1,LL4(RG7) ;#Load from Address",
42088
42081
  "lh t1,%lo(label)(t2) ;lh RG1,LL4(RG7) ;#Load from Address",
42089
- "lw t1,%lo(label)(t2) ;lw RG1,LL4(RG7) ;#Load from Address",
42082
+ "lw t1,%lo(label)(t2) ;lw RG1,LL4(RnG7) ;#Load from Address",
42090
42083
  "flw f1,%lo(label)(t2) ;flw RG1,LL4(RG7) ;#Load from Address",
42091
42084
  "fld f1,%lo(label)(t2) ;fld RG1,LL4(RG7) ;#Load from Address",
42092
42085
  "fgt.s t1, f2, f3 ;flt.s RG1, RG3, RG2 ;#Floating Greater Than: if f2 > f3, set t1 to 1, else set t1 to 0",
@@ -42736,14 +42729,14 @@ $rt_stringPool([
42736
42729
  "Zeros should be handled explicitly",
42737
42730
  "This should not be reachable",
42738
42731
  "There can't be any fractions at this point",
42739
- "Negative bit address",
42740
- "BigInteger out of int range",
42741
- "BigInteger out of long range",
42742
42732
  "Square root of a negative number is not real",
42743
42733
  "Cannot get here",
42744
42734
  "Both should definitely be finite by this point",
42745
42735
  "Accuracy must be a positive number",
42746
42736
  "Divide by Zero is not valid",
42737
+ "Negative bit address",
42738
+ "BigInteger out of int range",
42739
+ "BigInteger out of long range",
42747
42740
  "even",
42748
42741
  "away",
42749
42742
  "min",
@@ -42772,7 +42765,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42772
42765
  c.getCurrentStatementIndex = $rt_callWithReceiver(asr_JsRiscV_getCurrentStatementIndex$exported$28);
42773
42766
  c.setUndoEnabled = $rt_callWithReceiver(asr_JsRiscV_setUndoEnabled$exported$20);
42774
42767
  c.getRegistersValues = $rt_callWithReceiver(asr_JsRiscV_getRegistersValues$exported$6);
42775
- c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$30);
42768
+ c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$31);
42776
42769
  c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$8);
42777
42770
  c.getParsedStatements = $rt_callWithReceiver(asr_JsRiscV_getParsedStatements$exported$18);
42778
42771
  c.getStatementAtSourceLine = $rt_callWithReceiver(asr_JsRiscV_getStatementAtSourceLine$exported$19);
@@ -42790,6 +42783,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42790
42783
  c.registerHandler = $rt_callWithReceiver(asr_JsRiscV_registerHandler$exported$0);
42791
42784
  c.simulateWithLimit = $rt_callWithReceiver(asr_JsRiscV_simulateWithLimit$exported$5);
42792
42785
  c.setIs64Bit = $rt_callWithReceiver(asr_JsRiscV_setIs64Bit$exported$27);
42786
+ c.is64Bit = $rt_callWithReceiver(asr_JsRiscV_is64Bit$exported$30);
42793
42787
  c.getCompiledStatements = $rt_callWithReceiver(asr_JsRiscV_getCompiledStatements$exported$9);
42794
42788
  c.step = $rt_callWithReceiver(asr_JsRiscV_step$exported$25);
42795
42789
  c.initialize = $rt_callWithReceiver(asr_JsRiscV_initialize$exported$12);
@@ -42803,7 +42797,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42803
42797
  get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounter$exported$29)
42804
42798
  });
42805
42799
  Object.defineProperty(c, "stackPointer", {
42806
- get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$31)
42800
+ get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$32)
42807
42801
  });
42808
42802
  Object.defineProperty(c, "terminated", {
42809
42803
  get: $rt_callWithReceiver(asr_JsRiscV_terminated$exported$11)
@@ -42821,6 +42815,26 @@ var $rt_jso_marker = Symbol("jsoClass");
42821
42815
  Object.defineProperty(c, "example", {
42822
42816
  get: $rt_callWithReceiver(asr_JsInstruction_getExample$exported$3)
42823
42817
  });
42818
+ c = asr_JsBackStep.prototype;
42819
+ Object.defineProperty(c, "pc", {
42820
+ get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42821
+ });
42822
+ Object.defineProperty(c, "action", {
42823
+ get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42824
+ });
42825
+ Object.defineProperty(c, "param1", {
42826
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42827
+ });
42828
+ Object.defineProperty(c, "param2", {
42829
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42830
+ });
42831
+ c = asr_JsRiscVTokenizedLine.prototype;
42832
+ Object.defineProperty(c, "line", {
42833
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42834
+ });
42835
+ Object.defineProperty(c, "tokens", {
42836
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42837
+ });
42824
42838
  c = asr_JsProgramStatement.prototype;
42825
42839
  Object.defineProperty(c, "assemblyStatement", {
42826
42840
  get: $rt_callWithReceiver(asr_JsProgramStatement_getAssemblyStatement$exported$1)
@@ -42840,29 +42854,6 @@ var $rt_jso_marker = Symbol("jsoClass");
42840
42854
  Object.defineProperty(c, "source", {
42841
42855
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
42842
42856
  });
42843
- c = asr_JsBackStep.prototype;
42844
- Object.defineProperty(c, "pc", {
42845
- get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42846
- });
42847
- Object.defineProperty(c, "action", {
42848
- get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42849
- });
42850
- Object.defineProperty(c, "param1", {
42851
- get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42852
- });
42853
- Object.defineProperty(c, "param2", {
42854
- get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42855
- });
42856
- c = asr_JsCompilationResult.prototype;
42857
- Object.defineProperty(c, "hasErrors", {
42858
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
42859
- });
42860
- Object.defineProperty(c, "report", {
42861
- get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$2)
42862
- });
42863
- Object.defineProperty(c, "errors", {
42864
- get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
42865
- });
42866
42857
  c = asr_JsStackFrame.prototype;
42867
42858
  Object.defineProperty(c, "pc", {
42868
42859
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -42879,12 +42870,15 @@ var $rt_jso_marker = Symbol("jsoClass");
42879
42870
  Object.defineProperty(c, "toAddress", {
42880
42871
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
42881
42872
  });
42882
- c = asr_JsRiscVTokenizedLine.prototype;
42883
- Object.defineProperty(c, "line", {
42884
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42873
+ c = asr_JsCompilationResult.prototype;
42874
+ Object.defineProperty(c, "hasErrors", {
42875
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
42885
42876
  });
42886
- Object.defineProperty(c, "tokens", {
42887
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42877
+ Object.defineProperty(c, "report", {
42878
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$2)
42879
+ });
42880
+ Object.defineProperty(c, "errors", {
42881
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
42888
42882
  });
42889
42883
  c = asr_JsCompilationResult$JsCompilationError.prototype;
42890
42884
  Object.defineProperty(c, "macroExpansionHistory", {
@@ -42932,26 +42926,26 @@ function $rt_export_class_JsInstruction_32() {
42932
42926
  throw new Error("Can't instantiate this class directly");
42933
42927
  }
42934
42928
  $rt_export_class_JsInstruction_32.prototype = asr_JsInstruction.prototype;
42935
- function $rt_export_class_JsProgramStatement_71() {
42929
+ function $rt_export_class_JsBackStep_73() {
42936
42930
  throw new Error("Can't instantiate this class directly");
42937
42931
  }
42938
- $rt_export_class_JsProgramStatement_71.prototype = asr_JsProgramStatement.prototype;
42939
- function $rt_export_class_JsBackStep_75() {
42932
+ $rt_export_class_JsBackStep_73.prototype = asr_JsBackStep.prototype;
42933
+ function $rt_export_class_JsRiscVTokenizedLine_76() {
42940
42934
  throw new Error("Can't instantiate this class directly");
42941
42935
  }
42942
- $rt_export_class_JsBackStep_75.prototype = asr_JsBackStep.prototype;
42943
- function $rt_export_class_JsCompilationResult_76() {
42936
+ $rt_export_class_JsRiscVTokenizedLine_76.prototype = asr_JsRiscVTokenizedLine.prototype;
42937
+ function $rt_export_class_JsProgramStatement_80() {
42944
42938
  throw new Error("Can't instantiate this class directly");
42945
42939
  }
42946
- $rt_export_class_JsCompilationResult_76.prototype = asr_JsCompilationResult.prototype;
42947
- function $rt_export_class_JsStackFrame_80() {
42940
+ $rt_export_class_JsProgramStatement_80.prototype = asr_JsProgramStatement.prototype;
42941
+ function $rt_export_class_JsStackFrame_81() {
42948
42942
  throw new Error("Can't instantiate this class directly");
42949
42943
  }
42950
- $rt_export_class_JsStackFrame_80.prototype = asr_JsStackFrame.prototype;
42951
- function $rt_export_class_JsRiscVTokenizedLine_83() {
42944
+ $rt_export_class_JsStackFrame_81.prototype = asr_JsStackFrame.prototype;
42945
+ function $rt_export_class_JsCompilationResult_82() {
42952
42946
  throw new Error("Can't instantiate this class directly");
42953
42947
  }
42954
- $rt_export_class_JsRiscVTokenizedLine_83.prototype = asr_JsRiscVTokenizedLine.prototype;
42948
+ $rt_export_class_JsCompilationResult_82.prototype = asr_JsCompilationResult.prototype;
42955
42949
  function $rt_export_class_JsCompilationError_349() {
42956
42950
  throw new Error("Can't instantiate this class directly");
42957
42951
  }
@@ -42994,6 +42988,9 @@ var RISCV = class {
42994
42988
  static setIs64Bit(is64Bit) {
42995
42989
  asr_JsRiscV_setIs64Bit$exported$27(is64Bit);
42996
42990
  }
42991
+ static is64Bit() {
42992
+ return asr_JsRiscV_is64Bit$exported$30();
42993
+ }
42997
42994
  };
42998
42995
  var BackStepAction = /* @__PURE__ */ ((BackStepAction2) => {
42999
42996
  BackStepAction2[BackStepAction2["MEMORY_RESTORE_RAW_WORD"] = 0] = "MEMORY_RESTORE_RAW_WORD";