@specy/risc-v 0.1.9 → 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.js CHANGED
@@ -2744,7 +2744,7 @@ var asr_JsRiscV_getRegistersValues$exported$6 = (var$1) => {
2744
2744
  var$1;
2745
2745
  asrrh_RegisterFile_$callClinit();
2746
2746
  var$1 = ju_Arrays_stream(asrrh_RegisterFile_instance.$regFile);
2747
- var$2 = new asr_JsRiscV$getRegistersValues$lambda$_20_0();
2747
+ var$2 = new asr_JsRiscV$getRegistersValues$lambda$_21_0();
2748
2748
  var$1 = var$1;
2749
2749
  var$3 = new jusi_MappingToIntStreamImpl();
2750
2750
  var$3.$source1 = var$1;
@@ -2949,9 +2949,9 @@ var asr_JsRiscV_getUndoStack$exported$13 = (var$1) => {
2949
2949
  var$6 = var$6 + 1 | 0;
2950
2950
  }
2951
2951
  var$1 = ju_Arrays_stream(var$4);
2952
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_0();
2952
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_22_0();
2953
2953
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
2954
- var$2 = new asr_JsRiscV$getUndoStack$lambda$_21_1();
2954
+ var$2 = new asr_JsRiscV$getUndoStack$lambda$_22_1();
2955
2955
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
2956
2956
  };
2957
2957
  var asr_JsRiscV_setMemoryBytes$exported$14 = (var$1, var$2, var$3) => {
@@ -3163,7 +3163,6 @@ var asr_JsRiscV_setIs64Bit$exported$27 = (var$1, var$2) => {
3163
3163
  ju_Observable_notifyObservers(var$1, null);
3164
3164
  }
3165
3165
  if (asr_Globals_initialized) {
3166
- asrr_InstructionSet_$callClinit();
3167
3166
  asrr_InstructionSet_rv64 = var$3;
3168
3167
  var$1 = asrr_InstructionSet__init_();
3169
3168
  asr_Globals_instructionSet = var$1;
@@ -3179,7 +3178,14 @@ var asr_JsRiscV_getProgramCounter$exported$29 = (var$1) => {
3179
3178
  var$1;
3180
3179
  return asrrh_RegisterFile_getProgramCounter();
3181
3180
  };
3182
- var asr_JsRiscV_readMemoryBytes$exported$30 = (var$1, var$2, var$3) => {
3181
+ var asr_JsRiscV_is64Bit$exported$30 = (var$1, var$2) => {
3182
+ asr_JsRiscV_$callClinit();
3183
+ var$2 ? 1 : 0;
3184
+ var$1;
3185
+ asr_Globals_$callClinit();
3186
+ asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_RV64_ENABLED);
3187
+ };
3188
+ var asr_JsRiscV_readMemoryBytes$exported$31 = (var$1, var$2, var$3) => {
3183
3189
  let var$4, var$5, var$6, var$7, var$8;
3184
3190
  asr_JsRiscV_$callClinit();
3185
3191
  var$4 = var$2;
@@ -3195,7 +3201,7 @@ var asr_JsRiscV_readMemoryBytes$exported$30 = (var$1, var$2, var$3) => {
3195
3201
  }
3196
3202
  return otji_JS_wrap0(var$6);
3197
3203
  };
3198
- var asr_JsRiscV_getStackPointer$exported$31 = (var$1) => {
3204
+ var asr_JsRiscV_getStackPointer$exported$32 = (var$1) => {
3199
3205
  asr_JsRiscV_$callClinit();
3200
3206
  var$1;
3201
3207
  return Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
@@ -3274,9 +3280,9 @@ var asr_JsRiscV_getInstructionSet$exported$2 = () => {
3274
3280
  if (asr_Globals_instructionSet === null)
3275
3281
  asr_RARS_initializeRISCV();
3276
3282
  var$1 = ju_Collection_stream(asr_Globals_instructionSet.$instructionList);
3277
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_34_0();
3283
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_35_0();
3278
3284
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
3279
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_34_1();
3285
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_35_1();
3280
3286
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
3281
3287
  };
3282
3288
  var asr_JsRiscV__clinit_ = () => {
@@ -3288,12 +3294,13 @@ var asr_JsRiscV__clinit_ = () => {
3288
3294
  jur_AbstractSet__clinit_();
3289
3295
  jur_AbstractCharClass$PredefinedCharacterClasses__clinit_();
3290
3296
  jur_AbstractCharClass__clinit_();
3291
- asr_Settings$Bool__clinit_();
3292
- jl_Boolean__clinit_();
3297
+ asrr_InstructionSet__clinit_();
3293
3298
  asrrh_MemoryConfigurations__clinit_();
3294
3299
  ju_Vector__clinit_();
3295
3300
  asra_SymbolTable__clinit_();
3296
3301
  asru_SystemIO__clinit_();
3302
+ asr_Settings$Bool__clinit_();
3303
+ jl_Boolean__clinit_();
3297
3304
  asrr_Instruction__clinit_();
3298
3305
  ju_Collections__clinit_();
3299
3306
  asrr_AbstractSyscall__clinit_();
@@ -3323,9 +3330,9 @@ var asr_JsRiscV__clinit_ = () => {
3323
3330
  jnc_CoderResult__clinit_();
3324
3331
  jn_ByteOrder__clinit_();
3325
3332
  asrjt_Float32__clinit_();
3326
- jm_BigInteger__clinit_();
3327
3333
  asrjt_Float64__clinit_();
3328
3334
  asrjo_Arithmetic__clinit_();
3335
+ jm_BigInteger__clinit_();
3329
3336
  asrj_RoundingMode__clinit_();
3330
3337
  asrj_Flags__clinit_();
3331
3338
  asrji_ExactFloat__clinit_();
@@ -4004,8 +4011,8 @@ var asr_RARS_simulate = ($this, $limit) => {
4004
4011
  $rt_nativeThread().push($this, $limit, var$2, $ptr);
4005
4012
  };
4006
4013
  var juf_Function = $rt_classWithoutFields(0);
4007
- var asr_JsRiscV$getInstructionSet$lambda$_34_0 = $rt_classWithoutFields();
4008
- var asr_JsRiscV$getInstructionSet$lambda$_34_0_apply = (var$0, var$1) => {
4014
+ var asr_JsRiscV$getInstructionSet$lambda$_35_0 = $rt_classWithoutFields();
4015
+ var asr_JsRiscV$getInstructionSet$lambda$_35_0_apply = (var$0, var$1) => {
4009
4016
  let var$2, var$3;
4010
4017
  var$1 = var$1;
4011
4018
  var$2 = new asr_JsInstruction();
@@ -4021,8 +4028,8 @@ var asr_JsRiscV$getInstructionSet$lambda$_34_0_apply = (var$0, var$1) => {
4021
4028
  return var$2;
4022
4029
  };
4023
4030
  var juf_IntFunction = $rt_classWithoutFields(0);
4024
- var asr_JsRiscV$getInstructionSet$lambda$_34_1 = $rt_classWithoutFields();
4025
- var asr_JsRiscV$getInstructionSet$lambda$_34_1_apply = (var$0, var$1) => {
4031
+ var asr_JsRiscV$getInstructionSet$lambda$_35_1 = $rt_classWithoutFields();
4032
+ var asr_JsRiscV$getInstructionSet$lambda$_35_1_apply = (var$0, var$1) => {
4026
4033
  asr_JsRiscV_$callClinit();
4027
4034
  return $rt_createArray(asr_JsInstruction, var$1);
4028
4035
  };
@@ -4349,12 +4356,7 @@ function asrr_InstructionSet() {
4349
4356
  a.$opcodeMatchMaps = null;
4350
4357
  }
4351
4358
  var asrr_InstructionSet_rv64 = 0;
4352
- var asrr_InstructionSet_$callClinit = () => {
4353
- asrr_InstructionSet_$callClinit = $rt_eraseClinit(asrr_InstructionSet);
4354
- asrr_InstructionSet__clinit_();
4355
- };
4356
4359
  var asrr_InstructionSet__init_0 = ($this) => {
4357
- asrr_InstructionSet_$callClinit();
4358
4360
  $this.$instructionList = ju_ArrayList__init_();
4359
4361
  };
4360
4362
  var asrr_InstructionSet__init_ = () => {
@@ -4466,12 +4468,7 @@ var asrr_InstructionSet_matchOperator = ($this, $name) => {
4466
4468
  }
4467
4469
  return $matchingInstructions;
4468
4470
  };
4469
- var asrr_InstructionSet_processJump = ($targetAddress) => {
4470
- asrr_InstructionSet_$callClinit();
4471
- asrrh_RegisterFile_setProgramCounter($targetAddress);
4472
- };
4473
4471
  var asrr_InstructionSet_processReturnAddress = ($register) => {
4474
- asrr_InstructionSet_$callClinit();
4475
4472
  asrrh_RegisterFile_updateRegister($register, Long_fromInt(asrrh_RegisterFile_getProgramCounter()));
4476
4473
  };
4477
4474
  var asrr_InstructionSet_addBasicInstructions = ($this) => {
@@ -4584,7 +4581,6 @@ var asrr_InstructionSet_addBasicInstructions = ($this) => {
4584
4581
  ju_ArrayList_add($this.$instructionList, asrri_WFI__init_());
4585
4582
  ju_ArrayList_add($this.$instructionList, asrri_XOR__init_());
4586
4583
  ju_ArrayList_add($this.$instructionList, asrri_XORI__init_0());
4587
- asrr_InstructionSet_$callClinit();
4588
4584
  if (asrr_InstructionSet_rv64) {
4589
4585
  ju_ArrayList_add($this.$instructionList, asrri_ADDW__init_());
4590
4586
  ju_ArrayList_add($this.$instructionList, asrri_ADDIW__init_0());
@@ -4619,7 +4615,7 @@ var asrr_InstructionSet_addBasicInstructions = ($this) => {
4619
4615
  }
4620
4616
  };
4621
4617
  var asrr_InstructionSet__clinit_ = () => {
4622
- asrr_InstructionSet_rv64 = asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_RV64_ENABLED);
4618
+ asrr_InstructionSet_rv64 = 0;
4623
4619
  };
4624
4620
  function ju_Observable() {
4625
4621
  let a = this;
@@ -6107,6 +6103,70 @@ var ju_ArrayList_checkIndex = ($this, $index) => {
6107
6103
  jl_Throwable__init_(var$2);
6108
6104
  $rt_throw(var$2);
6109
6105
  };
6106
+ var asrrh_MemoryConfigurations = $rt_classWithoutFields();
6107
+ var asrrh_MemoryConfigurations_configurations = null;
6108
+ var asrrh_MemoryConfigurations_defaultConfiguration = null;
6109
+ var asrrh_MemoryConfigurations_currentConfiguration = null;
6110
+ var asrrh_MemoryConfigurations_configurationItemNames = null;
6111
+ var asrrh_MemoryConfigurations_defaultConfigurationItemValues = null;
6112
+ var asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = null;
6113
+ var asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = null;
6114
+ var asrrh_MemoryConfigurations_buildConfigurationCollection = () => {
6115
+ let var$1, var$2, var$3, var$4;
6116
+ if (asrrh_MemoryConfigurations_configurations === null) {
6117
+ var$1 = ju_ArrayList__init_();
6118
+ asrrh_MemoryConfigurations_configurations = var$1;
6119
+ ju_ArrayList_add(var$1, asrrh_MemoryConfiguration__init_($rt_s(127), $rt_s(127), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_defaultConfigurationItemValues));
6120
+ ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(128), $rt_s(129), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues));
6121
+ ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(130), $rt_s(131), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues));
6122
+ var$2 = ju_ArrayList_get(asrrh_MemoryConfigurations_configurations, 0);
6123
+ asrrh_MemoryConfigurations_defaultConfiguration = var$2;
6124
+ asrrh_MemoryConfigurations_currentConfiguration = var$2;
6125
+ var$3 = asr_Globals_getSettings().$stringSettingsValues.data[3];
6126
+ if (asrrh_MemoryConfigurations_configurations === null)
6127
+ asrrh_MemoryConfigurations_buildConfigurationCollection();
6128
+ var$4 = ju_AbstractList_iterator(asrrh_MemoryConfigurations_configurations);
6129
+ a: {
6130
+ while (true) {
6131
+ if (!ju_AbstractList$1_hasNext(var$4)) {
6132
+ var$2 = null;
6133
+ break a;
6134
+ }
6135
+ var$2 = ju_AbstractList$1_next(var$4);
6136
+ if (jl_String_equals(var$3, var$2.$configurationIdentifier))
6137
+ break;
6138
+ }
6139
+ }
6140
+ if (var$2 !== null && var$2 !== asrrh_MemoryConfigurations_currentConfiguration) {
6141
+ asrrh_MemoryConfigurations_currentConfiguration = var$2;
6142
+ asrrh_Memory_clear(asr_Globals_memory);
6143
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(132)), Long_fromInt(asrrh_MemoryConfiguration_getGlobalPointer(var$2)));
6144
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(133)), Long_fromInt(asrrh_MemoryConfiguration_getStackPointer(var$2)));
6145
+ asrrh_Register_changeResetValue(asrrh_RegisterFile_programCounter, Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6146
+ asrrh_RegisterFile_initializeProgramCounter(asrrh_MemoryConfiguration_getTextBaseAddress(var$2));
6147
+ asrrh_RegisterFile_resetRegisters();
6148
+ }
6149
+ }
6150
+ };
6151
+ var asrrh_MemoryConfigurations_getCurrentConfiguration = () => {
6152
+ if (asrrh_MemoryConfigurations_currentConfiguration === null)
6153
+ asrrh_MemoryConfigurations_buildConfigurationCollection();
6154
+ return asrrh_MemoryConfigurations_currentConfiguration;
6155
+ };
6156
+ var asrrh_MemoryConfigurations__clinit_ = () => {
6157
+ asrrh_MemoryConfigurations_configurations = null;
6158
+ 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)]);
6159
+ asrrh_MemoryConfigurations_defaultConfigurationItemValues = $rt_createIntArrayFromData([4194304, 268435456, 268435456, 268468224, 268500992, 268697600, 2147479548, 2147483644, 2147483647, -2147483648, -65536, -1, 2147483647, 268435452, 268697600, -1]);
6160
+ asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([12288, 0, 4096, 6144, 0, 8192, 12284, 12284, 16383, 16384, 32512, 32767, 12287, 16380, 8192, 32767]);
6161
+ asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([0, 4096, 4096, 6144, 8192, 12288, 16380, 16380, 16383, 16384, 32512, 32767, 16383, 4092, 12288, 32767]);
6162
+ };
6163
+ var asrc_ConfigMap = $rt_classWithoutFields(ju_HashMap);
6164
+ var asrc_ConfigMap_getIntegerValue = ($this, $key) => {
6165
+ return jl_Integer_parseInt0(ju_HashMap_get($this, $key));
6166
+ };
6167
+ var asrc_SettingsProperties = $rt_classWithoutFields(asrc_ConfigMap);
6168
+ var asrc_ConfigProperties = $rt_classWithoutFields(asrc_ConfigMap);
6169
+ var jl_IllegalArgumentException = $rt_classWithoutFields(jl_RuntimeException);
6110
6170
  function jl_Enum() {
6111
6171
  let a = this;
6112
6172
  jl_Object.call(a);
@@ -6146,7 +6206,7 @@ var jl_Enum_compareTo = ($this, var$1) => {
6146
6206
  var$1 = jl_String_valueOf(jl_Enum_getDeclaringClass(var$1));
6147
6207
  var$4 = new jl_StringBuilder();
6148
6208
  jl_AbstractStringBuilder__init_(var$4);
6149
- jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(var$4, $rt_s(127)), var$3), $rt_s(128)), var$1);
6209
+ jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(var$4, $rt_s(150)), var$3), $rt_s(151)), var$1);
6150
6210
  jl_Throwable__init_0(var$2, jl_AbstractStringBuilder_toString(var$4));
6151
6211
  $rt_throw(var$2);
6152
6212
  };
@@ -6200,28 +6260,28 @@ var asr_Settings$Bool_getName = ($this) => {
6200
6260
  };
6201
6261
  var asr_Settings$Bool__clinit_ = () => {
6202
6262
  let var$1, var$2, var$3;
6203
- asr_Settings$Bool_EXTENDED_ASSEMBLER_ENABLED = asr_Settings$Bool__init_($rt_s(129), 0, $rt_s(94), 1);
6204
- asr_Settings$Bool_ASSEMBLE_ON_OPEN = asr_Settings$Bool__init_($rt_s(130), 1, $rt_s(85), 0);
6205
- asr_Settings$Bool_ASSEMBLE_OPEN = asr_Settings$Bool__init_($rt_s(131), 2, $rt_s(132), 0);
6206
- asr_Settings$Bool_ASSEMBLE_ALL = asr_Settings$Bool__init_($rt_s(133), 3, $rt_s(83), 0);
6207
- asr_Settings$Bool_LABEL_WINDOW_VISIBILITY = asr_Settings$Bool__init_($rt_s(134), 4, $rt_s(95), 0);
6208
- asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX = asr_Settings$Bool__init_($rt_s(135), 5, $rt_s(90), 1);
6209
- asr_Settings$Bool_DISPLAY_VALUES_IN_HEX = asr_Settings$Bool__init_($rt_s(136), 6, $rt_s(91), 1);
6210
- asr_Settings$Bool_EXCEPTION_HANDLER_ENABLED = asr_Settings$Bool__init_($rt_s(137), 7, $rt_s(96), 0);
6211
- asr_Settings$Bool_EDITOR_LINE_NUMBERS_DISPLAYED = asr_Settings$Bool__init_($rt_s(138), 8, $rt_s(93), 1);
6212
- asr_Settings$Bool_WARNINGS_ARE_ERRORS = asr_Settings$Bool__init_($rt_s(139), 9, $rt_s(100), 0);
6213
- asr_Settings$Bool_PROGRAM_ARGUMENTS = asr_Settings$Bool__init_($rt_s(140), 10, $rt_s(97), 0);
6214
- asr_Settings$Bool_DATA_SEGMENT_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(141), 11, $rt_s(87), 1);
6215
- asr_Settings$Bool_REGISTERS_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(142), 12, $rt_s(98), 1);
6216
- asr_Settings$Bool_START_AT_MAIN = asr_Settings$Bool__init_($rt_s(143), 13, $rt_s(99), 0);
6217
- asr_Settings$Bool_EDITOR_CURRENT_LINE_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(144), 14, $rt_s(92), 1);
6218
- asr_Settings$Bool_POPUP_INSTRUCTION_GUIDANCE = asr_Settings$Bool__init_($rt_s(145), 15, $rt_s(101), 1);
6219
- asr_Settings$Bool_POPUP_SYSCALL_INPUT = asr_Settings$Bool__init_($rt_s(146), 16, $rt_s(147), 0);
6220
- asr_Settings$Bool_GENERIC_TEXT_EDITOR = asr_Settings$Bool__init_($rt_s(148), 17, $rt_s(149), 0);
6221
- asr_Settings$Bool_AUTO_INDENT = asr_Settings$Bool__init_($rt_s(150), 18, $rt_s(151), 1);
6222
- asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED = asr_Settings$Bool__init_($rt_s(152), 19, $rt_s(153), 0);
6223
- asr_Settings$Bool_RV64_ENABLED = asr_Settings$Bool__init_($rt_s(154), 20, $rt_s(155), 0);
6224
- var$1 = asr_Settings$Bool__init_($rt_s(156), 21, $rt_s(157), 0);
6263
+ asr_Settings$Bool_EXTENDED_ASSEMBLER_ENABLED = asr_Settings$Bool__init_($rt_s(152), 0, $rt_s(94), 1);
6264
+ asr_Settings$Bool_ASSEMBLE_ON_OPEN = asr_Settings$Bool__init_($rt_s(153), 1, $rt_s(85), 0);
6265
+ asr_Settings$Bool_ASSEMBLE_OPEN = asr_Settings$Bool__init_($rt_s(154), 2, $rt_s(155), 0);
6266
+ asr_Settings$Bool_ASSEMBLE_ALL = asr_Settings$Bool__init_($rt_s(156), 3, $rt_s(83), 0);
6267
+ asr_Settings$Bool_LABEL_WINDOW_VISIBILITY = asr_Settings$Bool__init_($rt_s(157), 4, $rt_s(95), 0);
6268
+ asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX = asr_Settings$Bool__init_($rt_s(158), 5, $rt_s(90), 1);
6269
+ asr_Settings$Bool_DISPLAY_VALUES_IN_HEX = asr_Settings$Bool__init_($rt_s(159), 6, $rt_s(91), 1);
6270
+ asr_Settings$Bool_EXCEPTION_HANDLER_ENABLED = asr_Settings$Bool__init_($rt_s(160), 7, $rt_s(96), 0);
6271
+ asr_Settings$Bool_EDITOR_LINE_NUMBERS_DISPLAYED = asr_Settings$Bool__init_($rt_s(161), 8, $rt_s(93), 1);
6272
+ asr_Settings$Bool_WARNINGS_ARE_ERRORS = asr_Settings$Bool__init_($rt_s(162), 9, $rt_s(100), 0);
6273
+ asr_Settings$Bool_PROGRAM_ARGUMENTS = asr_Settings$Bool__init_($rt_s(163), 10, $rt_s(97), 0);
6274
+ asr_Settings$Bool_DATA_SEGMENT_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(164), 11, $rt_s(87), 1);
6275
+ asr_Settings$Bool_REGISTERS_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(165), 12, $rt_s(98), 1);
6276
+ asr_Settings$Bool_START_AT_MAIN = asr_Settings$Bool__init_($rt_s(166), 13, $rt_s(99), 0);
6277
+ asr_Settings$Bool_EDITOR_CURRENT_LINE_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(167), 14, $rt_s(92), 1);
6278
+ asr_Settings$Bool_POPUP_INSTRUCTION_GUIDANCE = asr_Settings$Bool__init_($rt_s(168), 15, $rt_s(101), 1);
6279
+ asr_Settings$Bool_POPUP_SYSCALL_INPUT = asr_Settings$Bool__init_($rt_s(169), 16, $rt_s(170), 0);
6280
+ asr_Settings$Bool_GENERIC_TEXT_EDITOR = asr_Settings$Bool__init_($rt_s(171), 17, $rt_s(172), 0);
6281
+ asr_Settings$Bool_AUTO_INDENT = asr_Settings$Bool__init_($rt_s(173), 18, $rt_s(174), 1);
6282
+ asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED = asr_Settings$Bool__init_($rt_s(175), 19, $rt_s(176), 0);
6283
+ asr_Settings$Bool_RV64_ENABLED = asr_Settings$Bool__init_($rt_s(177), 20, $rt_s(178), 0);
6284
+ var$1 = asr_Settings$Bool__init_($rt_s(179), 21, $rt_s(180), 0);
6225
6285
  asr_Settings$Bool_DERIVE_CURRENT_WORKING_DIRECTORY = var$1;
6226
6286
  var$2 = $rt_createArray(asr_Settings$Bool, 22);
6227
6287
  var$3 = var$2.data;
@@ -6249,70 +6309,6 @@ var asr_Settings$Bool__clinit_ = () => {
6249
6309
  var$3[21] = var$1;
6250
6310
  asr_Settings$Bool_$VALUES = var$2;
6251
6311
  };
6252
- var asrrh_MemoryConfigurations = $rt_classWithoutFields();
6253
- var asrrh_MemoryConfigurations_configurations = null;
6254
- var asrrh_MemoryConfigurations_defaultConfiguration = null;
6255
- var asrrh_MemoryConfigurations_currentConfiguration = null;
6256
- var asrrh_MemoryConfigurations_configurationItemNames = null;
6257
- var asrrh_MemoryConfigurations_defaultConfigurationItemValues = null;
6258
- var asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = null;
6259
- var asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = null;
6260
- var asrrh_MemoryConfigurations_buildConfigurationCollection = () => {
6261
- let var$1, var$2, var$3, var$4;
6262
- if (asrrh_MemoryConfigurations_configurations === null) {
6263
- var$1 = ju_ArrayList__init_();
6264
- asrrh_MemoryConfigurations_configurations = var$1;
6265
- ju_ArrayList_add(var$1, asrrh_MemoryConfiguration__init_($rt_s(158), $rt_s(158), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_defaultConfigurationItemValues));
6266
- ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(159), $rt_s(160), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues));
6267
- ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(161), $rt_s(162), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues));
6268
- var$2 = ju_ArrayList_get(asrrh_MemoryConfigurations_configurations, 0);
6269
- asrrh_MemoryConfigurations_defaultConfiguration = var$2;
6270
- asrrh_MemoryConfigurations_currentConfiguration = var$2;
6271
- var$3 = asr_Globals_getSettings().$stringSettingsValues.data[3];
6272
- if (asrrh_MemoryConfigurations_configurations === null)
6273
- asrrh_MemoryConfigurations_buildConfigurationCollection();
6274
- var$4 = ju_AbstractList_iterator(asrrh_MemoryConfigurations_configurations);
6275
- a: {
6276
- while (true) {
6277
- if (!ju_AbstractList$1_hasNext(var$4)) {
6278
- var$2 = null;
6279
- break a;
6280
- }
6281
- var$2 = ju_AbstractList$1_next(var$4);
6282
- if (jl_String_equals(var$3, var$2.$configurationIdentifier))
6283
- break;
6284
- }
6285
- }
6286
- if (var$2 !== null && var$2 !== asrrh_MemoryConfigurations_currentConfiguration) {
6287
- asrrh_MemoryConfigurations_currentConfiguration = var$2;
6288
- asrrh_Memory_clear(asr_Globals_memory);
6289
- asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(163)), Long_fromInt(asrrh_MemoryConfiguration_getGlobalPointer(var$2)));
6290
- asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(164)), Long_fromInt(asrrh_MemoryConfiguration_getStackPointer(var$2)));
6291
- asrrh_Register_changeResetValue(asrrh_RegisterFile_programCounter, Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6292
- asrrh_RegisterFile_initializeProgramCounter(asrrh_MemoryConfiguration_getTextBaseAddress(var$2));
6293
- asrrh_RegisterFile_resetRegisters();
6294
- }
6295
- }
6296
- };
6297
- var asrrh_MemoryConfigurations_getCurrentConfiguration = () => {
6298
- if (asrrh_MemoryConfigurations_currentConfiguration === null)
6299
- asrrh_MemoryConfigurations_buildConfigurationCollection();
6300
- return asrrh_MemoryConfigurations_currentConfiguration;
6301
- };
6302
- var asrrh_MemoryConfigurations__clinit_ = () => {
6303
- asrrh_MemoryConfigurations_configurations = null;
6304
- 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)]);
6305
- asrrh_MemoryConfigurations_defaultConfigurationItemValues = $rt_createIntArrayFromData([4194304, 268435456, 268435456, 268468224, 268500992, 268697600, 2147479548, 2147483644, 2147483647, -2147483648, -65536, -1, 2147483647, 268435452, 268697600, -1]);
6306
- asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([12288, 0, 4096, 6144, 0, 8192, 12284, 12284, 16383, 16384, 32512, 32767, 12287, 16380, 8192, 32767]);
6307
- asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([0, 4096, 4096, 6144, 8192, 12288, 16380, 16380, 16383, 16384, 32512, 32767, 16383, 4092, 12288, 32767]);
6308
- };
6309
- var asrc_ConfigMap = $rt_classWithoutFields(ju_HashMap);
6310
- var asrc_ConfigMap_getIntegerValue = ($this, $key) => {
6311
- return jl_Integer_parseInt0(ju_HashMap_get($this, $key));
6312
- };
6313
- var asrc_SettingsProperties = $rt_classWithoutFields(asrc_ConfigMap);
6314
- var asrc_ConfigProperties = $rt_classWithoutFields(asrc_ConfigMap);
6315
- var jl_IllegalArgumentException = $rt_classWithoutFields(jl_RuntimeException);
6316
6312
  function jl_Boolean() {
6317
6313
  jl_Object.call(this);
6318
6314
  this.$value4 = 0;
@@ -7039,184 +7035,19 @@ var jl_System_currentTimeMillis = () => {
7039
7035
  return Long_fromNumber((/* @__PURE__ */ new Date()).getTime());
7040
7036
  };
7041
7037
  var jl_CloneNotSupportedException = $rt_classWithoutFields(jl_Exception);
7042
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7043
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7044
- let var$2, var$3, var$4, var$5;
7045
- var$1 = var$1;
7046
- asr_JsRiscV_$callClinit();
7047
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7048
- var$3 = var$2.data;
7049
- var$4 = 0;
7050
- while (var$4 < asra_TokenList_size(var$1)) {
7051
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7052
- var$4 = var$4 + 1 | 0;
7053
- }
7054
- var$5 = new asr_JsRiscVTokenizedLine();
7055
- var$5.$line0 = var$1.$processedLine;
7056
- var$5.$tokens0 = var$2;
7057
- return var$5;
7058
- };
7059
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7060
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7061
- asr_JsRiscV_$callClinit();
7062
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7063
- };
7064
- function asr_JsRiscVTokenizedLine() {
7065
- let a = this;
7066
- jl_Object.call(a);
7067
- a.$line0 = null;
7068
- a.$tokens0 = null;
7069
- }
7070
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7071
- return $rt_ustr(var$1.$line0);
7072
- };
7073
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7074
- return otji_JS_wrap(var$1.$tokens0);
7075
- };
7076
- var asrrh_RegisterFile = $rt_classWithoutFields();
7077
- var asrrh_RegisterFile_instance = null;
7078
- var asrrh_RegisterFile_programCounter = null;
7079
- var asrrh_RegisterFile_$callClinit = () => {
7080
- asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7081
- asrrh_RegisterFile__clinit_();
7082
- };
7083
- var asrrh_RegisterFile_updateRegister = ($num, $val) => {
7084
- let var$3;
7085
- asrrh_RegisterFile_$callClinit();
7086
- if ($num) {
7087
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7088
- asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7089
- else {
7090
- var$3 = asr_Globals_program.$backStepper;
7091
- $val = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7092
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
7093
- }
7094
- }
7095
- };
7096
- var asrrh_RegisterFile_updateRegister0 = ($name, $val) => {
7097
- asrrh_RegisterFile_$callClinit();
7098
- asrrh_RegisterFile_updateRegister(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name).$number, $val);
7099
- };
7100
- var asrrh_RegisterFile_getValue0 = ($num) => {
7101
- asrrh_RegisterFile_$callClinit();
7102
- return Long_lo(asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num));
7103
- };
7104
- var asrrh_RegisterFile_getValueLong = ($num) => {
7105
- asrrh_RegisterFile_$callClinit();
7106
- return asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num);
7107
- };
7108
- var asrrh_RegisterFile_getValue = ($name) => {
7109
- asrrh_RegisterFile_$callClinit();
7110
- return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_RegisterFile_instance, $name));
7111
- };
7112
- var asrrh_RegisterFile_getRegister = ($name) => {
7113
- asrrh_RegisterFile_$callClinit();
7114
- if (!jl_String_equals($name, $rt_s(211)))
7115
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name);
7116
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(212));
7117
- };
7118
- var asrrh_RegisterFile_initializeProgramCounter = ($value) => {
7119
- asrrh_RegisterFile_$callClinit();
7120
- asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7121
- };
7122
- var asrrh_RegisterFile_initializeProgramCounter0 = ($startAtMain) => {
7123
- let $mainAddr;
7124
- asrrh_RegisterFile_$callClinit();
7125
- asr_Globals_$callClinit();
7126
- $mainAddr = asra_SymbolTable_getAddress(asr_Globals_symbolTable, asra_SymbolTable_startLabel);
7127
- if ($startAtMain && $mainAddr != -1 && asrrh_Memory_inTextSegment($mainAddr))
7128
- asrrh_RegisterFile_initializeProgramCounter($mainAddr);
7129
- else
7130
- asrrh_RegisterFile_initializeProgramCounter(Long_lo(asrrh_RegisterFile_programCounter.$resetValue0));
7131
- };
7132
- var asrrh_RegisterFile_getStackPointerRegister = () => {
7133
- asrrh_RegisterFile_$callClinit();
7134
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(164));
7135
- };
7136
- var asrrh_RegisterFile_setProgramCounter = ($value) => {
7137
- let $old, var$3;
7138
- asrrh_RegisterFile_$callClinit();
7139
- $old = Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7140
- asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7141
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
7142
- var$3 = asr_Globals_program.$backStepper;
7143
- $value = $old + -4 | 0;
7144
- asrs_BackStepper$BackstepStack_push0(var$3.$backSteps, asrs_BackStepper$Action_PC_RESTORE, $value, $value);
7145
- }
7146
- return $old;
7147
- };
7148
- var asrrh_RegisterFile_getProgramCounter = () => {
7149
- asrrh_RegisterFile_$callClinit();
7150
- return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7151
- };
7152
- var asrrh_RegisterFile_resetRegisters = () => {
7153
- asrrh_RegisterFile_$callClinit();
7154
- asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
7155
- asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_START_AT_MAIN));
7156
- };
7157
- var asrrh_RegisterFile_incrementPC = () => {
7158
- let var$1;
7159
- asrrh_RegisterFile_$callClinit();
7160
- var$1 = asrrh_RegisterFile_programCounter;
7161
- asrrh_Register_setValue(var$1, Long_add(asrrh_Register_getValue(var$1), Long_fromInt(4)));
7162
- };
7163
- var asrrh_RegisterFile__clinit_ = () => {
7164
- let var$1, var$2, var$3, var$4;
7165
- var$1 = new asrrh_RegisterBlock();
7166
- var$2 = $rt_createArray(asrrh_Register, 32);
7167
- var$3 = var$2.data;
7168
- var$3[0] = asrrh_Register__init_($rt_s(213), 0, Long_ZERO);
7169
- var$3[1] = asrrh_Register__init_($rt_s(214), 1, Long_ZERO);
7170
- var$4 = new asrrh_Register();
7171
- asrrh_Memory_$callClinit();
7172
- asrrh_Register__init_0(var$4, $rt_s(164), 2, Long_fromInt(asrrh_Memory_stackPointer));
7173
- var$3[2] = var$4;
7174
- var$3[3] = asrrh_Register__init_($rt_s(163), 3, Long_fromInt(asrrh_Memory_globalPointer));
7175
- var$3[4] = asrrh_Register__init_($rt_s(215), 4, Long_ZERO);
7176
- var$3[5] = asrrh_Register__init_($rt_s(216), 5, Long_ZERO);
7177
- var$3[6] = asrrh_Register__init_($rt_s(217), 6, Long_ZERO);
7178
- var$3[7] = asrrh_Register__init_($rt_s(218), 7, Long_ZERO);
7179
- var$3[8] = asrrh_Register__init_($rt_s(212), 8, Long_ZERO);
7180
- var$3[9] = asrrh_Register__init_($rt_s(219), 9, Long_ZERO);
7181
- var$3[10] = asrrh_Register__init_($rt_s(220), 10, Long_ZERO);
7182
- var$3[11] = asrrh_Register__init_($rt_s(221), 11, Long_ZERO);
7183
- var$3[12] = asrrh_Register__init_($rt_s(222), 12, Long_ZERO);
7184
- var$3[13] = asrrh_Register__init_($rt_s(223), 13, Long_ZERO);
7185
- var$3[14] = asrrh_Register__init_($rt_s(224), 14, Long_ZERO);
7186
- var$3[15] = asrrh_Register__init_($rt_s(225), 15, Long_ZERO);
7187
- var$3[16] = asrrh_Register__init_($rt_s(226), 16, Long_ZERO);
7188
- var$3[17] = asrrh_Register__init_($rt_s(227), 17, Long_ZERO);
7189
- var$3[18] = asrrh_Register__init_($rt_s(228), 18, Long_ZERO);
7190
- var$3[19] = asrrh_Register__init_($rt_s(229), 19, Long_ZERO);
7191
- var$3[20] = asrrh_Register__init_($rt_s(230), 20, Long_ZERO);
7192
- var$3[21] = asrrh_Register__init_($rt_s(231), 21, Long_ZERO);
7193
- var$3[22] = asrrh_Register__init_($rt_s(232), 22, Long_ZERO);
7194
- var$3[23] = asrrh_Register__init_($rt_s(233), 23, Long_ZERO);
7195
- var$3[24] = asrrh_Register__init_($rt_s(234), 24, Long_ZERO);
7196
- var$3[25] = asrrh_Register__init_($rt_s(235), 25, Long_ZERO);
7197
- var$3[26] = asrrh_Register__init_($rt_s(236), 26, Long_ZERO);
7198
- var$3[27] = asrrh_Register__init_($rt_s(237), 27, Long_ZERO);
7199
- var$3[28] = asrrh_Register__init_($rt_s(238), 28, Long_ZERO);
7200
- var$3[29] = asrrh_Register__init_($rt_s(239), 29, Long_ZERO);
7201
- var$3[30] = asrrh_Register__init_($rt_s(240), 30, Long_ZERO);
7202
- var$3[31] = asrrh_Register__init_($rt_s(241), 31, Long_ZERO);
7203
- asrrh_RegisterBlock__init_(var$1, 120, var$2);
7204
- asrrh_RegisterFile_instance = var$1;
7205
- asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7206
- };
7207
7038
  var ju_Arrays = $rt_classWithoutFields();
7208
- var ju_Arrays_copyOf1 = ($array, $length) => {
7209
- let $result, var$4, $sz, $i;
7210
- $array = $array.data;
7211
- $result = $rt_createCharArray($length);
7212
- var$4 = $result.data;
7213
- $sz = jl_Math_min($length, $array.length);
7039
+ var ju_Arrays_copyOf1 = (var$1, var$2) => {
7040
+ let var$3, var$4, var$5, $i;
7041
+ var$1 = var$1.data;
7042
+ var$3 = $rt_createCharArray(var$2);
7043
+ var$4 = var$3.data;
7044
+ var$5 = jl_Math_min(var$2, var$1.length);
7214
7045
  $i = 0;
7215
- while ($i < $sz) {
7216
- var$4[$i] = $array[$i];
7046
+ while ($i < var$5) {
7047
+ var$4[$i] = var$1[$i];
7217
7048
  $i = $i + 1 | 0;
7218
7049
  }
7219
- return $result;
7050
+ return var$3;
7220
7051
  };
7221
7052
  var ju_Arrays_copyOf0 = ($array, $length) => {
7222
7053
  let $result, var$4, $sz, $i;
@@ -7395,8 +7226,8 @@ var ju_Arrays_stream = ($array) => {
7395
7226
  var$3.$size2 = var$4 - 0 | 0;
7396
7227
  return var$3;
7397
7228
  };
7398
- var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7399
- var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7229
+ var asr_JsRiscV$getUndoStack$lambda$_22_0 = $rt_classWithoutFields();
7230
+ var asr_JsRiscV$getUndoStack$lambda$_22_0_apply = (var$0, var$1) => {
7400
7231
  let var$2, var$3;
7401
7232
  var$1 = var$1;
7402
7233
  var$2 = new asr_JsBackStep();
@@ -7407,8 +7238,8 @@ var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7407
7238
  var$2.$param20 = Long_lo(var$1.$param2);
7408
7239
  return var$2;
7409
7240
  };
7410
- var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7411
- var asr_JsRiscV$getUndoStack$lambda$_21_1_apply = (var$0, var$1) => {
7241
+ var asr_JsRiscV$getUndoStack$lambda$_22_1 = $rt_classWithoutFields();
7242
+ var asr_JsRiscV$getUndoStack$lambda$_22_1_apply = (var$0, var$1) => {
7412
7243
  asr_JsRiscV_$callClinit();
7413
7244
  return $rt_createArray(asr_JsBackStep, var$1);
7414
7245
  };
@@ -7432,6 +7263,173 @@ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7432
7263
  var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7433
7264
  return var$1.$param10;
7434
7265
  };
7266
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7267
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7268
+ let var$2, var$3, var$4, var$5;
7269
+ var$1 = var$1;
7270
+ asr_JsRiscV_$callClinit();
7271
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7272
+ var$3 = var$2.data;
7273
+ var$4 = 0;
7274
+ while (var$4 < asra_TokenList_size(var$1)) {
7275
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7276
+ var$4 = var$4 + 1 | 0;
7277
+ }
7278
+ var$5 = new asr_JsRiscVTokenizedLine();
7279
+ var$5.$line0 = var$1.$processedLine;
7280
+ var$5.$tokens0 = var$2;
7281
+ return var$5;
7282
+ };
7283
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7284
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7285
+ asr_JsRiscV_$callClinit();
7286
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7287
+ };
7288
+ function asr_JsRiscVTokenizedLine() {
7289
+ let a = this;
7290
+ jl_Object.call(a);
7291
+ a.$line0 = null;
7292
+ a.$tokens0 = null;
7293
+ }
7294
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7295
+ return $rt_ustr(var$1.$line0);
7296
+ };
7297
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7298
+ return otji_JS_wrap(var$1.$tokens0);
7299
+ };
7300
+ var asrrh_RegisterFile = $rt_classWithoutFields();
7301
+ var asrrh_RegisterFile_instance = null;
7302
+ var asrrh_RegisterFile_programCounter = null;
7303
+ var asrrh_RegisterFile_$callClinit = () => {
7304
+ asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7305
+ asrrh_RegisterFile__clinit_();
7306
+ };
7307
+ var asrrh_RegisterFile_updateRegister = ($num, $val) => {
7308
+ let var$3;
7309
+ asrrh_RegisterFile_$callClinit();
7310
+ if ($num) {
7311
+ if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7312
+ asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7313
+ else {
7314
+ var$3 = asr_Globals_program.$backStepper;
7315
+ $val = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7316
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
7317
+ }
7318
+ }
7319
+ };
7320
+ var asrrh_RegisterFile_updateRegister0 = ($name, $val) => {
7321
+ asrrh_RegisterFile_$callClinit();
7322
+ asrrh_RegisterFile_updateRegister(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name).$number, $val);
7323
+ };
7324
+ var asrrh_RegisterFile_getValue0 = ($num) => {
7325
+ asrrh_RegisterFile_$callClinit();
7326
+ return Long_lo(asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num));
7327
+ };
7328
+ var asrrh_RegisterFile_getValueLong = ($num) => {
7329
+ asrrh_RegisterFile_$callClinit();
7330
+ return asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num);
7331
+ };
7332
+ var asrrh_RegisterFile_getValue = ($name) => {
7333
+ asrrh_RegisterFile_$callClinit();
7334
+ return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_RegisterFile_instance, $name));
7335
+ };
7336
+ var asrrh_RegisterFile_getRegister = ($name) => {
7337
+ asrrh_RegisterFile_$callClinit();
7338
+ if (!jl_String_equals($name, $rt_s(211)))
7339
+ return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name);
7340
+ return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(212));
7341
+ };
7342
+ var asrrh_RegisterFile_initializeProgramCounter = ($value) => {
7343
+ asrrh_RegisterFile_$callClinit();
7344
+ asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7345
+ };
7346
+ var asrrh_RegisterFile_initializeProgramCounter0 = ($startAtMain) => {
7347
+ let $mainAddr;
7348
+ asrrh_RegisterFile_$callClinit();
7349
+ asr_Globals_$callClinit();
7350
+ $mainAddr = asra_SymbolTable_getAddress(asr_Globals_symbolTable, asra_SymbolTable_startLabel);
7351
+ if ($startAtMain && $mainAddr != -1 && asrrh_Memory_inTextSegment($mainAddr))
7352
+ asrrh_RegisterFile_initializeProgramCounter($mainAddr);
7353
+ else
7354
+ asrrh_RegisterFile_initializeProgramCounter(Long_lo(asrrh_RegisterFile_programCounter.$resetValue0));
7355
+ };
7356
+ var asrrh_RegisterFile_getStackPointerRegister = () => {
7357
+ asrrh_RegisterFile_$callClinit();
7358
+ return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(133));
7359
+ };
7360
+ var asrrh_RegisterFile_setProgramCounter = ($value) => {
7361
+ let $old, var$3;
7362
+ asrrh_RegisterFile_$callClinit();
7363
+ $old = Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7364
+ asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7365
+ if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
7366
+ var$3 = asr_Globals_program.$backStepper;
7367
+ $value = $old + -4 | 0;
7368
+ asrs_BackStepper$BackstepStack_push0(var$3.$backSteps, asrs_BackStepper$Action_PC_RESTORE, $value, $value);
7369
+ }
7370
+ return $old;
7371
+ };
7372
+ var asrrh_RegisterFile_getProgramCounter = () => {
7373
+ asrrh_RegisterFile_$callClinit();
7374
+ return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7375
+ };
7376
+ var asrrh_RegisterFile_resetRegisters = () => {
7377
+ asrrh_RegisterFile_$callClinit();
7378
+ asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
7379
+ asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_START_AT_MAIN));
7380
+ };
7381
+ var asrrh_RegisterFile_incrementPC = () => {
7382
+ let var$1;
7383
+ asrrh_RegisterFile_$callClinit();
7384
+ var$1 = asrrh_RegisterFile_programCounter;
7385
+ asrrh_Register_setValue(var$1, Long_add(asrrh_Register_getValue(var$1), Long_fromInt(4)));
7386
+ };
7387
+ var asrrh_RegisterFile__clinit_ = () => {
7388
+ let var$1, var$2, var$3, var$4;
7389
+ var$1 = new asrrh_RegisterBlock();
7390
+ var$2 = $rt_createArray(asrrh_Register, 32);
7391
+ var$3 = var$2.data;
7392
+ var$3[0] = asrrh_Register__init_($rt_s(213), 0, Long_ZERO);
7393
+ var$3[1] = asrrh_Register__init_($rt_s(214), 1, Long_ZERO);
7394
+ var$4 = new asrrh_Register();
7395
+ asrrh_Memory_$callClinit();
7396
+ asrrh_Register__init_0(var$4, $rt_s(133), 2, Long_fromInt(asrrh_Memory_stackPointer));
7397
+ var$3[2] = var$4;
7398
+ var$3[3] = asrrh_Register__init_($rt_s(132), 3, Long_fromInt(asrrh_Memory_globalPointer));
7399
+ var$3[4] = asrrh_Register__init_($rt_s(215), 4, Long_ZERO);
7400
+ var$3[5] = asrrh_Register__init_($rt_s(216), 5, Long_ZERO);
7401
+ var$3[6] = asrrh_Register__init_($rt_s(217), 6, Long_ZERO);
7402
+ var$3[7] = asrrh_Register__init_($rt_s(218), 7, Long_ZERO);
7403
+ var$3[8] = asrrh_Register__init_($rt_s(212), 8, Long_ZERO);
7404
+ var$3[9] = asrrh_Register__init_($rt_s(219), 9, Long_ZERO);
7405
+ var$3[10] = asrrh_Register__init_($rt_s(220), 10, Long_ZERO);
7406
+ var$3[11] = asrrh_Register__init_($rt_s(221), 11, Long_ZERO);
7407
+ var$3[12] = asrrh_Register__init_($rt_s(222), 12, Long_ZERO);
7408
+ var$3[13] = asrrh_Register__init_($rt_s(223), 13, Long_ZERO);
7409
+ var$3[14] = asrrh_Register__init_($rt_s(224), 14, Long_ZERO);
7410
+ var$3[15] = asrrh_Register__init_($rt_s(225), 15, Long_ZERO);
7411
+ var$3[16] = asrrh_Register__init_($rt_s(226), 16, Long_ZERO);
7412
+ var$3[17] = asrrh_Register__init_($rt_s(227), 17, Long_ZERO);
7413
+ var$3[18] = asrrh_Register__init_($rt_s(228), 18, Long_ZERO);
7414
+ var$3[19] = asrrh_Register__init_($rt_s(229), 19, Long_ZERO);
7415
+ var$3[20] = asrrh_Register__init_($rt_s(230), 20, Long_ZERO);
7416
+ var$3[21] = asrrh_Register__init_($rt_s(231), 21, Long_ZERO);
7417
+ var$3[22] = asrrh_Register__init_($rt_s(232), 22, Long_ZERO);
7418
+ var$3[23] = asrrh_Register__init_($rt_s(233), 23, Long_ZERO);
7419
+ var$3[24] = asrrh_Register__init_($rt_s(234), 24, Long_ZERO);
7420
+ var$3[25] = asrrh_Register__init_($rt_s(235), 25, Long_ZERO);
7421
+ var$3[26] = asrrh_Register__init_($rt_s(236), 26, Long_ZERO);
7422
+ var$3[27] = asrrh_Register__init_($rt_s(237), 27, Long_ZERO);
7423
+ var$3[28] = asrrh_Register__init_($rt_s(238), 28, Long_ZERO);
7424
+ var$3[29] = asrrh_Register__init_($rt_s(239), 29, Long_ZERO);
7425
+ var$3[30] = asrrh_Register__init_($rt_s(240), 30, Long_ZERO);
7426
+ var$3[31] = asrrh_Register__init_($rt_s(241), 31, Long_ZERO);
7427
+ asrrh_RegisterBlock__init_(var$1, 120, var$2);
7428
+ asrrh_RegisterFile_instance = var$1;
7429
+ asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7430
+ };
7431
+ var juf_ToIntFunction = $rt_classWithoutFields(0);
7432
+ var asr_JsRiscV$getRegistersValues$lambda$_21_0 = $rt_classWithoutFields();
7435
7433
  function asr_JsProgramStatement() {
7436
7434
  let a = this;
7437
7435
  jl_Object.call(a);
@@ -7509,6 +7507,30 @@ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7509
7507
  var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7510
7508
  return $rt_ustr(var$1.$machineStatement0);
7511
7509
  };
7510
+ function asr_JsStackFrame() {
7511
+ let a = this;
7512
+ jl_Object.call(a);
7513
+ a.$pc3 = 0;
7514
+ a.$toAddress0 = 0;
7515
+ a.$sp = 0;
7516
+ a.$fp = 0;
7517
+ a.$registers = null;
7518
+ }
7519
+ var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7520
+ return var$1.$pc3;
7521
+ };
7522
+ var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7523
+ return var$1.$toAddress0;
7524
+ };
7525
+ var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7526
+ return otji_JS_wrap0(var$1.$registers);
7527
+ };
7528
+ var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7529
+ return var$1.$sp;
7530
+ };
7531
+ var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7532
+ return var$1.$fp;
7533
+ };
7512
7534
  function asr_JsCompilationResult() {
7513
7535
  let a = this;
7514
7536
  jl_Object.call(a);
@@ -7566,32 +7588,6 @@ var asr_AssemblyException__init_ = (var_0) => {
7566
7588
  asr_AssemblyException__init_0(var_1, var_0);
7567
7589
  return var_1;
7568
7590
  };
7569
- var juf_ToIntFunction = $rt_classWithoutFields(0);
7570
- var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7571
- function asr_JsStackFrame() {
7572
- let a = this;
7573
- jl_Object.call(a);
7574
- a.$pc3 = 0;
7575
- a.$toAddress0 = 0;
7576
- a.$sp = 0;
7577
- a.$fp = 0;
7578
- a.$registers = null;
7579
- }
7580
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7581
- return var$1.$pc3;
7582
- };
7583
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7584
- return var$1.$toAddress0;
7585
- };
7586
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7587
- return otji_JS_wrap0(var$1.$registers);
7588
- };
7589
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7590
- return var$1.$sp;
7591
- };
7592
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7593
- return var$1.$fp;
7594
- };
7595
7591
  var ju_Map$Entry = $rt_classWithoutFields(0);
7596
7592
  function ju_MapEntry() {
7597
7593
  let a = this;
@@ -7812,7 +7808,6 @@ var asrr_BasicInstruction__init_ = ($this, $example, $description, $instrFormat,
7812
7808
  };
7813
7809
  var asrr_BasicInstruction__init_0 = ($this, $example, $description, $instrFormat, $operMask, $onlyinrv64) => {
7814
7810
  asrr_BasicInstruction__init_($this, $example, $description, $instrFormat, $operMask);
7815
- asrr_InstructionSet_$callClinit();
7816
7811
  if (!asrr_InstructionSet_rv64 && $onlyinrv64) {
7817
7812
  $description = new jl_NullPointerException();
7818
7813
  $instrFormat = new jl_StringBuilder();
@@ -8502,7 +8497,6 @@ var asrri_Arithmetic__init_ = ($this, $usage, $description, $funct7, $funct3) =>
8502
8497
  var asrri_Arithmetic_simulate = ($this, $statement) => {
8503
8498
  let $operands;
8504
8499
  $operands = $statement.$operands;
8505
- asrr_InstructionSet_$callClinit();
8506
8500
  if (asrr_InstructionSet_rv64) {
8507
8501
  $operands = $operands.data;
8508
8502
  asrrh_RegisterFile_updateRegister($operands[0], $this.$compute(asrrh_RegisterFile_getValueLong($operands[1]), asrrh_RegisterFile_getValueLong($operands[2])));
@@ -8538,7 +8532,6 @@ var asrri_ImmediateInstruction__init_ = ($this, $usage, $description, $funct) =>
8538
8532
  var asrri_ImmediateInstruction_simulate = ($this, $statement) => {
8539
8533
  let $operands;
8540
8534
  $operands = $statement.$operands;
8541
- asrr_InstructionSet_$callClinit();
8542
8535
  if (!asrr_InstructionSet_rv64) {
8543
8536
  $operands = $operands.data;
8544
8537
  asrrh_RegisterFile_updateRegister($operands[0], Long_fromInt(asrri_ImmediateInstruction_computeW($this, asrrh_RegisterFile_getValue0($operands[1]), $operands[2] << 20 >> 20)));
@@ -8613,7 +8606,6 @@ var asrri_Branch_simulate = ($this, $statement) => {
8613
8606
  let var$2;
8614
8607
  if ($this.$willBranch($statement)) {
8615
8608
  var$2 = $statement.$operands.data[2];
8616
- asrr_InstructionSet_$callClinit();
8617
8609
  asrrh_RegisterFile_setProgramCounter((asrrh_RegisterFile_getProgramCounter() + var$2 | 0) - 4 | 0);
8618
8610
  }
8619
8611
  };
@@ -9010,7 +9002,6 @@ var asrri_ECALL__init_ = () => {
9010
9002
  var asrri_ECALL_simulate = ($this, $statement) => {
9011
9003
  let var$2, var$3, var$4, var$5;
9012
9004
  var$2 = asrrh_RegisterFile_getValue($rt_s(227));
9013
- asrr_InstructionSet_$callClinit();
9014
9005
  var$3 = asrr_SyscallLoader_findSyscall(var$2);
9015
9006
  if (var$3 === null) {
9016
9007
  var$3 = new asr_SimulationException();
@@ -10157,7 +10148,7 @@ var asrri_JAL_simulate = ($this, $statement) => {
10157
10148
  var$4.$registers0 = $operands;
10158
10149
  ju_ArrayList_add(asrrh_Stack_callStack, var$4);
10159
10150
  }
10160
- asrr_InstructionSet_processJump($address);
10151
+ asrrh_RegisterFile_setProgramCounter($address);
10161
10152
  };
10162
10153
  var asrri_JALR = $rt_classWithoutFields(asrr_BasicInstruction);
10163
10154
  var asrri_JALR__init_ = ($this) => {
@@ -10177,7 +10168,7 @@ var asrri_JALR_simulate = ($this, $statement) => {
10177
10168
  $statement = asrrh_Stack_callStack;
10178
10169
  ju_ArrayList_remove($statement, $statement.$size0 - 1 | 0);
10179
10170
  }
10180
- asrr_InstructionSet_processJump(($target + ($operands[2] << 20 >> 20) | 0) & -2);
10171
+ asrrh_RegisterFile_setProgramCounter(($target + ($operands[2] << 20 >> 20) | 0) & -2);
10181
10172
  };
10182
10173
  var asrri_Load = $rt_classWithoutFields(asrr_BasicInstruction);
10183
10174
  var asrri_Load__init_ = ($this, $usage, $description, $funct) => {
@@ -11803,6 +11794,15 @@ var asrrh_RegisterBlock_resetRegisters = ($this) => {
11803
11794
  var$3 = var$3 + 1 | 0;
11804
11795
  }
11805
11796
  };
11797
+ function asrrh_StackFrame() {
11798
+ let a = this;
11799
+ jl_Object.call(a);
11800
+ a.$pc4 = 0;
11801
+ a.$toAddress = 0;
11802
+ a.$sp0 = 0;
11803
+ a.$fp0 = 0;
11804
+ a.$registers0 = null;
11805
+ }
11806
11806
  function asr_ErrorList() {
11807
11807
  let a = this;
11808
11808
  jl_Object.call(a);
@@ -11888,15 +11888,6 @@ var asr_ErrorList_generateReport = ($this, $isWarning) => {
11888
11888
  }
11889
11889
  return jl_AbstractStringBuilder_toString($report);
11890
11890
  };
11891
- function asrrh_StackFrame() {
11892
- let a = this;
11893
- jl_Object.call(a);
11894
- a.$pc4 = 0;
11895
- a.$toAddress = 0;
11896
- a.$sp0 = 0;
11897
- a.$fp0 = 0;
11898
- a.$registers0 = null;
11899
- }
11900
11891
  function asrrh_MemoryConfiguration() {
11901
11892
  let a = this;
11902
11893
  jl_Object.call(a);
@@ -15933,7 +15924,6 @@ var jl_Thread__clinit_ = () => {
15933
15924
  };
15934
15925
  var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
15935
15926
  var jl_IllegalMonitorStateException = $rt_classWithoutFields(jl_RuntimeException);
15936
- var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
15937
15927
  var otjc_JSObjects = $rt_classWithoutFields();
15938
15928
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
15939
15929
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -15969,6 +15959,7 @@ var otji_JSWrapper$Helper__clinit_ = () => {
15969
15959
  otji_JSWrapper$Helper_numberFinalizationRegistry = var$1;
15970
15960
  };
15971
15961
  var otjc_JSUndefined = $rt_classWithoutFields();
15962
+ var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
15972
15963
  function ju_Arrays$ArrayAsList() {
15973
15964
  ju_AbstractList.call(this);
15974
15965
  this.$array3 = null;
@@ -31447,483 +31438,6 @@ var asrjt_Float32__clinit_ = () => {
31447
31438
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
31448
31439
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
31449
31440
  };
31450
- function jm_BigInteger() {
31451
- let a = this;
31452
- jl_Number.call(a);
31453
- a.$digits = null;
31454
- a.$numberLength = 0;
31455
- a.$sign0 = 0;
31456
- a.$firstNonzeroDigit = 0;
31457
- }
31458
- var jm_BigInteger_ZERO = null;
31459
- var jm_BigInteger_ONE = null;
31460
- var jm_BigInteger_TWO = null;
31461
- var jm_BigInteger_TEN = null;
31462
- var jm_BigInteger_MINUS_ONE = null;
31463
- var jm_BigInteger_SMALL_VALUES = null;
31464
- var jm_BigInteger_TWO_POWS = null;
31465
- var jm_BigInteger__init_4 = ($this, $sign, $value) => {
31466
- let var$3;
31467
- $this.$firstNonzeroDigit = -2;
31468
- $this.$sign0 = $sign;
31469
- $this.$numberLength = 1;
31470
- var$3 = $rt_createIntArray(1);
31471
- var$3.data[0] = $value;
31472
- $this.$digits = var$3;
31473
- };
31474
- var jm_BigInteger__init_ = (var_0, var_1) => {
31475
- let var_2 = new jm_BigInteger();
31476
- jm_BigInteger__init_4(var_2, var_0, var_1);
31477
- return var_2;
31478
- };
31479
- var jm_BigInteger__init_2 = ($this, $sign, $numberLength, $digits) => {
31480
- $this.$firstNonzeroDigit = -2;
31481
- $this.$sign0 = $sign;
31482
- $this.$numberLength = $numberLength;
31483
- $this.$digits = $digits;
31484
- };
31485
- var jm_BigInteger__init_0 = (var_0, var_1, var_2) => {
31486
- let var_3 = new jm_BigInteger();
31487
- jm_BigInteger__init_2(var_3, var_0, var_1, var_2);
31488
- return var_3;
31489
- };
31490
- var jm_BigInteger__init_3 = ($this, $sign, $val) => {
31491
- let var$3;
31492
- $this.$firstNonzeroDigit = -2;
31493
- $this.$sign0 = $sign;
31494
- if (Long_eq(Long_and($val, Long_create(0, 4294967295)), Long_ZERO)) {
31495
- $this.$numberLength = 1;
31496
- var$3 = $rt_createIntArray(1);
31497
- var$3.data[0] = Long_lo($val);
31498
- $this.$digits = var$3;
31499
- } else {
31500
- $this.$numberLength = 2;
31501
- $this.$digits = $rt_createIntArrayFromData([Long_lo($val), Long_hi($val)]);
31502
- }
31503
- };
31504
- var jm_BigInteger__init_1 = (var_0, var_1) => {
31505
- let var_2 = new jm_BigInteger();
31506
- jm_BigInteger__init_3(var_2, var_0, var_1);
31507
- return var_2;
31508
- };
31509
- var jm_BigInteger_valueOf = ($val) => {
31510
- if (Long_lt($val, Long_ZERO)) {
31511
- if (Long_eq($val, Long_fromInt(-1)))
31512
- return jm_BigInteger_MINUS_ONE;
31513
- return jm_BigInteger__init_1(-1, Long_neg($val));
31514
- }
31515
- if (Long_gt($val, Long_fromInt(10)))
31516
- return jm_BigInteger__init_1(1, $val);
31517
- return jm_BigInteger_SMALL_VALUES.data[Long_lo($val)];
31518
- };
31519
- var jm_BigInteger_abs = ($this) => {
31520
- if ($this.$sign0 < 0)
31521
- $this = jm_BigInteger__init_0(1, $this.$numberLength, $this.$digits);
31522
- return $this;
31523
- };
31524
- var jm_BigInteger_negate = ($this) => {
31525
- let var$1;
31526
- var$1 = $this.$sign0;
31527
- return !var$1 ? $this : jm_BigInteger__init_0(-var$1 | 0, $this.$numberLength, $this.$digits);
31528
- };
31529
- var jm_BigInteger_add = ($this, $val) => {
31530
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
31531
- a: {
31532
- var$2 = $this.$sign0;
31533
- var$3 = $val.$sign0;
31534
- if (var$2) {
31535
- if (!var$3)
31536
- $val = $this;
31537
- else {
31538
- var$4 = $this.$numberLength;
31539
- var$5 = $val.$numberLength;
31540
- if ((var$4 + var$5 | 0) == 2) {
31541
- var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
31542
- var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
31543
- if (var$2 != var$3)
31544
- $val = jm_BigInteger_valueOf(var$2 >= 0 ? Long_sub(var$6, var$7) : Long_sub(var$7, var$6));
31545
- else {
31546
- var$6 = Long_add(var$6, var$7);
31547
- var$8 = Long_lo(var$6);
31548
- var$4 = Long_hi(var$6);
31549
- $val = !var$4 ? jm_BigInteger__init_(var$2, var$8) : jm_BigInteger__init_0(var$2, 2, $rt_createIntArrayFromData([var$8, var$4]));
31550
- }
31551
- } else {
31552
- if (var$2 == var$3)
31553
- var$9 = var$4 < var$5 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
31554
- else {
31555
- var$8 = $rt_compare(var$4, var$5);
31556
- var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
31557
- if (!var$8) {
31558
- $val = jm_BigInteger_ZERO;
31559
- break a;
31560
- }
31561
- if (var$8 != 1) {
31562
- var$9 = jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
31563
- var$2 = var$3;
31564
- } else
31565
- var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
31566
- }
31567
- var$10 = var$9.data;
31568
- $val = jm_BigInteger__init_0(var$2, var$10.length, var$9);
31569
- jm_BigInteger_cutOffLeadingZeroes($val);
31570
- }
31571
- }
31572
- }
31573
- }
31574
- return $val;
31575
- };
31576
- var jm_BigInteger_subtract = ($this, $val) => {
31577
- let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
31578
- a: {
31579
- var$2 = $this.$sign0;
31580
- var$3 = $val.$sign0;
31581
- if (var$3) {
31582
- if (!var$2)
31583
- $this = jm_BigInteger_negate($val);
31584
- else {
31585
- var$4 = $this.$numberLength;
31586
- var$5 = $val.$numberLength;
31587
- if ((var$4 + var$5 | 0) == 2) {
31588
- var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
31589
- var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
31590
- if (var$2 < 0)
31591
- var$6 = Long_neg(var$6);
31592
- if (var$3 < 0)
31593
- var$7 = Long_neg(var$7);
31594
- $this = jm_BigInteger_valueOf(Long_sub(var$6, var$7));
31595
- } else {
31596
- var$8 = $rt_compare(var$4, var$5);
31597
- var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
31598
- if (var$8 == -1) {
31599
- var$8 = -var$3 | 0;
31600
- var$9 = var$2 != var$3 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
31601
- } else if (var$2 != var$3) {
31602
- var$9 = jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
31603
- var$8 = var$2;
31604
- } else {
31605
- if (!var$8) {
31606
- $this = jm_BigInteger_ZERO;
31607
- break a;
31608
- }
31609
- var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
31610
- var$8 = var$2;
31611
- }
31612
- var$10 = var$9.data;
31613
- $this = jm_BigInteger__init_0(var$8, var$10.length, var$9);
31614
- jm_BigInteger_cutOffLeadingZeroes($this);
31615
- }
31616
- }
31617
- }
31618
- }
31619
- return $this;
31620
- };
31621
- var jm_BigInteger_shiftRight = ($this, $n) => {
31622
- if ($n && $this.$sign0)
31623
- return $n > 0 ? jm_BitLevel_shiftRight($this, $n) : jm_BitLevel_shiftLeft($this, -$n | 0);
31624
- return $this;
31625
- };
31626
- var jm_BigInteger_shiftLeft = ($this, $n) => {
31627
- if ($n && $this.$sign0)
31628
- return $n > 0 ? jm_BitLevel_shiftLeft($this, $n) : jm_BitLevel_shiftRight($this, -$n | 0);
31629
- return $this;
31630
- };
31631
- var jm_BigInteger_bitLength = ($this) => {
31632
- let var$1, var$2, var$3, var$4;
31633
- var$1 = $this.$sign0;
31634
- if (!var$1)
31635
- var$2 = 0;
31636
- else {
31637
- var$3 = $this.$numberLength;
31638
- var$4 = var$3 << 5;
31639
- var$2 = $this.$digits.data[var$3 - 1 | 0];
31640
- if (var$1 < 0 && jm_BigInteger_getFirstNonzeroDigit($this) == ($this.$numberLength - 1 | 0))
31641
- var$2 = var$2 + -1 | 0;
31642
- var$2 = var$4 - jl_Integer_numberOfLeadingZeros(var$2) | 0;
31643
- }
31644
- return var$2;
31645
- };
31646
- var jm_BigInteger_testBit = ($this, $n) => {
31647
- let var$2, $intCount, $digit, $firstNonZeroDigit;
31648
- if (!$n)
31649
- return !($this.$digits.data[0] & 1) ? 0 : 1;
31650
- if ($n < 0) {
31651
- var$2 = new jl_ArithmeticException();
31652
- jl_Throwable__init_0(var$2, $rt_s(1624));
31653
- $rt_throw(var$2);
31654
- }
31655
- $intCount = $n >> 5;
31656
- if ($intCount >= $this.$numberLength)
31657
- return $this.$sign0 >= 0 ? 0 : 1;
31658
- $digit = $this.$digits.data[$intCount];
31659
- $n = 1 << ($n & 31);
31660
- if ($this.$sign0 < 0) {
31661
- $firstNonZeroDigit = jm_BigInteger_getFirstNonzeroDigit($this);
31662
- if ($intCount < $firstNonZeroDigit)
31663
- return 0;
31664
- $digit = $firstNonZeroDigit == $intCount ? -$digit | 0 : $digit ^ -1;
31665
- }
31666
- return !($digit & $n) ? 0 : 1;
31667
- };
31668
- var jm_BigInteger_getLowestSetBit = ($this) => {
31669
- let $i;
31670
- if (!$this.$sign0)
31671
- return -1;
31672
- $i = jm_BigInteger_getFirstNonzeroDigit($this);
31673
- return ($i << 5) + jl_Integer_numberOfTrailingZeros($this.$digits.data[$i]) | 0;
31674
- };
31675
- var jm_BigInteger_intValueExact = ($this) => {
31676
- let var$1;
31677
- if ($this.$numberLength <= 1 && jm_BigInteger_bitLength($this) <= 31)
31678
- return $rt_imul($this.$sign0, $this.$digits.data[0]);
31679
- var$1 = new jl_ArithmeticException();
31680
- jl_Throwable__init_0(var$1, $rt_s(1625));
31681
- $rt_throw(var$1);
31682
- };
31683
- var jm_BigInteger_longValue = ($this) => {
31684
- let $value, var$2;
31685
- if ($this.$numberLength <= 1)
31686
- $value = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
31687
- else {
31688
- var$2 = $this.$digits.data;
31689
- $value = Long_or(Long_shl(Long_fromInt(var$2[1]), 32), Long_and(Long_fromInt(var$2[0]), Long_create(4294967295, 0)));
31690
- }
31691
- return Long_mul(Long_fromInt($this.$sign0), $value);
31692
- };
31693
- var jm_BigInteger_longValueExact = ($this) => {
31694
- let var$1;
31695
- if ($this.$numberLength <= 2 && jm_BigInteger_bitLength($this) <= 63)
31696
- return jm_BigInteger_longValue($this);
31697
- var$1 = new jl_ArithmeticException();
31698
- jl_Throwable__init_0(var$1, $rt_s(1626));
31699
- $rt_throw(var$1);
31700
- };
31701
- var jm_BigInteger_compareTo = ($this, $val) => {
31702
- let var$2, var$3, var$4, var$5;
31703
- var$2 = $this.$sign0;
31704
- var$3 = $val.$sign0;
31705
- var$4 = $rt_compare(var$2, var$3);
31706
- if (var$4 > 0)
31707
- return 1;
31708
- if (var$4 < 0)
31709
- return -1;
31710
- var$4 = $this.$numberLength;
31711
- var$5 = $rt_compare(var$4, $val.$numberLength);
31712
- if (var$5 > 0)
31713
- return var$2;
31714
- if (var$5 < 0)
31715
- return -var$3 | 0;
31716
- return $rt_imul(var$2, jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4));
31717
- };
31718
- var jm_BigInteger_equals = ($this, $x) => {
31719
- let $x1, var$3, var$4, var$5;
31720
- if ($this === $x)
31721
- return 1;
31722
- if (!($x instanceof jm_BigInteger))
31723
- return 0;
31724
- a: {
31725
- $x1 = $x;
31726
- if ($this.$sign0 == $x1.$sign0) {
31727
- var$3 = $this.$numberLength;
31728
- if (var$3 == $x1.$numberLength) {
31729
- var$4 = $x1.$digits;
31730
- var$3 = var$3 - 1 | 0;
31731
- while (var$3 >= 0) {
31732
- var$5 = var$4.data;
31733
- if ($this.$digits.data[var$3] != var$5[var$3])
31734
- break;
31735
- var$3 = var$3 + -1 | 0;
31736
- }
31737
- if (var$3 >= 0 ? 0 : 1) {
31738
- var$3 = 1;
31739
- break a;
31740
- }
31741
- }
31742
- }
31743
- var$3 = 0;
31744
- }
31745
- return var$3;
31746
- };
31747
- var jm_BigInteger_multiply = ($this, $val) => {
31748
- if (!$val.$sign0)
31749
- return jm_BigInteger_ZERO;
31750
- if (!$this.$sign0)
31751
- return jm_BigInteger_ZERO;
31752
- jm_Multiplication_$callClinit();
31753
- return jm_Multiplication_karatsuba($this, $val);
31754
- };
31755
- var jm_BigInteger_cutOffLeadingZeroes = ($this) => {
31756
- let var$1, var$2, var$3;
31757
- while (true) {
31758
- var$1 = $this.$numberLength;
31759
- if (var$1 <= 0)
31760
- break;
31761
- var$2 = $this.$digits.data;
31762
- var$1 = var$1 - 1 | 0;
31763
- $this.$numberLength = var$1;
31764
- if (var$2[var$1])
31765
- break;
31766
- }
31767
- var$2 = $this.$digits.data;
31768
- var$3 = $this.$numberLength;
31769
- $this.$numberLength = var$3 + 1 | 0;
31770
- if (!var$2[var$3])
31771
- $this.$sign0 = 0;
31772
- };
31773
- var jm_BigInteger_getFirstNonzeroDigit = ($this) => {
31774
- let $i;
31775
- if ($this.$firstNonzeroDigit == -2) {
31776
- if (!$this.$sign0)
31777
- $i = -1;
31778
- else {
31779
- $i = 0;
31780
- while (!$this.$digits.data[$i]) {
31781
- $i = $i + 1 | 0;
31782
- }
31783
- }
31784
- $this.$firstNonzeroDigit = $i;
31785
- }
31786
- return $this.$firstNonzeroDigit;
31787
- };
31788
- var jm_BigInteger__clinit_ = () => {
31789
- let var$1, var$2, $i;
31790
- jm_BigInteger_ZERO = jm_BigInteger__init_(0, 0);
31791
- jm_BigInteger_ONE = jm_BigInteger__init_(1, 1);
31792
- jm_BigInteger_TWO = jm_BigInteger__init_(1, 2);
31793
- jm_BigInteger_TEN = jm_BigInteger__init_(1, 10);
31794
- jm_BigInteger_MINUS_ONE = jm_BigInteger__init_(-1, 1);
31795
- var$1 = $rt_createArray(jm_BigInteger, 11);
31796
- var$2 = var$1.data;
31797
- var$2[0] = jm_BigInteger_ZERO;
31798
- var$2[1] = jm_BigInteger_ONE;
31799
- var$2[2] = jm_BigInteger_TWO;
31800
- var$2[3] = jm_BigInteger__init_(1, 3);
31801
- var$2[4] = jm_BigInteger__init_(1, 4);
31802
- var$2[5] = jm_BigInteger__init_(1, 5);
31803
- var$2[6] = jm_BigInteger__init_(1, 6);
31804
- var$2[7] = jm_BigInteger__init_(1, 7);
31805
- var$2[8] = jm_BigInteger__init_(1, 8);
31806
- var$2[9] = jm_BigInteger__init_(1, 9);
31807
- var$2[10] = jm_BigInteger_TEN;
31808
- jm_BigInteger_SMALL_VALUES = var$1;
31809
- jm_BigInteger_TWO_POWS = $rt_createArray(jm_BigInteger, 32);
31810
- $i = 0;
31811
- while (true) {
31812
- var$1 = jm_BigInteger_TWO_POWS.data;
31813
- if ($i >= var$1.length)
31814
- break;
31815
- var$1[$i] = jm_BigInteger_valueOf(Long_shl(Long_fromInt(1), $i));
31816
- $i = $i + 1 | 0;
31817
- }
31818
- };
31819
- var asrjo_Conversions = $rt_classWithoutFields();
31820
- var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
31821
- let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
31822
- if ($f.$isNaN()) {
31823
- $f = $env.$flags;
31824
- $min = asrj_Flags_invalid;
31825
- ju_GenericEnumSet_add($f, $min);
31826
- return $max;
31827
- }
31828
- if ($f.$isInfinite()) {
31829
- $env = $env.$flags;
31830
- $copy = asrj_Flags_invalid;
31831
- ju_GenericEnumSet_add($env, $copy);
31832
- if ($f.$isSignMinus())
31833
- $max = $min;
31834
- return $max;
31835
- }
31836
- $copy = asrj_Environment__init_();
31837
- $copy.$mode = $env.$mode;
31838
- if ($f.$isZero())
31839
- $rounded = jm_BigInteger_ZERO;
31840
- else {
31841
- $f = $f.$toExactFloat();
31842
- if (asrji_ExactFloat_isZero($f))
31843
- $rounded = jm_BigInteger_ZERO;
31844
- else {
31845
- if (asrji_ExactFloat_isZero($f))
31846
- $rounded = $f;
31847
- else {
31848
- $rounded = asrji_ExactFloat_normalize($f);
31849
- var$8 = $rounded.$exponent0;
31850
- if (var$8 < 0) {
31851
- var$8 = -var$8 | 0;
31852
- var$9 = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($rounded.$significand, var$8), var$8);
31853
- var$10 = jm_BigInteger_subtract($rounded.$significand, var$9);
31854
- var$9 = asrji_ExactFloat_normalize(asrji_ExactFloat__init_($rounded.$sign, $rounded.$exponent0, var$9));
31855
- var$11 = asrji_ExactFloat_add(var$9, asrji_ExactFloat__init_($rounded.$sign, 0, jm_BigInteger_valueOf(Long_fromInt(1))));
31856
- var$12 = $env.$mode;
31857
- if (var$12 === asrj_RoundingMode_zero)
31858
- $rounded = var$9;
31859
- else {
31860
- var$13 = asrj_RoundingMode_max;
31861
- if (var$12 !== var$13 && var$12 !== asrj_RoundingMode_min) {
31862
- $rounded = jm_BigInteger_ONE;
31863
- var$8 = var$8 - 1 | 0;
31864
- $rounded = !jm_BigInteger_equals(var$10, jm_BigInteger_shiftLeft($rounded, var$8)) ? jm_BigInteger_compareTo(var$10, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, var$8)) <= 0 ? var$9 : var$11 : $env.$mode !== asrj_RoundingMode_away && !jm_BigInteger_testBit(var$9.$significand, 0) ? var$9 : var$11;
31865
- } else
31866
- $rounded = (var$12 !== var$13 ? 0 : 1) != $rounded.$sign ? var$11 : var$9;
31867
- }
31868
- }
31869
- }
31870
- $rounded = asrji_ExactFloat_normalize($rounded);
31871
- if (asrji_ExactFloat_compareTo($rounded, $f)) {
31872
- var$9 = $env.$flags;
31873
- var$10 = asrj_Flags_inexact;
31874
- ju_GenericEnumSet_add(var$9, var$10);
31875
- }
31876
- if (!asrji_ExactFloat_$assertionsDisabled && $rounded.$exponent0 < 0)
31877
- $rt_throw(jl_AssertionError__init_($rt_s(1627)));
31878
- $rounded = jm_BigInteger_multiply(jm_BigInteger_shiftLeft($rounded.$significand, $rounded.$exponent0), jm_BigInteger_valueOf(!$f.$sign ? Long_fromInt(1) : Long_fromInt(-1)));
31879
- }
31880
- }
31881
- if (!(jm_BigInteger_compareTo($rounded, $max) <= 0 && jm_BigInteger_compareTo($rounded, $min) >= 0)) {
31882
- $f = $env.$flags;
31883
- $env = asrj_Flags_invalid;
31884
- ju_GenericEnumSet_add($f, $env);
31885
- } else if (!$quiet) {
31886
- $f = $copy.$flags;
31887
- $copy = asrj_Flags_inexact;
31888
- if (ju_GenericEnumSet_contains($f, $copy)) {
31889
- $f = $env.$flags;
31890
- $env = asrj_Flags_inexact;
31891
- ju_GenericEnumSet_add($f, $env);
31892
- }
31893
- }
31894
- if (jm_BigInteger_compareTo($rounded, $max) == -1)
31895
- $max = $rounded;
31896
- if (jm_BigInteger_compareTo($max, $min) == 1)
31897
- $min = $max;
31898
- return $min;
31899
- };
31900
- var asrjo_Conversions_convertToInt = ($f, $env, $quiet) => {
31901
- return jm_BigInteger_intValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_fromInt(2147483647)), jm_BigInteger_valueOf(Long_fromInt(-2147483648)), $env, $quiet));
31902
- };
31903
- var asrjo_Conversions_convertToUnsignedInt = ($f, $env, $quiet) => {
31904
- return Long_lo(Long_and(jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 0)), jm_BigInteger_ZERO, $env, $quiet)), Long_create(4294967295, 0)));
31905
- };
31906
- var asrjo_Conversions_convertToLong = ($f, $env, $quiet) => {
31907
- return jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 2147483647)), jm_BigInteger_valueOf(Long_create(0, 2147483648)), $env, $quiet));
31908
- };
31909
- var asrjo_Conversions_convertToUnsignedLong = ($f, $env, $quiet) => {
31910
- return jm_BigInteger_longValue(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_add(jm_BigInteger_valueOf(Long_fromInt(-1)), jm_BigInteger_shiftLeft(jm_BigInteger_ONE, 64)), jm_BigInteger_ZERO, $env, $quiet));
31911
- };
31912
- var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31913
- let var$4;
31914
- if (jm_BigInteger_equals($i, jm_BigInteger_ZERO))
31915
- return $helper.$Zero();
31916
- var$4 = new asrji_ExactFloat();
31917
- if (jm_BigInteger_compareTo($i, jm_BigInteger_ZERO) >= 0)
31918
- var$4.$sign = 0;
31919
- else {
31920
- var$4.$sign = 1;
31921
- $i = jm_BigInteger_negate($i);
31922
- }
31923
- var$4.$exponent0 = 0;
31924
- var$4.$significand = $i;
31925
- return $helper.$fromExactFloat(var$4, $env);
31926
- };
31927
31441
  function asrjt_Float64() {
31928
31442
  asrjt_Floating.call(this);
31929
31443
  this.$bits1 = Long_ZERO;
@@ -32140,107 +31654,113 @@ var asrjt_Float64__clinit_ = () => {
32140
31654
  asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32141
31655
  asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32142
31656
  };
32143
- var asrjo_Comparisons = $rt_classWithoutFields();
32144
- var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32145
- if ($a.$isZero()) {
32146
- if ($b.$isZero())
32147
- return 0;
32148
- return !$b.$isSignMinus() ? -1 : 1;
32149
- }
32150
- if ($b.$isZero())
32151
- return !$a.$isSignMinus() ? 1 : -1;
32152
- if (!$a.$isInfinite()) {
32153
- if (!$b.$isInfinite())
32154
- return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32155
- return !$b.$isSignMinus() ? -1 : 1;
31657
+ var asrjo_Conversions = $rt_classWithoutFields();
31658
+ var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
31659
+ let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
31660
+ if ($f.$isNaN()) {
31661
+ $f = $env.$flags;
31662
+ $min = asrj_Flags_invalid;
31663
+ ju_GenericEnumSet_add($f, $min);
31664
+ return $max;
32156
31665
  }
32157
- if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32158
- return 0;
32159
- return !$a.$isSignMinus() ? -1 : 1;
32160
- };
32161
- var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32162
- if ($a.$isSignMinus() != $b.$isSignMinus()) {
32163
- if ($a.$isSignMinus())
32164
- $b = $a;
32165
- return $b;
31666
+ if ($f.$isInfinite()) {
31667
+ $env = $env.$flags;
31668
+ $copy = asrj_Flags_invalid;
31669
+ ju_GenericEnumSet_add($env, $copy);
31670
+ if ($f.$isSignMinus())
31671
+ $max = $min;
31672
+ return $max;
32166
31673
  }
32167
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32168
- if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32169
- return $b;
32170
- return $a;
31674
+ $copy = asrj_Environment__init_();
31675
+ $copy.$mode = $env.$mode;
31676
+ if ($f.$isZero())
31677
+ $rounded = jm_BigInteger_ZERO;
31678
+ else {
31679
+ $f = $f.$toExactFloat();
31680
+ if (asrji_ExactFloat_isZero($f))
31681
+ $rounded = jm_BigInteger_ZERO;
31682
+ else {
31683
+ if (asrji_ExactFloat_isZero($f))
31684
+ $rounded = $f;
31685
+ else {
31686
+ $rounded = asrji_ExactFloat_normalize($f);
31687
+ var$8 = $rounded.$exponent0;
31688
+ if (var$8 < 0) {
31689
+ var$8 = -var$8 | 0;
31690
+ var$9 = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($rounded.$significand, var$8), var$8);
31691
+ var$10 = jm_BigInteger_subtract($rounded.$significand, var$9);
31692
+ var$9 = asrji_ExactFloat_normalize(asrji_ExactFloat__init_($rounded.$sign, $rounded.$exponent0, var$9));
31693
+ var$11 = asrji_ExactFloat_add(var$9, asrji_ExactFloat__init_($rounded.$sign, 0, jm_BigInteger_valueOf(Long_fromInt(1))));
31694
+ var$12 = $env.$mode;
31695
+ if (var$12 === asrj_RoundingMode_zero)
31696
+ $rounded = var$9;
31697
+ else {
31698
+ var$13 = asrj_RoundingMode_max;
31699
+ if (var$12 !== var$13 && var$12 !== asrj_RoundingMode_min) {
31700
+ $rounded = jm_BigInteger_ONE;
31701
+ var$8 = var$8 - 1 | 0;
31702
+ $rounded = !jm_BigInteger_equals(var$10, jm_BigInteger_shiftLeft($rounded, var$8)) ? jm_BigInteger_compareTo(var$10, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, var$8)) <= 0 ? var$9 : var$11 : $env.$mode !== asrj_RoundingMode_away && !jm_BigInteger_testBit(var$9.$significand, 0) ? var$9 : var$11;
31703
+ } else
31704
+ $rounded = (var$12 !== var$13 ? 0 : 1) != $rounded.$sign ? var$11 : var$9;
31705
+ }
31706
+ }
31707
+ }
31708
+ $rounded = asrji_ExactFloat_normalize($rounded);
31709
+ if (asrji_ExactFloat_compareTo($rounded, $f)) {
31710
+ var$9 = $env.$flags;
31711
+ var$10 = asrj_Flags_inexact;
31712
+ ju_GenericEnumSet_add(var$9, var$10);
31713
+ }
31714
+ if (!asrji_ExactFloat_$assertionsDisabled && $rounded.$exponent0 < 0)
31715
+ $rt_throw(jl_AssertionError__init_($rt_s(1624)));
31716
+ $rounded = jm_BigInteger_multiply(jm_BigInteger_shiftLeft($rounded.$significand, $rounded.$exponent0), jm_BigInteger_valueOf(!$f.$sign ? Long_fromInt(1) : Long_fromInt(-1)));
31717
+ }
32171
31718
  }
32172
- if ($a.$isInfinite() != $a.$isSignMinus())
32173
- return $b;
32174
- return $a;
32175
- };
32176
- var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32177
- let var$4;
32178
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32179
- var$4 = $env.$flags;
31719
+ if (!(jm_BigInteger_compareTo($rounded, $max) <= 0 && jm_BigInteger_compareTo($rounded, $min) >= 0)) {
31720
+ $f = $env.$flags;
32180
31721
  $env = asrj_Flags_invalid;
32181
- ju_GenericEnumSet_add(var$4, $env);
31722
+ ju_GenericEnumSet_add($f, $env);
31723
+ } else if (!$quiet) {
31724
+ $f = $copy.$flags;
31725
+ $copy = asrj_Flags_inexact;
31726
+ if (ju_GenericEnumSet_contains($f, $copy)) {
31727
+ $f = $env.$flags;
31728
+ $env = asrj_Flags_inexact;
31729
+ ju_GenericEnumSet_add($f, $env);
31730
+ }
32182
31731
  }
32183
- if ($a.$isNaN()) {
32184
- if ($b.$isNaN())
32185
- $b = $b.$NaN();
32186
- } else
32187
- $b = !$b.$isNaN() ? null : $a;
32188
- return $b;
31732
+ if (jm_BigInteger_compareTo($rounded, $max) == -1)
31733
+ $max = $rounded;
31734
+ if (jm_BigInteger_compareTo($max, $min) == 1)
31735
+ $min = $max;
31736
+ return $min;
32189
31737
  };
32190
- var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32191
- let $tmp_0;
32192
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32193
- if ($tmp_0 !== null)
32194
- return $tmp_0;
32195
- return asrjo_Comparisons_nonNaNmin($a, $b);
31738
+ var asrjo_Conversions_convertToInt = ($f, $env, $quiet) => {
31739
+ return jm_BigInteger_intValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_fromInt(2147483647)), jm_BigInteger_valueOf(Long_fromInt(-2147483648)), $env, $quiet));
32196
31740
  };
32197
- var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32198
- let $tmp_0;
32199
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32200
- if ($tmp_0 !== null)
32201
- return $tmp_0;
32202
- if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32203
- $a = $b;
32204
- return $a;
31741
+ var asrjo_Conversions_convertToUnsignedInt = ($f, $env, $quiet) => {
31742
+ return Long_lo(Long_and(jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 0)), jm_BigInteger_ZERO, $env, $quiet)), Long_create(4294967295, 0)));
32205
31743
  };
32206
- var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32207
- let var$4;
32208
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32209
- var$4 = $env.$flags;
32210
- $env = asrj_Flags_invalid;
32211
- ju_GenericEnumSet_add(var$4, $env);
32212
- }
32213
- if (!$a.$isNaN() && !$b.$isNaN())
32214
- return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32215
- return 0;
31744
+ var asrjo_Conversions_convertToLong = ($f, $env, $quiet) => {
31745
+ return jm_BigInteger_longValueExact(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_valueOf(Long_create(4294967295, 2147483647)), jm_BigInteger_valueOf(Long_create(0, 2147483648)), $env, $quiet));
32216
31746
  };
32217
- var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32218
- let var$4, var$5;
32219
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32220
- var$4 = $env.$flags;
32221
- var$5 = asrj_Flags_invalid;
32222
- ju_GenericEnumSet_add(var$4, var$5);
32223
- }
32224
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32225
- var$5 = $env.$flags;
32226
- $env = asrj_Flags_invalid;
32227
- ju_GenericEnumSet_add(var$5, $env);
32228
- }
32229
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
31747
+ var asrjo_Conversions_convertToUnsignedLong = ($f, $env, $quiet) => {
31748
+ return jm_BigInteger_longValue(asrjo_Conversions_convertToIntegral($f, jm_BigInteger_add(jm_BigInteger_valueOf(Long_fromInt(-1)), jm_BigInteger_shiftLeft(jm_BigInteger_ONE, 64)), jm_BigInteger_ZERO, $env, $quiet));
32230
31749
  };
32231
- var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32232
- let var$4, var$5;
32233
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32234
- var$4 = $env.$flags;
32235
- var$5 = asrj_Flags_invalid;
32236
- ju_GenericEnumSet_add(var$4, var$5);
32237
- }
32238
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32239
- var$5 = $env.$flags;
32240
- $env = asrj_Flags_invalid;
32241
- ju_GenericEnumSet_add(var$5, $env);
31750
+ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31751
+ let var$4;
31752
+ if (jm_BigInteger_equals($i, jm_BigInteger_ZERO))
31753
+ return $helper.$Zero();
31754
+ var$4 = new asrji_ExactFloat();
31755
+ if (jm_BigInteger_compareTo($i, jm_BigInteger_ZERO) >= 0)
31756
+ var$4.$sign = 0;
31757
+ else {
31758
+ var$4.$sign = 1;
31759
+ $i = jm_BigInteger_negate($i);
32242
31760
  }
32243
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
31761
+ var$4.$exponent0 = 0;
31762
+ var$4.$significand = $i;
31763
+ return $helper.$fromExactFloat(var$4, $env);
32244
31764
  };
32245
31765
  var asrjo_Arithmetic = $rt_classWithoutFields();
32246
31766
  var asrjo_Arithmetic_$assertionsDisabled = 0;
@@ -32323,7 +31843,7 @@ var asrjo_Arithmetic_squareRoot = ($a, $env) => {
32323
31843
  var$3 = $a.$toExactFloat();
32324
31844
  var$4 = $a.$maxPrecision();
32325
31845
  if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
32326
- $rt_throw(jl_AssertionError__init_($rt_s(1628)));
31846
+ $rt_throw(jl_AssertionError__init_($rt_s(1625)));
32327
31847
  var$5 = asrji_ExactFloat_normalize(var$3);
32328
31848
  var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
32329
31849
  a: {
@@ -32351,7 +31871,7 @@ var asrjo_Arithmetic_squareRoot = ($a, $env) => {
32351
31871
  break a;
32352
31872
  }
32353
31873
  if (!asrji_ExactFloat_$assertionsDisabled)
32354
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31874
+ $rt_throw(jl_AssertionError__init_($rt_s(1626)));
32355
31875
  var$7 = null;
32356
31876
  break a;
32357
31877
  }
@@ -32365,7 +31885,7 @@ var asrjo_Arithmetic_squareRoot = ($a, $env) => {
32365
31885
  var$7 = var$9;
32366
31886
  } else {
32367
31887
  if (!asrji_ExactFloat_$assertionsDisabled)
32368
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31888
+ $rt_throw(jl_AssertionError__init_($rt_s(1626)));
32369
31889
  var$7 = var$9;
32370
31890
  }
32371
31891
  }
@@ -32433,15 +31953,15 @@ var asrjo_Arithmetic_division = ($a, $b, $env) => {
32433
31953
  return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32434
31954
  }
32435
31955
  if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
32436
- $rt_throw(jl_AssertionError__init_($rt_s(1630)));
31956
+ $rt_throw(jl_AssertionError__init_($rt_s(1627)));
32437
31957
  var$4 = $a.$toExactFloat();
32438
31958
  $b = $b.$toExactFloat();
32439
31959
  var$5 = $a.$maxPrecision();
32440
31960
  var$6 = asrji_ExactFloat_$assertionsDisabled;
32441
31961
  if (!var$6 && var$5 <= 0)
32442
- $rt_throw(jl_AssertionError__init_($rt_s(1631)));
31962
+ $rt_throw(jl_AssertionError__init_($rt_s(1628)));
32443
31963
  if (!var$6 && asrji_ExactFloat_isZero($b))
32444
- $rt_throw(jl_AssertionError__init_($rt_s(1632)));
31964
+ $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32445
31965
  var$4 = asrji_ExactFloat_normalize(var$4);
32446
31966
  var$7 = asrji_ExactFloat_normalize($b);
32447
31967
  var$8 = var$4.$significand;
@@ -32477,6 +31997,477 @@ var asrjo_Arithmetic_division = ($a, $b, $env) => {
32477
31997
  var asrjo_Arithmetic__clinit_ = () => {
32478
31998
  asrjo_Arithmetic_$assertionsDisabled = 0;
32479
31999
  };
32000
+ var asrjo_Comparisons = $rt_classWithoutFields();
32001
+ var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32002
+ if ($a.$isZero()) {
32003
+ if ($b.$isZero())
32004
+ return 0;
32005
+ return !$b.$isSignMinus() ? -1 : 1;
32006
+ }
32007
+ if ($b.$isZero())
32008
+ return !$a.$isSignMinus() ? 1 : -1;
32009
+ if (!$a.$isInfinite()) {
32010
+ if (!$b.$isInfinite())
32011
+ return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32012
+ return !$b.$isSignMinus() ? -1 : 1;
32013
+ }
32014
+ if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32015
+ return 0;
32016
+ return !$a.$isSignMinus() ? -1 : 1;
32017
+ };
32018
+ var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32019
+ if ($a.$isSignMinus() != $b.$isSignMinus()) {
32020
+ if ($a.$isSignMinus())
32021
+ $b = $a;
32022
+ return $b;
32023
+ }
32024
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
32025
+ if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32026
+ return $b;
32027
+ return $a;
32028
+ }
32029
+ if ($a.$isInfinite() != $a.$isSignMinus())
32030
+ return $b;
32031
+ return $a;
32032
+ };
32033
+ var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32034
+ let var$4;
32035
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32036
+ var$4 = $env.$flags;
32037
+ $env = asrj_Flags_invalid;
32038
+ ju_GenericEnumSet_add(var$4, $env);
32039
+ }
32040
+ if ($a.$isNaN()) {
32041
+ if ($b.$isNaN())
32042
+ $b = $b.$NaN();
32043
+ } else
32044
+ $b = !$b.$isNaN() ? null : $a;
32045
+ return $b;
32046
+ };
32047
+ var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32048
+ let $tmp_0;
32049
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32050
+ if ($tmp_0 !== null)
32051
+ return $tmp_0;
32052
+ return asrjo_Comparisons_nonNaNmin($a, $b);
32053
+ };
32054
+ var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32055
+ let $tmp_0;
32056
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32057
+ if ($tmp_0 !== null)
32058
+ return $tmp_0;
32059
+ if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32060
+ $a = $b;
32061
+ return $a;
32062
+ };
32063
+ var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32064
+ let var$4;
32065
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32066
+ var$4 = $env.$flags;
32067
+ $env = asrj_Flags_invalid;
32068
+ ju_GenericEnumSet_add(var$4, $env);
32069
+ }
32070
+ if (!$a.$isNaN() && !$b.$isNaN())
32071
+ return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32072
+ return 0;
32073
+ };
32074
+ var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32075
+ let var$4, var$5;
32076
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32077
+ var$4 = $env.$flags;
32078
+ var$5 = asrj_Flags_invalid;
32079
+ ju_GenericEnumSet_add(var$4, var$5);
32080
+ }
32081
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32082
+ var$5 = $env.$flags;
32083
+ $env = asrj_Flags_invalid;
32084
+ ju_GenericEnumSet_add(var$5, $env);
32085
+ }
32086
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32087
+ };
32088
+ var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32089
+ let var$4, var$5;
32090
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32091
+ var$4 = $env.$flags;
32092
+ var$5 = asrj_Flags_invalid;
32093
+ ju_GenericEnumSet_add(var$4, var$5);
32094
+ }
32095
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32096
+ var$5 = $env.$flags;
32097
+ $env = asrj_Flags_invalid;
32098
+ ju_GenericEnumSet_add(var$5, $env);
32099
+ }
32100
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32101
+ };
32102
+ function jm_BigInteger() {
32103
+ let a = this;
32104
+ jl_Number.call(a);
32105
+ a.$digits = null;
32106
+ a.$numberLength = 0;
32107
+ a.$sign0 = 0;
32108
+ a.$firstNonzeroDigit = 0;
32109
+ }
32110
+ var jm_BigInteger_ZERO = null;
32111
+ var jm_BigInteger_ONE = null;
32112
+ var jm_BigInteger_TWO = null;
32113
+ var jm_BigInteger_TEN = null;
32114
+ var jm_BigInteger_MINUS_ONE = null;
32115
+ var jm_BigInteger_SMALL_VALUES = null;
32116
+ var jm_BigInteger_TWO_POWS = null;
32117
+ var jm_BigInteger__init_4 = ($this, $sign, $value) => {
32118
+ let var$3;
32119
+ $this.$firstNonzeroDigit = -2;
32120
+ $this.$sign0 = $sign;
32121
+ $this.$numberLength = 1;
32122
+ var$3 = $rt_createIntArray(1);
32123
+ var$3.data[0] = $value;
32124
+ $this.$digits = var$3;
32125
+ };
32126
+ var jm_BigInteger__init_ = (var_0, var_1) => {
32127
+ let var_2 = new jm_BigInteger();
32128
+ jm_BigInteger__init_4(var_2, var_0, var_1);
32129
+ return var_2;
32130
+ };
32131
+ var jm_BigInteger__init_2 = ($this, $sign, $numberLength, $digits) => {
32132
+ $this.$firstNonzeroDigit = -2;
32133
+ $this.$sign0 = $sign;
32134
+ $this.$numberLength = $numberLength;
32135
+ $this.$digits = $digits;
32136
+ };
32137
+ var jm_BigInteger__init_0 = (var_0, var_1, var_2) => {
32138
+ let var_3 = new jm_BigInteger();
32139
+ jm_BigInteger__init_2(var_3, var_0, var_1, var_2);
32140
+ return var_3;
32141
+ };
32142
+ var jm_BigInteger__init_3 = ($this, $sign, $val) => {
32143
+ let var$3;
32144
+ $this.$firstNonzeroDigit = -2;
32145
+ $this.$sign0 = $sign;
32146
+ if (Long_eq(Long_and($val, Long_create(0, 4294967295)), Long_ZERO)) {
32147
+ $this.$numberLength = 1;
32148
+ var$3 = $rt_createIntArray(1);
32149
+ var$3.data[0] = Long_lo($val);
32150
+ $this.$digits = var$3;
32151
+ } else {
32152
+ $this.$numberLength = 2;
32153
+ $this.$digits = $rt_createIntArrayFromData([Long_lo($val), Long_hi($val)]);
32154
+ }
32155
+ };
32156
+ var jm_BigInteger__init_1 = (var_0, var_1) => {
32157
+ let var_2 = new jm_BigInteger();
32158
+ jm_BigInteger__init_3(var_2, var_0, var_1);
32159
+ return var_2;
32160
+ };
32161
+ var jm_BigInteger_valueOf = ($val) => {
32162
+ if (Long_lt($val, Long_ZERO)) {
32163
+ if (Long_eq($val, Long_fromInt(-1)))
32164
+ return jm_BigInteger_MINUS_ONE;
32165
+ return jm_BigInteger__init_1(-1, Long_neg($val));
32166
+ }
32167
+ if (Long_gt($val, Long_fromInt(10)))
32168
+ return jm_BigInteger__init_1(1, $val);
32169
+ return jm_BigInteger_SMALL_VALUES.data[Long_lo($val)];
32170
+ };
32171
+ var jm_BigInteger_abs = ($this) => {
32172
+ if ($this.$sign0 < 0)
32173
+ $this = jm_BigInteger__init_0(1, $this.$numberLength, $this.$digits);
32174
+ return $this;
32175
+ };
32176
+ var jm_BigInteger_negate = ($this) => {
32177
+ let var$1;
32178
+ var$1 = $this.$sign0;
32179
+ return !var$1 ? $this : jm_BigInteger__init_0(-var$1 | 0, $this.$numberLength, $this.$digits);
32180
+ };
32181
+ var jm_BigInteger_add = ($this, $val) => {
32182
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
32183
+ a: {
32184
+ var$2 = $this.$sign0;
32185
+ var$3 = $val.$sign0;
32186
+ if (var$2) {
32187
+ if (!var$3)
32188
+ $val = $this;
32189
+ else {
32190
+ var$4 = $this.$numberLength;
32191
+ var$5 = $val.$numberLength;
32192
+ if ((var$4 + var$5 | 0) == 2) {
32193
+ var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
32194
+ var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
32195
+ if (var$2 != var$3)
32196
+ $val = jm_BigInteger_valueOf(var$2 >= 0 ? Long_sub(var$6, var$7) : Long_sub(var$7, var$6));
32197
+ else {
32198
+ var$6 = Long_add(var$6, var$7);
32199
+ var$8 = Long_lo(var$6);
32200
+ var$4 = Long_hi(var$6);
32201
+ $val = !var$4 ? jm_BigInteger__init_(var$2, var$8) : jm_BigInteger__init_0(var$2, 2, $rt_createIntArrayFromData([var$8, var$4]));
32202
+ }
32203
+ } else {
32204
+ if (var$2 == var$3)
32205
+ var$9 = var$4 < var$5 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
32206
+ else {
32207
+ var$8 = $rt_compare(var$4, var$5);
32208
+ var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
32209
+ if (!var$8) {
32210
+ $val = jm_BigInteger_ZERO;
32211
+ break a;
32212
+ }
32213
+ if (var$8 != 1) {
32214
+ var$9 = jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
32215
+ var$2 = var$3;
32216
+ } else
32217
+ var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
32218
+ }
32219
+ var$10 = var$9.data;
32220
+ $val = jm_BigInteger__init_0(var$2, var$10.length, var$9);
32221
+ jm_BigInteger_cutOffLeadingZeroes($val);
32222
+ }
32223
+ }
32224
+ }
32225
+ }
32226
+ return $val;
32227
+ };
32228
+ var jm_BigInteger_subtract = ($this, $val) => {
32229
+ let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
32230
+ a: {
32231
+ var$2 = $this.$sign0;
32232
+ var$3 = $val.$sign0;
32233
+ if (var$3) {
32234
+ if (!var$2)
32235
+ $this = jm_BigInteger_negate($val);
32236
+ else {
32237
+ var$4 = $this.$numberLength;
32238
+ var$5 = $val.$numberLength;
32239
+ if ((var$4 + var$5 | 0) == 2) {
32240
+ var$6 = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
32241
+ var$7 = Long_and(Long_fromInt($val.$digits.data[0]), Long_create(4294967295, 0));
32242
+ if (var$2 < 0)
32243
+ var$6 = Long_neg(var$6);
32244
+ if (var$3 < 0)
32245
+ var$7 = Long_neg(var$7);
32246
+ $this = jm_BigInteger_valueOf(Long_sub(var$6, var$7));
32247
+ } else {
32248
+ var$8 = $rt_compare(var$4, var$5);
32249
+ var$8 = !var$8 ? jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4) : var$8 <= 0 ? -1 : 1;
32250
+ if (var$8 == -1) {
32251
+ var$8 = -var$3 | 0;
32252
+ var$9 = var$2 != var$3 ? jm_Elementary_add($val.$digits, var$5, $this.$digits, var$4) : jm_Elementary_subtract($val.$digits, var$5, $this.$digits, var$4);
32253
+ } else if (var$2 != var$3) {
32254
+ var$9 = jm_Elementary_add($this.$digits, var$4, $val.$digits, var$5);
32255
+ var$8 = var$2;
32256
+ } else {
32257
+ if (!var$8) {
32258
+ $this = jm_BigInteger_ZERO;
32259
+ break a;
32260
+ }
32261
+ var$9 = jm_Elementary_subtract($this.$digits, var$4, $val.$digits, var$5);
32262
+ var$8 = var$2;
32263
+ }
32264
+ var$10 = var$9.data;
32265
+ $this = jm_BigInteger__init_0(var$8, var$10.length, var$9);
32266
+ jm_BigInteger_cutOffLeadingZeroes($this);
32267
+ }
32268
+ }
32269
+ }
32270
+ }
32271
+ return $this;
32272
+ };
32273
+ var jm_BigInteger_shiftRight = ($this, $n) => {
32274
+ if ($n && $this.$sign0)
32275
+ return $n > 0 ? jm_BitLevel_shiftRight($this, $n) : jm_BitLevel_shiftLeft($this, -$n | 0);
32276
+ return $this;
32277
+ };
32278
+ var jm_BigInteger_shiftLeft = ($this, $n) => {
32279
+ if ($n && $this.$sign0)
32280
+ return $n > 0 ? jm_BitLevel_shiftLeft($this, $n) : jm_BitLevel_shiftRight($this, -$n | 0);
32281
+ return $this;
32282
+ };
32283
+ var jm_BigInteger_bitLength = ($this) => {
32284
+ let var$1, var$2, var$3, var$4;
32285
+ var$1 = $this.$sign0;
32286
+ if (!var$1)
32287
+ var$2 = 0;
32288
+ else {
32289
+ var$3 = $this.$numberLength;
32290
+ var$4 = var$3 << 5;
32291
+ var$2 = $this.$digits.data[var$3 - 1 | 0];
32292
+ if (var$1 < 0 && jm_BigInteger_getFirstNonzeroDigit($this) == ($this.$numberLength - 1 | 0))
32293
+ var$2 = var$2 + -1 | 0;
32294
+ var$2 = var$4 - jl_Integer_numberOfLeadingZeros(var$2) | 0;
32295
+ }
32296
+ return var$2;
32297
+ };
32298
+ var jm_BigInteger_testBit = ($this, $n) => {
32299
+ let var$2, $intCount, $digit, $firstNonZeroDigit;
32300
+ if (!$n)
32301
+ return !($this.$digits.data[0] & 1) ? 0 : 1;
32302
+ if ($n < 0) {
32303
+ var$2 = new jl_ArithmeticException();
32304
+ jl_Throwable__init_0(var$2, $rt_s(1630));
32305
+ $rt_throw(var$2);
32306
+ }
32307
+ $intCount = $n >> 5;
32308
+ if ($intCount >= $this.$numberLength)
32309
+ return $this.$sign0 >= 0 ? 0 : 1;
32310
+ $digit = $this.$digits.data[$intCount];
32311
+ $n = 1 << ($n & 31);
32312
+ if ($this.$sign0 < 0) {
32313
+ $firstNonZeroDigit = jm_BigInteger_getFirstNonzeroDigit($this);
32314
+ if ($intCount < $firstNonZeroDigit)
32315
+ return 0;
32316
+ $digit = $firstNonZeroDigit == $intCount ? -$digit | 0 : $digit ^ -1;
32317
+ }
32318
+ return !($digit & $n) ? 0 : 1;
32319
+ };
32320
+ var jm_BigInteger_getLowestSetBit = ($this) => {
32321
+ let $i;
32322
+ if (!$this.$sign0)
32323
+ return -1;
32324
+ $i = jm_BigInteger_getFirstNonzeroDigit($this);
32325
+ return ($i << 5) + jl_Integer_numberOfTrailingZeros($this.$digits.data[$i]) | 0;
32326
+ };
32327
+ var jm_BigInteger_intValueExact = ($this) => {
32328
+ let var$1;
32329
+ if ($this.$numberLength <= 1 && jm_BigInteger_bitLength($this) <= 31)
32330
+ return $rt_imul($this.$sign0, $this.$digits.data[0]);
32331
+ var$1 = new jl_ArithmeticException();
32332
+ jl_Throwable__init_0(var$1, $rt_s(1631));
32333
+ $rt_throw(var$1);
32334
+ };
32335
+ var jm_BigInteger_longValue = ($this) => {
32336
+ let $value, var$2;
32337
+ if ($this.$numberLength <= 1)
32338
+ $value = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
32339
+ else {
32340
+ var$2 = $this.$digits.data;
32341
+ $value = Long_or(Long_shl(Long_fromInt(var$2[1]), 32), Long_and(Long_fromInt(var$2[0]), Long_create(4294967295, 0)));
32342
+ }
32343
+ return Long_mul(Long_fromInt($this.$sign0), $value);
32344
+ };
32345
+ var jm_BigInteger_longValueExact = ($this) => {
32346
+ let var$1;
32347
+ if ($this.$numberLength <= 2 && jm_BigInteger_bitLength($this) <= 63)
32348
+ return jm_BigInteger_longValue($this);
32349
+ var$1 = new jl_ArithmeticException();
32350
+ jl_Throwable__init_0(var$1, $rt_s(1632));
32351
+ $rt_throw(var$1);
32352
+ };
32353
+ var jm_BigInteger_compareTo = ($this, $val) => {
32354
+ let var$2, var$3, var$4, var$5;
32355
+ var$2 = $this.$sign0;
32356
+ var$3 = $val.$sign0;
32357
+ var$4 = $rt_compare(var$2, var$3);
32358
+ if (var$4 > 0)
32359
+ return 1;
32360
+ if (var$4 < 0)
32361
+ return -1;
32362
+ var$4 = $this.$numberLength;
32363
+ var$5 = $rt_compare(var$4, $val.$numberLength);
32364
+ if (var$5 > 0)
32365
+ return var$2;
32366
+ if (var$5 < 0)
32367
+ return -var$3 | 0;
32368
+ return $rt_imul(var$2, jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4));
32369
+ };
32370
+ var jm_BigInteger_equals = ($this, $x) => {
32371
+ let $x1, var$3, var$4, var$5;
32372
+ if ($this === $x)
32373
+ return 1;
32374
+ if (!($x instanceof jm_BigInteger))
32375
+ return 0;
32376
+ a: {
32377
+ $x1 = $x;
32378
+ if ($this.$sign0 == $x1.$sign0) {
32379
+ var$3 = $this.$numberLength;
32380
+ if (var$3 == $x1.$numberLength) {
32381
+ var$4 = $x1.$digits;
32382
+ var$3 = var$3 - 1 | 0;
32383
+ while (var$3 >= 0) {
32384
+ var$5 = var$4.data;
32385
+ if ($this.$digits.data[var$3] != var$5[var$3])
32386
+ break;
32387
+ var$3 = var$3 + -1 | 0;
32388
+ }
32389
+ if (var$3 >= 0 ? 0 : 1) {
32390
+ var$3 = 1;
32391
+ break a;
32392
+ }
32393
+ }
32394
+ }
32395
+ var$3 = 0;
32396
+ }
32397
+ return var$3;
32398
+ };
32399
+ var jm_BigInteger_multiply = ($this, $val) => {
32400
+ if (!$val.$sign0)
32401
+ return jm_BigInteger_ZERO;
32402
+ if (!$this.$sign0)
32403
+ return jm_BigInteger_ZERO;
32404
+ jm_Multiplication_$callClinit();
32405
+ return jm_Multiplication_karatsuba($this, $val);
32406
+ };
32407
+ var jm_BigInteger_cutOffLeadingZeroes = ($this) => {
32408
+ let var$1, var$2, var$3;
32409
+ while (true) {
32410
+ var$1 = $this.$numberLength;
32411
+ if (var$1 <= 0)
32412
+ break;
32413
+ var$2 = $this.$digits.data;
32414
+ var$1 = var$1 - 1 | 0;
32415
+ $this.$numberLength = var$1;
32416
+ if (var$2[var$1])
32417
+ break;
32418
+ }
32419
+ var$2 = $this.$digits.data;
32420
+ var$3 = $this.$numberLength;
32421
+ $this.$numberLength = var$3 + 1 | 0;
32422
+ if (!var$2[var$3])
32423
+ $this.$sign0 = 0;
32424
+ };
32425
+ var jm_BigInteger_getFirstNonzeroDigit = ($this) => {
32426
+ let $i;
32427
+ if ($this.$firstNonzeroDigit == -2) {
32428
+ if (!$this.$sign0)
32429
+ $i = -1;
32430
+ else {
32431
+ $i = 0;
32432
+ while (!$this.$digits.data[$i]) {
32433
+ $i = $i + 1 | 0;
32434
+ }
32435
+ }
32436
+ $this.$firstNonzeroDigit = $i;
32437
+ }
32438
+ return $this.$firstNonzeroDigit;
32439
+ };
32440
+ var jm_BigInteger__clinit_ = () => {
32441
+ let var$1, var$2, $i;
32442
+ jm_BigInteger_ZERO = jm_BigInteger__init_(0, 0);
32443
+ jm_BigInteger_ONE = jm_BigInteger__init_(1, 1);
32444
+ jm_BigInteger_TWO = jm_BigInteger__init_(1, 2);
32445
+ jm_BigInteger_TEN = jm_BigInteger__init_(1, 10);
32446
+ jm_BigInteger_MINUS_ONE = jm_BigInteger__init_(-1, 1);
32447
+ var$1 = $rt_createArray(jm_BigInteger, 11);
32448
+ var$2 = var$1.data;
32449
+ var$2[0] = jm_BigInteger_ZERO;
32450
+ var$2[1] = jm_BigInteger_ONE;
32451
+ var$2[2] = jm_BigInteger_TWO;
32452
+ var$2[3] = jm_BigInteger__init_(1, 3);
32453
+ var$2[4] = jm_BigInteger__init_(1, 4);
32454
+ var$2[5] = jm_BigInteger__init_(1, 5);
32455
+ var$2[6] = jm_BigInteger__init_(1, 6);
32456
+ var$2[7] = jm_BigInteger__init_(1, 7);
32457
+ var$2[8] = jm_BigInteger__init_(1, 8);
32458
+ var$2[9] = jm_BigInteger__init_(1, 9);
32459
+ var$2[10] = jm_BigInteger_TEN;
32460
+ jm_BigInteger_SMALL_VALUES = var$1;
32461
+ jm_BigInteger_TWO_POWS = $rt_createArray(jm_BigInteger, 32);
32462
+ $i = 0;
32463
+ while (true) {
32464
+ var$1 = jm_BigInteger_TWO_POWS.data;
32465
+ if ($i >= var$1.length)
32466
+ break;
32467
+ var$1[$i] = jm_BigInteger_valueOf(Long_shl(Long_fromInt(1), $i));
32468
+ $i = $i + 1 | 0;
32469
+ }
32470
+ };
32480
32471
  function jnci_BufferedEncoder$Controller() {
32481
32472
  let a = this;
32482
32473
  jl_Object.call(a);
@@ -32766,6 +32757,7 @@ var jm_Elementary_subtract = ($a, $aSize, $b, $bSize) => {
32766
32757
  }
32767
32758
  return $res;
32768
32759
  };
32760
+ var jl_ArithmeticException = $rt_classWithoutFields(jl_RuntimeException);
32769
32761
  var jm_BitLevel = $rt_classWithoutFields();
32770
32762
  var jm_BitLevel_shiftLeft = ($source, $count) => {
32771
32763
  let $intCount, var$4, var$5, $resLength, $resDigits, var$8, var$9, var$10, var$11, var$12, $result;
@@ -32880,7 +32872,6 @@ var jm_BitLevel_shiftRight = ($source, $count) => {
32880
32872
  jm_BigInteger_cutOffLeadingZeroes($result);
32881
32873
  return $result;
32882
32874
  };
32883
- var jl_ArithmeticException = $rt_classWithoutFields(jl_RuntimeException);
32884
32875
  var asrrs_NullString = $rt_classWithoutFields();
32885
32876
  var asrrs_NullString_get = ($statement) => {
32886
32877
  return asrrs_NullString_get0($statement, $rt_s(220));
@@ -34624,7 +34615,7 @@ $rt_metadata([
34624
34615
  0,
34625
34616
  0,
34626
34617
  0,
34627
- asr_JsRiscV$getInstructionSet$lambda$_34_0,
34618
+ asr_JsRiscV$getInstructionSet$lambda$_35_0,
34628
34619
  0,
34629
34620
  jl_Object,
34630
34621
  [juf_Function],
@@ -34632,7 +34623,7 @@ $rt_metadata([
34632
34623
  3,
34633
34624
  0,
34634
34625
  0,
34635
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_34_0_apply)],
34626
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_35_0_apply)],
34636
34627
  juf_IntFunction,
34637
34628
  0,
34638
34629
  jl_Object,
@@ -34642,7 +34633,7 @@ $rt_metadata([
34642
34633
  0,
34643
34634
  0,
34644
34635
  0,
34645
- asr_JsRiscV$getInstructionSet$lambda$_34_1,
34636
+ asr_JsRiscV$getInstructionSet$lambda$_35_1,
34646
34637
  0,
34647
34638
  jl_Object,
34648
34639
  [juf_IntFunction],
@@ -34650,7 +34641,7 @@ $rt_metadata([
34650
34641
  3,
34651
34642
  0,
34652
34643
  0,
34653
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_34_1_apply)],
34644
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_35_1_apply)],
34654
34645
  asr_JsInstruction,
34655
34646
  "JsInstruction",
34656
34647
  10,
@@ -34723,7 +34714,7 @@ $rt_metadata([
34723
34714
  0,
34724
34715
  3,
34725
34716
  0,
34726
- asrr_InstructionSet_$callClinit,
34717
+ 0,
34727
34718
  0,
34728
34719
  ju_Observable,
34729
34720
  0,
@@ -34891,26 +34882,6 @@ $rt_metadata([
34891
34882
  0,
34892
34883
  0,
34893
34884
  ["$get0", $rt_wrapFunction1(ju_ArrayList_get), "$size", $rt_wrapFunction0(ju_ArrayList_size)],
34894
- jl_Enum,
34895
- "Enum",
34896
- 14,
34897
- jl_Object,
34898
- [jl_Comparable, ji_Serializable],
34899
- 1,
34900
- 3,
34901
- 0,
34902
- 0,
34903
- ["$toString", $rt_wrapFunction0(jl_Enum_toString), "$equals", $rt_wrapFunction1(jl_Enum_equals), "$hashCode", $rt_wrapFunction0(jl_Enum_hashCode), "$compareTo", $rt_wrapFunction1(jl_Enum_compareTo)],
34904
- asr_Settings$Bool,
34905
- "Settings$Bool",
34906
- 2,
34907
- jl_Enum,
34908
- [],
34909
- 12,
34910
- 3,
34911
- 0,
34912
- 0,
34913
- 0,
34914
34885
  asrrh_MemoryConfigurations,
34915
34886
  0,
34916
34887
  jl_Object,
@@ -34956,6 +34927,26 @@ $rt_metadata([
34956
34927
  0,
34957
34928
  0,
34958
34929
  0,
34930
+ jl_Enum,
34931
+ "Enum",
34932
+ 14,
34933
+ jl_Object,
34934
+ [jl_Comparable, ji_Serializable],
34935
+ 1,
34936
+ 3,
34937
+ 0,
34938
+ 0,
34939
+ ["$toString", $rt_wrapFunction0(jl_Enum_toString), "$equals", $rt_wrapFunction1(jl_Enum_equals), "$hashCode", $rt_wrapFunction0(jl_Enum_hashCode), "$compareTo", $rt_wrapFunction1(jl_Enum_compareTo)],
34940
+ asr_Settings$Bool,
34941
+ "Settings$Bool",
34942
+ 2,
34943
+ jl_Enum,
34944
+ [],
34945
+ 12,
34946
+ 3,
34947
+ 0,
34948
+ 0,
34949
+ 0,
34959
34950
  jl_Boolean,
34960
34951
  "Boolean",
34961
34952
  14,
@@ -35003,45 +34994,36 @@ $rt_metadata([
35003
34994
  0,
35004
34995
  0,
35005
34996
  0,
35006
- asr_JsRiscV$getTokenizedLines$lambda$_5_0,
34997
+ ju_Arrays,
35007
34998
  0,
35008
34999
  jl_Object,
35009
- [juf_Function],
35000
+ [],
35010
35001
  0,
35011
35002
  3,
35012
35003
  0,
35013
35004
  0,
35014
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply)],
35015
- asr_JsRiscV$getTokenizedLines$lambda$_5_1,
35016
- 0,
35017
- jl_Object,
35018
- [juf_IntFunction],
35019
- 0,
35020
- 3,
35021
35005
  0,
35006
+ asr_JsRiscV$getUndoStack$lambda$_22_0,
35022
35007
  0,
35023
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply)],
35024
- asr_JsRiscVTokenizedLine,
35025
- "JsRiscVTokenizedLine",
35026
- 10,
35027
35008
  jl_Object,
35028
- [],
35009
+ [juf_Function],
35029
35010
  0,
35030
35011
  3,
35031
35012
  0,
35032
35013
  0,
35033
- 0,
35034
- asrrh_RegisterFile,
35014
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_22_0_apply)],
35015
+ asr_JsRiscV$getUndoStack$lambda$_22_1,
35035
35016
  0,
35036
35017
  jl_Object,
35037
- [],
35018
+ [juf_IntFunction],
35038
35019
  0,
35039
35020
  3,
35040
35021
  0,
35041
- asrrh_RegisterFile_$callClinit,
35042
- 0,
35043
- ju_Arrays,
35044
35022
  0,
35023
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_22_1_apply)],
35024
+ asr_JsBackStep,
35025
+ "JsBackStep",
35026
+ 10,
35045
35027
  jl_Object,
35046
35028
  [],
35047
35029
  0,
@@ -35049,7 +35031,7 @@ $rt_metadata([
35049
35031
  0,
35050
35032
  0,
35051
35033
  0,
35052
- asr_JsRiscV$getUndoStack$lambda$_21_0,
35034
+ asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35053
35035
  0,
35054
35036
  jl_Object,
35055
35037
  [juf_Function],
@@ -35057,8 +35039,8 @@ $rt_metadata([
35057
35039
  3,
35058
35040
  0,
35059
35041
  0,
35060
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_0_apply)],
35061
- asr_JsRiscV$getUndoStack$lambda$_21_1,
35042
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply)],
35043
+ asr_JsRiscV$getTokenizedLines$lambda$_5_1,
35062
35044
  0,
35063
35045
  jl_Object,
35064
35046
  [juf_IntFunction],
@@ -35066,9 +35048,9 @@ $rt_metadata([
35066
35048
  3,
35067
35049
  0,
35068
35050
  0,
35069
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_1_apply)],
35070
- asr_JsBackStep,
35071
- "JsBackStep",
35051
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply)],
35052
+ asr_JsRiscVTokenizedLine,
35053
+ "JsRiscVTokenizedLine",
35072
35054
  10,
35073
35055
  jl_Object,
35074
35056
  [],
@@ -35077,55 +35059,55 @@ $rt_metadata([
35077
35059
  0,
35078
35060
  0,
35079
35061
  0,
35080
- asr_JsProgramStatement,
35081
- "JsProgramStatement",
35082
- 10,
35062
+ asrrh_RegisterFile,
35063
+ 0,
35083
35064
  jl_Object,
35084
35065
  [],
35085
35066
  0,
35086
35067
  3,
35087
35068
  0,
35069
+ asrrh_RegisterFile_$callClinit,
35088
35070
  0,
35071
+ juf_ToIntFunction,
35089
35072
  0,
35090
- asr_JsCompilationResult,
35091
- "JsCompilationResult",
35092
- 10,
35093
35073
  jl_Object,
35094
35074
  [],
35095
- 0,
35075
+ 3,
35096
35076
  3,
35097
35077
  0,
35098
35078
  0,
35099
35079
  0,
35100
- asr_AssemblyException,
35080
+ asr_JsRiscV$getRegistersValues$lambda$_21_0,
35101
35081
  0,
35102
- jl_Exception,
35103
- [],
35082
+ jl_Object,
35083
+ [juf_ToIntFunction],
35104
35084
  0,
35105
35085
  3,
35106
35086
  0,
35107
35087
  0,
35108
35088
  0,
35109
- juf_ToIntFunction,
35110
- 0,
35089
+ asr_JsProgramStatement,
35090
+ "JsProgramStatement",
35091
+ 10,
35111
35092
  jl_Object,
35112
35093
  [],
35113
- 3,
35114
- 3,
35115
35094
  0,
35095
+ 3,
35116
35096
  0,
35117
35097
  0,
35118
- asr_JsRiscV$getRegistersValues$lambda$_20_0,
35119
35098
  0,
35099
+ asr_JsStackFrame,
35100
+ "JsStackFrame",
35101
+ 10,
35120
35102
  jl_Object,
35121
- [juf_ToIntFunction],
35103
+ [],
35122
35104
  0,
35123
35105
  3,
35124
35106
  0,
35125
35107
  0,
35126
35108
  0,
35127
- asr_JsStackFrame,
35128
- "JsStackFrame",
35109
+ asr_JsCompilationResult,
35110
+ "JsCompilationResult",
35129
35111
  10,
35130
35112
  jl_Object,
35131
35113
  [],
@@ -35134,6 +35116,15 @@ $rt_metadata([
35134
35116
  0,
35135
35117
  0,
35136
35118
  0,
35119
+ asr_AssemblyException,
35120
+ 0,
35121
+ jl_Exception,
35122
+ [],
35123
+ 0,
35124
+ 3,
35125
+ 0,
35126
+ 0,
35127
+ 0,
35137
35128
  ju_Map$Entry,
35138
35129
  0,
35139
35130
  jl_Object,
@@ -36906,8 +36897,9 @@ $rt_metadata([
36906
36897
  0,
36907
36898
  0,
36908
36899
  0,
36909
- asr_ErrorList,
36910
- 0,
36900
+ asrrh_StackFrame,
36901
+ "StackFrame",
36902
+ 7,
36911
36903
  jl_Object,
36912
36904
  [],
36913
36905
  0,
@@ -36915,9 +36907,8 @@ $rt_metadata([
36915
36907
  0,
36916
36908
  0,
36917
36909
  0,
36918
- asrrh_StackFrame,
36919
- "StackFrame",
36920
- 7,
36910
+ asr_ErrorList,
36911
+ 0,
36921
36912
  jl_Object,
36922
36913
  [],
36923
36914
  0,
@@ -37817,15 +37808,6 @@ $rt_metadata([
37817
37808
  0,
37818
37809
  0,
37819
37810
  0,
37820
- jl_NegativeArraySizeException,
37821
- 0,
37822
- jl_RuntimeException,
37823
- [],
37824
- 0,
37825
- 3,
37826
- 0,
37827
- 0,
37828
- 0,
37829
37811
  otjc_JSObjects,
37830
37812
  0,
37831
37813
  jl_Object,
@@ -37853,6 +37835,15 @@ $rt_metadata([
37853
37835
  0,
37854
37836
  0,
37855
37837
  0,
37838
+ jl_NegativeArraySizeException,
37839
+ 0,
37840
+ jl_RuntimeException,
37841
+ [],
37842
+ 0,
37843
+ 3,
37844
+ 0,
37845
+ 0,
37846
+ 0,
37856
37847
  ju_Arrays$ArrayAsList,
37857
37848
  0,
37858
37849
  ju_AbstractList,
@@ -40723,24 +40714,6 @@ $rt_metadata([
40723
40714
  "$NaN",
40724
40715
  $rt_wrapFunction0(asrjt_Float32_NaN0)
40725
40716
  ],
40726
- jm_BigInteger,
40727
- 0,
40728
- jl_Number,
40729
- [jl_Comparable, ji_Serializable],
40730
- 0,
40731
- 3,
40732
- 0,
40733
- 0,
40734
- 0,
40735
- asrjo_Conversions,
40736
- 0,
40737
- jl_Object,
40738
- [],
40739
- 0,
40740
- 3,
40741
- 0,
40742
- 0,
40743
- 0,
40744
40717
  asrjt_Float64,
40745
40718
  0,
40746
40719
  asrjt_Floating,
@@ -40783,7 +40756,7 @@ $rt_metadata([
40783
40756
  "$NaN",
40784
40757
  $rt_wrapFunction0(asrjt_Float64_NaN0)
40785
40758
  ],
40786
- asrjo_Comparisons,
40759
+ asrjo_Conversions,
40787
40760
  0,
40788
40761
  jl_Object,
40789
40762
  [],
@@ -40801,6 +40774,24 @@ $rt_metadata([
40801
40774
  0,
40802
40775
  0,
40803
40776
  0,
40777
+ asrjo_Comparisons,
40778
+ 0,
40779
+ jl_Object,
40780
+ [],
40781
+ 0,
40782
+ 3,
40783
+ 0,
40784
+ 0,
40785
+ 0,
40786
+ jm_BigInteger,
40787
+ 0,
40788
+ jl_Number,
40789
+ [jl_Comparable, ji_Serializable],
40790
+ 0,
40791
+ 3,
40792
+ 0,
40793
+ 0,
40794
+ 0,
40804
40795
  jnci_BufferedEncoder$Controller,
40805
40796
  0,
40806
40797
  jl_Object,
@@ -40875,21 +40866,21 @@ $rt_metadata([
40875
40866
  0,
40876
40867
  0,
40877
40868
  0,
40878
- jm_BitLevel,
40869
+ jl_ArithmeticException,
40879
40870
  0,
40880
- jl_Object,
40871
+ jl_RuntimeException,
40881
40872
  [],
40882
40873
  0,
40874
+ 3,
40883
40875
  0,
40884
40876
  0,
40885
40877
  0,
40878
+ jm_BitLevel,
40886
40879
  0,
40887
- jl_ArithmeticException,
40888
- 0,
40889
- jl_RuntimeException,
40880
+ jl_Object,
40890
40881
  [],
40891
40882
  0,
40892
- 3,
40883
+ 0,
40893
40884
  0,
40894
40885
  0,
40895
40886
  0,
@@ -41274,6 +41265,29 @@ $rt_stringPool([
41274
41265
  "STDOUT",
41275
41266
  "STDERR",
41276
41267
  "File operation OK",
41268
+ "Default",
41269
+ "CompactDataAtZero",
41270
+ "Compact, Data at Address 0",
41271
+ "CompactTextAtZero",
41272
+ "Compact, Text at Address 0",
41273
+ "gp",
41274
+ "sp",
41275
+ ".text base address",
41276
+ "data segment base address",
41277
+ ".extern base address",
41278
+ "global pointer (gp)",
41279
+ ".data base address",
41280
+ "heap base address",
41281
+ "stack pointer (sp)",
41282
+ "stack base address",
41283
+ "user space high address",
41284
+ "kernel space base address",
41285
+ "MMIO base address",
41286
+ "kernel space high address",
41287
+ "data segment limit address",
41288
+ "text limit address",
41289
+ "stack limit address",
41290
+ "memory map limit address",
41277
41291
  "Can't compare ",
41278
41292
  " to ",
41279
41293
  "EXTENDED_ASSEMBLER_ENABLED",
@@ -41305,29 +41319,6 @@ $rt_stringPool([
41305
41319
  "rv64Enabled",
41306
41320
  "DERIVE_CURRENT_WORKING_DIRECTORY",
41307
41321
  "DeriveCurrentWorkingDirectory",
41308
- "Default",
41309
- "CompactDataAtZero",
41310
- "Compact, Data at Address 0",
41311
- "CompactTextAtZero",
41312
- "Compact, Text at Address 0",
41313
- "gp",
41314
- "sp",
41315
- ".text base address",
41316
- "data segment base address",
41317
- ".extern base address",
41318
- "global pointer (gp)",
41319
- ".data base address",
41320
- "heap base address",
41321
- "stack pointer (sp)",
41322
- "stack base address",
41323
- "user space high address",
41324
- "kernel space base address",
41325
- "MMIO base address",
41326
- "kernel space high address",
41327
- "data segment limit address",
41328
- "text limit address",
41329
- "stack limit address",
41330
- "memory map limit address",
41331
41322
  "invalid register name",
41332
41323
  "invalid CSR name",
41333
41324
  "invalid FPU register name",
@@ -42122,7 +42113,7 @@ $rt_stringPool([
42122
42113
  "addi t1,t2,%lo(label) ;addi RG1,RG2,LL5 ;#Load Lower Address : Set t1 to t2 + lower 12-bit label's address",
42123
42114
  "lb t1,%lo(label)(t2) ;lb RG1,LL4(RG7) ;#Load from Address",
42124
42115
  "lh t1,%lo(label)(t2) ;lh RG1,LL4(RG7) ;#Load from Address",
42125
- "lw t1,%lo(label)(t2) ;lw RG1,LL4(RG7) ;#Load from Address",
42116
+ "lw t1,%lo(label)(t2) ;lw RG1,LL4(RnG7) ;#Load from Address",
42126
42117
  "flw f1,%lo(label)(t2) ;flw RG1,LL4(RG7) ;#Load from Address",
42127
42118
  "fld f1,%lo(label)(t2) ;fld RG1,LL4(RG7) ;#Load from Address",
42128
42119
  "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",
@@ -42771,15 +42762,15 @@ $rt_stringPool([
42771
42762
  "NaNs are not exact",
42772
42763
  "Zeros should be handled explicitly",
42773
42764
  "This should not be reachable",
42774
- "Negative bit address",
42775
- "BigInteger out of int range",
42776
- "BigInteger out of long range",
42777
42765
  "There can't be any fractions at this point",
42778
42766
  "Square root of a negative number is not real",
42779
42767
  "Cannot get here",
42780
42768
  "Both should definitely be finite by this point",
42781
42769
  "Accuracy must be a positive number",
42782
42770
  "Divide by Zero is not valid",
42771
+ "Negative bit address",
42772
+ "BigInteger out of int range",
42773
+ "BigInteger out of long range",
42783
42774
  "even",
42784
42775
  "away",
42785
42776
  "min",
@@ -42808,7 +42799,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42808
42799
  c.getCurrentStatementIndex = $rt_callWithReceiver(asr_JsRiscV_getCurrentStatementIndex$exported$28);
42809
42800
  c.setUndoEnabled = $rt_callWithReceiver(asr_JsRiscV_setUndoEnabled$exported$20);
42810
42801
  c.getRegistersValues = $rt_callWithReceiver(asr_JsRiscV_getRegistersValues$exported$6);
42811
- c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$30);
42802
+ c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$31);
42812
42803
  c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$8);
42813
42804
  c.getParsedStatements = $rt_callWithReceiver(asr_JsRiscV_getParsedStatements$exported$18);
42814
42805
  c.getStatementAtSourceLine = $rt_callWithReceiver(asr_JsRiscV_getStatementAtSourceLine$exported$19);
@@ -42826,6 +42817,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42826
42817
  c.registerHandler = $rt_callWithReceiver(asr_JsRiscV_registerHandler$exported$0);
42827
42818
  c.simulateWithLimit = $rt_callWithReceiver(asr_JsRiscV_simulateWithLimit$exported$5);
42828
42819
  c.setIs64Bit = $rt_callWithReceiver(asr_JsRiscV_setIs64Bit$exported$27);
42820
+ c.is64Bit = $rt_callWithReceiver(asr_JsRiscV_is64Bit$exported$30);
42829
42821
  c.getCompiledStatements = $rt_callWithReceiver(asr_JsRiscV_getCompiledStatements$exported$9);
42830
42822
  c.step = $rt_callWithReceiver(asr_JsRiscV_step$exported$25);
42831
42823
  c.initialize = $rt_callWithReceiver(asr_JsRiscV_initialize$exported$12);
@@ -42839,7 +42831,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42839
42831
  get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounter$exported$29)
42840
42832
  });
42841
42833
  Object.defineProperty(c, "stackPointer", {
42842
- get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$31)
42834
+ get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$32)
42843
42835
  });
42844
42836
  Object.defineProperty(c, "terminated", {
42845
42837
  get: $rt_callWithReceiver(asr_JsRiscV_terminated$exported$11)
@@ -42857,13 +42849,6 @@ var $rt_jso_marker = Symbol("jsoClass");
42857
42849
  Object.defineProperty(c, "example", {
42858
42850
  get: $rt_callWithReceiver(asr_JsInstruction_getExample$exported$3)
42859
42851
  });
42860
- c = asr_JsRiscVTokenizedLine.prototype;
42861
- Object.defineProperty(c, "line", {
42862
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42863
- });
42864
- Object.defineProperty(c, "tokens", {
42865
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42866
- });
42867
42852
  c = asr_JsBackStep.prototype;
42868
42853
  Object.defineProperty(c, "pc", {
42869
42854
  get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
@@ -42877,6 +42862,13 @@ var $rt_jso_marker = Symbol("jsoClass");
42877
42862
  Object.defineProperty(c, "param2", {
42878
42863
  get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42879
42864
  });
42865
+ c = asr_JsRiscVTokenizedLine.prototype;
42866
+ Object.defineProperty(c, "line", {
42867
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42868
+ });
42869
+ Object.defineProperty(c, "tokens", {
42870
+ get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
42871
+ });
42880
42872
  c = asr_JsProgramStatement.prototype;
42881
42873
  Object.defineProperty(c, "assemblyStatement", {
42882
42874
  get: $rt_callWithReceiver(asr_JsProgramStatement_getAssemblyStatement$exported$1)
@@ -42896,16 +42888,6 @@ var $rt_jso_marker = Symbol("jsoClass");
42896
42888
  Object.defineProperty(c, "source", {
42897
42889
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
42898
42890
  });
42899
- c = asr_JsCompilationResult.prototype;
42900
- Object.defineProperty(c, "hasErrors", {
42901
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
42902
- });
42903
- Object.defineProperty(c, "report", {
42904
- get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$2)
42905
- });
42906
- Object.defineProperty(c, "errors", {
42907
- get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
42908
- });
42909
42891
  c = asr_JsStackFrame.prototype;
42910
42892
  Object.defineProperty(c, "pc", {
42911
42893
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -42922,6 +42904,16 @@ var $rt_jso_marker = Symbol("jsoClass");
42922
42904
  Object.defineProperty(c, "toAddress", {
42923
42905
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
42924
42906
  });
42907
+ c = asr_JsCompilationResult.prototype;
42908
+ Object.defineProperty(c, "hasErrors", {
42909
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
42910
+ });
42911
+ Object.defineProperty(c, "report", {
42912
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$2)
42913
+ });
42914
+ Object.defineProperty(c, "errors", {
42915
+ get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
42916
+ });
42925
42917
  c = asr_JsCompilationResult$JsCompilationError.prototype;
42926
42918
  Object.defineProperty(c, "macroExpansionHistory", {
42927
42919
  get: $rt_callWithReceiver(asr_JsCompilationResult$JsCompilationError_getMacroExpansionHistory$exported$3)
@@ -42968,26 +42960,26 @@ function $rt_export_class_JsInstruction_32() {
42968
42960
  throw new Error("Can't instantiate this class directly");
42969
42961
  }
42970
42962
  $rt_export_class_JsInstruction_32.prototype = asr_JsInstruction.prototype;
42971
- function $rt_export_class_JsRiscVTokenizedLine_72() {
42963
+ function $rt_export_class_JsBackStep_73() {
42972
42964
  throw new Error("Can't instantiate this class directly");
42973
42965
  }
42974
- $rt_export_class_JsRiscVTokenizedLine_72.prototype = asr_JsRiscVTokenizedLine.prototype;
42975
- function $rt_export_class_JsBackStep_77() {
42966
+ $rt_export_class_JsBackStep_73.prototype = asr_JsBackStep.prototype;
42967
+ function $rt_export_class_JsRiscVTokenizedLine_76() {
42976
42968
  throw new Error("Can't instantiate this class directly");
42977
42969
  }
42978
- $rt_export_class_JsBackStep_77.prototype = asr_JsBackStep.prototype;
42979
- function $rt_export_class_JsProgramStatement_78() {
42970
+ $rt_export_class_JsRiscVTokenizedLine_76.prototype = asr_JsRiscVTokenizedLine.prototype;
42971
+ function $rt_export_class_JsProgramStatement_80() {
42980
42972
  throw new Error("Can't instantiate this class directly");
42981
42973
  }
42982
- $rt_export_class_JsProgramStatement_78.prototype = asr_JsProgramStatement.prototype;
42983
- function $rt_export_class_JsCompilationResult_79() {
42974
+ $rt_export_class_JsProgramStatement_80.prototype = asr_JsProgramStatement.prototype;
42975
+ function $rt_export_class_JsStackFrame_81() {
42984
42976
  throw new Error("Can't instantiate this class directly");
42985
42977
  }
42986
- $rt_export_class_JsCompilationResult_79.prototype = asr_JsCompilationResult.prototype;
42987
- function $rt_export_class_JsStackFrame_83() {
42978
+ $rt_export_class_JsStackFrame_81.prototype = asr_JsStackFrame.prototype;
42979
+ function $rt_export_class_JsCompilationResult_82() {
42988
42980
  throw new Error("Can't instantiate this class directly");
42989
42981
  }
42990
- $rt_export_class_JsStackFrame_83.prototype = asr_JsStackFrame.prototype;
42982
+ $rt_export_class_JsCompilationResult_82.prototype = asr_JsCompilationResult.prototype;
42991
42983
  function $rt_export_class_JsCompilationError_349() {
42992
42984
  throw new Error("Can't instantiate this class directly");
42993
42985
  }
@@ -43030,6 +43022,9 @@ var RISCV = class {
43030
43022
  static setIs64Bit(is64Bit) {
43031
43023
  asr_JsRiscV_setIs64Bit$exported$27(is64Bit);
43032
43024
  }
43025
+ static is64Bit() {
43026
+ return asr_JsRiscV_is64Bit$exported$30();
43027
+ }
43033
43028
  };
43034
43029
  var BackStepAction = /* @__PURE__ */ ((BackStepAction2) => {
43035
43030
  BackStepAction2[BackStepAction2["MEMORY_RESTORE_RAW_WORD"] = 0] = "MEMORY_RESTORE_RAW_WORD";