@specy/risc-v 0.1.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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,6 +3163,7 @@ 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_rv64 = var$3;
3166
3167
  var$1 = asrr_InstructionSet__init_();
3167
3168
  asr_Globals_instructionSet = var$1;
3168
3169
  asrr_InstructionSet_populate(var$1);
@@ -3177,7 +3178,14 @@ var asr_JsRiscV_getProgramCounter$exported$29 = (var$1) => {
3177
3178
  var$1;
3178
3179
  return asrrh_RegisterFile_getProgramCounter();
3179
3180
  };
3180
- 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) => {
3181
3189
  let var$4, var$5, var$6, var$7, var$8;
3182
3190
  asr_JsRiscV_$callClinit();
3183
3191
  var$4 = var$2;
@@ -3193,7 +3201,7 @@ var asr_JsRiscV_readMemoryBytes$exported$30 = (var$1, var$2, var$3) => {
3193
3201
  }
3194
3202
  return otji_JS_wrap0(var$6);
3195
3203
  };
3196
- var asr_JsRiscV_getStackPointer$exported$31 = (var$1) => {
3204
+ var asr_JsRiscV_getStackPointer$exported$32 = (var$1) => {
3197
3205
  asr_JsRiscV_$callClinit();
3198
3206
  var$1;
3199
3207
  return Long_lo(asrrh_RegisterFile_getStackPointerRegister().$getValue());
@@ -3272,9 +3280,9 @@ var asr_JsRiscV_getInstructionSet$exported$2 = () => {
3272
3280
  if (asr_Globals_instructionSet === null)
3273
3281
  asr_RARS_initializeRISCV();
3274
3282
  var$1 = ju_Collection_stream(asr_Globals_instructionSet.$instructionList);
3275
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_34_0();
3283
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_35_0();
3276
3284
  var$1 = jusi_SimpleStreamImpl_map(var$1, var$2);
3277
- var$2 = new asr_JsRiscV$getInstructionSet$lambda$_34_1();
3285
+ var$2 = new asr_JsRiscV$getInstructionSet$lambda$_35_1();
3278
3286
  return otji_JS_wrap(jusi_SimpleStreamImpl_toArray(var$1, var$2));
3279
3287
  };
3280
3288
  var asr_JsRiscV__clinit_ = () => {
@@ -3286,12 +3294,13 @@ var asr_JsRiscV__clinit_ = () => {
3286
3294
  jur_AbstractSet__clinit_();
3287
3295
  jur_AbstractCharClass$PredefinedCharacterClasses__clinit_();
3288
3296
  jur_AbstractCharClass__clinit_();
3289
- asr_Settings$Bool__clinit_();
3290
- jl_Boolean__clinit_();
3297
+ asrr_InstructionSet__clinit_();
3291
3298
  asrrh_MemoryConfigurations__clinit_();
3292
3299
  ju_Vector__clinit_();
3293
3300
  asra_SymbolTable__clinit_();
3294
3301
  asru_SystemIO__clinit_();
3302
+ asr_Settings$Bool__clinit_();
3303
+ jl_Boolean__clinit_();
3295
3304
  asrr_Instruction__clinit_();
3296
3305
  ju_Collections__clinit_();
3297
3306
  asrr_AbstractSyscall__clinit_();
@@ -3320,10 +3329,10 @@ var asr_JsRiscV__clinit_ = () => {
3320
3329
  jnc_CodingErrorAction__clinit_();
3321
3330
  jnc_CoderResult__clinit_();
3322
3331
  jn_ByteOrder__clinit_();
3323
- asrjt_Float64__clinit_();
3324
3332
  asrjt_Float32__clinit_();
3325
- jm_BigInteger__clinit_();
3333
+ asrjt_Float64__clinit_();
3326
3334
  asrjo_Arithmetic__clinit_();
3335
+ jm_BigInteger__clinit_();
3327
3336
  asrj_RoundingMode__clinit_();
3328
3337
  asrj_Flags__clinit_();
3329
3338
  asrji_ExactFloat__clinit_();
@@ -4002,8 +4011,8 @@ var asr_RARS_simulate = ($this, $limit) => {
4002
4011
  $rt_nativeThread().push($this, $limit, var$2, $ptr);
4003
4012
  };
4004
4013
  var juf_Function = $rt_classWithoutFields(0);
4005
- var asr_JsRiscV$getInstructionSet$lambda$_34_0 = $rt_classWithoutFields();
4006
- 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) => {
4007
4016
  let var$2, var$3;
4008
4017
  var$1 = var$1;
4009
4018
  var$2 = new asr_JsInstruction();
@@ -4019,8 +4028,8 @@ var asr_JsRiscV$getInstructionSet$lambda$_34_0_apply = (var$0, var$1) => {
4019
4028
  return var$2;
4020
4029
  };
4021
4030
  var juf_IntFunction = $rt_classWithoutFields(0);
4022
- var asr_JsRiscV$getInstructionSet$lambda$_34_1 = $rt_classWithoutFields();
4023
- 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) => {
4024
4033
  asr_JsRiscV_$callClinit();
4025
4034
  return $rt_createArray(asr_JsInstruction, var$1);
4026
4035
  };
@@ -4347,12 +4356,7 @@ function asrr_InstructionSet() {
4347
4356
  a.$opcodeMatchMaps = null;
4348
4357
  }
4349
4358
  var asrr_InstructionSet_rv64 = 0;
4350
- var asrr_InstructionSet_$callClinit = () => {
4351
- asrr_InstructionSet_$callClinit = $rt_eraseClinit(asrr_InstructionSet);
4352
- asrr_InstructionSet__clinit_();
4353
- };
4354
4359
  var asrr_InstructionSet__init_0 = ($this) => {
4355
- asrr_InstructionSet_$callClinit();
4356
4360
  $this.$instructionList = ju_ArrayList__init_();
4357
4361
  };
4358
4362
  var asrr_InstructionSet__init_ = () => {
@@ -4464,12 +4468,7 @@ var asrr_InstructionSet_matchOperator = ($this, $name) => {
4464
4468
  }
4465
4469
  return $matchingInstructions;
4466
4470
  };
4467
- var asrr_InstructionSet_processJump = ($targetAddress) => {
4468
- asrr_InstructionSet_$callClinit();
4469
- asrrh_RegisterFile_setProgramCounter($targetAddress);
4470
- };
4471
4471
  var asrr_InstructionSet_processReturnAddress = ($register) => {
4472
- asrr_InstructionSet_$callClinit();
4473
4472
  asrrh_RegisterFile_updateRegister($register, Long_fromInt(asrrh_RegisterFile_getProgramCounter()));
4474
4473
  };
4475
4474
  var asrr_InstructionSet_addBasicInstructions = ($this) => {
@@ -4582,7 +4581,6 @@ var asrr_InstructionSet_addBasicInstructions = ($this) => {
4582
4581
  ju_ArrayList_add($this.$instructionList, asrri_WFI__init_());
4583
4582
  ju_ArrayList_add($this.$instructionList, asrri_XOR__init_());
4584
4583
  ju_ArrayList_add($this.$instructionList, asrri_XORI__init_0());
4585
- asrr_InstructionSet_$callClinit();
4586
4584
  if (asrr_InstructionSet_rv64) {
4587
4585
  ju_ArrayList_add($this.$instructionList, asrri_ADDW__init_());
4588
4586
  ju_ArrayList_add($this.$instructionList, asrri_ADDIW__init_0());
@@ -4617,7 +4615,7 @@ var asrr_InstructionSet_addBasicInstructions = ($this) => {
4617
4615
  }
4618
4616
  };
4619
4617
  var asrr_InstructionSet__clinit_ = () => {
4620
- asrr_InstructionSet_rv64 = asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_RV64_ENABLED);
4618
+ asrr_InstructionSet_rv64 = 0;
4621
4619
  };
4622
4620
  function ju_Observable() {
4623
4621
  let a = this;
@@ -6105,6 +6103,70 @@ var ju_ArrayList_checkIndex = ($this, $index) => {
6105
6103
  jl_Throwable__init_(var$2);
6106
6104
  $rt_throw(var$2);
6107
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);
6108
6170
  function jl_Enum() {
6109
6171
  let a = this;
6110
6172
  jl_Object.call(a);
@@ -6144,7 +6206,7 @@ var jl_Enum_compareTo = ($this, var$1) => {
6144
6206
  var$1 = jl_String_valueOf(jl_Enum_getDeclaringClass(var$1));
6145
6207
  var$4 = new jl_StringBuilder();
6146
6208
  jl_AbstractStringBuilder__init_(var$4);
6147
- 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);
6148
6210
  jl_Throwable__init_0(var$2, jl_AbstractStringBuilder_toString(var$4));
6149
6211
  $rt_throw(var$2);
6150
6212
  };
@@ -6198,28 +6260,28 @@ var asr_Settings$Bool_getName = ($this) => {
6198
6260
  };
6199
6261
  var asr_Settings$Bool__clinit_ = () => {
6200
6262
  let var$1, var$2, var$3;
6201
- asr_Settings$Bool_EXTENDED_ASSEMBLER_ENABLED = asr_Settings$Bool__init_($rt_s(129), 0, $rt_s(94), 1);
6202
- asr_Settings$Bool_ASSEMBLE_ON_OPEN = asr_Settings$Bool__init_($rt_s(130), 1, $rt_s(85), 0);
6203
- asr_Settings$Bool_ASSEMBLE_OPEN = asr_Settings$Bool__init_($rt_s(131), 2, $rt_s(132), 0);
6204
- asr_Settings$Bool_ASSEMBLE_ALL = asr_Settings$Bool__init_($rt_s(133), 3, $rt_s(83), 0);
6205
- asr_Settings$Bool_LABEL_WINDOW_VISIBILITY = asr_Settings$Bool__init_($rt_s(134), 4, $rt_s(95), 0);
6206
- asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX = asr_Settings$Bool__init_($rt_s(135), 5, $rt_s(90), 1);
6207
- asr_Settings$Bool_DISPLAY_VALUES_IN_HEX = asr_Settings$Bool__init_($rt_s(136), 6, $rt_s(91), 1);
6208
- asr_Settings$Bool_EXCEPTION_HANDLER_ENABLED = asr_Settings$Bool__init_($rt_s(137), 7, $rt_s(96), 0);
6209
- asr_Settings$Bool_EDITOR_LINE_NUMBERS_DISPLAYED = asr_Settings$Bool__init_($rt_s(138), 8, $rt_s(93), 1);
6210
- asr_Settings$Bool_WARNINGS_ARE_ERRORS = asr_Settings$Bool__init_($rt_s(139), 9, $rt_s(100), 0);
6211
- asr_Settings$Bool_PROGRAM_ARGUMENTS = asr_Settings$Bool__init_($rt_s(140), 10, $rt_s(97), 0);
6212
- asr_Settings$Bool_DATA_SEGMENT_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(141), 11, $rt_s(87), 1);
6213
- asr_Settings$Bool_REGISTERS_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(142), 12, $rt_s(98), 1);
6214
- asr_Settings$Bool_START_AT_MAIN = asr_Settings$Bool__init_($rt_s(143), 13, $rt_s(99), 0);
6215
- asr_Settings$Bool_EDITOR_CURRENT_LINE_HIGHLIGHTING = asr_Settings$Bool__init_($rt_s(144), 14, $rt_s(92), 1);
6216
- asr_Settings$Bool_POPUP_INSTRUCTION_GUIDANCE = asr_Settings$Bool__init_($rt_s(145), 15, $rt_s(101), 1);
6217
- asr_Settings$Bool_POPUP_SYSCALL_INPUT = asr_Settings$Bool__init_($rt_s(146), 16, $rt_s(147), 0);
6218
- asr_Settings$Bool_GENERIC_TEXT_EDITOR = asr_Settings$Bool__init_($rt_s(148), 17, $rt_s(149), 0);
6219
- asr_Settings$Bool_AUTO_INDENT = asr_Settings$Bool__init_($rt_s(150), 18, $rt_s(151), 1);
6220
- asr_Settings$Bool_SELF_MODIFYING_CODE_ENABLED = asr_Settings$Bool__init_($rt_s(152), 19, $rt_s(153), 0);
6221
- asr_Settings$Bool_RV64_ENABLED = asr_Settings$Bool__init_($rt_s(154), 20, $rt_s(155), 0);
6222
- 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);
6223
6285
  asr_Settings$Bool_DERIVE_CURRENT_WORKING_DIRECTORY = var$1;
6224
6286
  var$2 = $rt_createArray(asr_Settings$Bool, 22);
6225
6287
  var$3 = var$2.data;
@@ -6247,70 +6309,6 @@ var asr_Settings$Bool__clinit_ = () => {
6247
6309
  var$3[21] = var$1;
6248
6310
  asr_Settings$Bool_$VALUES = var$2;
6249
6311
  };
6250
- var asrrh_MemoryConfigurations = $rt_classWithoutFields();
6251
- var asrrh_MemoryConfigurations_configurations = null;
6252
- var asrrh_MemoryConfigurations_defaultConfiguration = null;
6253
- var asrrh_MemoryConfigurations_currentConfiguration = null;
6254
- var asrrh_MemoryConfigurations_configurationItemNames = null;
6255
- var asrrh_MemoryConfigurations_defaultConfigurationItemValues = null;
6256
- var asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = null;
6257
- var asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = null;
6258
- var asrrh_MemoryConfigurations_buildConfigurationCollection = () => {
6259
- let var$1, var$2, var$3, var$4;
6260
- if (asrrh_MemoryConfigurations_configurations === null) {
6261
- var$1 = ju_ArrayList__init_();
6262
- asrrh_MemoryConfigurations_configurations = var$1;
6263
- ju_ArrayList_add(var$1, asrrh_MemoryConfiguration__init_($rt_s(158), $rt_s(158), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_defaultConfigurationItemValues));
6264
- ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(159), $rt_s(160), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues));
6265
- ju_ArrayList_add(asrrh_MemoryConfigurations_configurations, asrrh_MemoryConfiguration__init_($rt_s(161), $rt_s(162), asrrh_MemoryConfigurations_configurationItemNames, asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues));
6266
- var$2 = ju_ArrayList_get(asrrh_MemoryConfigurations_configurations, 0);
6267
- asrrh_MemoryConfigurations_defaultConfiguration = var$2;
6268
- asrrh_MemoryConfigurations_currentConfiguration = var$2;
6269
- var$3 = asr_Globals_getSettings().$stringSettingsValues.data[3];
6270
- if (asrrh_MemoryConfigurations_configurations === null)
6271
- asrrh_MemoryConfigurations_buildConfigurationCollection();
6272
- var$4 = ju_AbstractList_iterator(asrrh_MemoryConfigurations_configurations);
6273
- a: {
6274
- while (true) {
6275
- if (!ju_AbstractList$1_hasNext(var$4)) {
6276
- var$2 = null;
6277
- break a;
6278
- }
6279
- var$2 = ju_AbstractList$1_next(var$4);
6280
- if (jl_String_equals(var$3, var$2.$configurationIdentifier))
6281
- break;
6282
- }
6283
- }
6284
- if (var$2 !== null && var$2 !== asrrh_MemoryConfigurations_currentConfiguration) {
6285
- asrrh_MemoryConfigurations_currentConfiguration = var$2;
6286
- asrrh_Memory_clear(asr_Globals_memory);
6287
- asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(163)), Long_fromInt(asrrh_MemoryConfiguration_getGlobalPointer(var$2)));
6288
- asrrh_Register_changeResetValue(asrrh_RegisterFile_getRegister($rt_s(164)), Long_fromInt(asrrh_MemoryConfiguration_getStackPointer(var$2)));
6289
- asrrh_Register_changeResetValue(asrrh_RegisterFile_programCounter, Long_fromInt(asrrh_MemoryConfiguration_getTextBaseAddress(var$2)));
6290
- asrrh_RegisterFile_initializeProgramCounter(asrrh_MemoryConfiguration_getTextBaseAddress(var$2));
6291
- asrrh_RegisterFile_resetRegisters();
6292
- }
6293
- }
6294
- };
6295
- var asrrh_MemoryConfigurations_getCurrentConfiguration = () => {
6296
- if (asrrh_MemoryConfigurations_currentConfiguration === null)
6297
- asrrh_MemoryConfigurations_buildConfigurationCollection();
6298
- return asrrh_MemoryConfigurations_currentConfiguration;
6299
- };
6300
- var asrrh_MemoryConfigurations__clinit_ = () => {
6301
- asrrh_MemoryConfigurations_configurations = null;
6302
- 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)]);
6303
- asrrh_MemoryConfigurations_defaultConfigurationItemValues = $rt_createIntArrayFromData([4194304, 268435456, 268435456, 268468224, 268500992, 268697600, 2147479548, 2147483644, 2147483647, -2147483648, -65536, -1, 2147483647, 268435452, 268697600, -1]);
6304
- asrrh_MemoryConfigurations_dataBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([12288, 0, 4096, 6144, 0, 8192, 12284, 12284, 16383, 16384, 32512, 32767, 12287, 16380, 8192, 32767]);
6305
- asrrh_MemoryConfigurations_textBasedCompactConfigurationItemValues = $rt_createIntArrayFromData([0, 4096, 4096, 6144, 8192, 12288, 16380, 16380, 16383, 16384, 32512, 32767, 16383, 4092, 12288, 32767]);
6306
- };
6307
- var asrc_ConfigMap = $rt_classWithoutFields(ju_HashMap);
6308
- var asrc_ConfigMap_getIntegerValue = ($this, $key) => {
6309
- return jl_Integer_parseInt0(ju_HashMap_get($this, $key));
6310
- };
6311
- var asrc_SettingsProperties = $rt_classWithoutFields(asrc_ConfigMap);
6312
- var asrc_ConfigProperties = $rt_classWithoutFields(asrc_ConfigMap);
6313
- var jl_IllegalArgumentException = $rt_classWithoutFields(jl_RuntimeException);
6314
6312
  function jl_Boolean() {
6315
6313
  jl_Object.call(this);
6316
6314
  this.$value4 = 0;
@@ -7037,227 +7035,19 @@ var jl_System_currentTimeMillis = () => {
7037
7035
  return Long_fromNumber((/* @__PURE__ */ new Date()).getTime());
7038
7036
  };
7039
7037
  var jl_CloneNotSupportedException = $rt_classWithoutFields(jl_Exception);
7040
- var asrrh_RegisterFile = $rt_classWithoutFields();
7041
- var asrrh_RegisterFile_instance = null;
7042
- var asrrh_RegisterFile_programCounter = null;
7043
- var asrrh_RegisterFile_$callClinit = () => {
7044
- asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7045
- asrrh_RegisterFile__clinit_();
7046
- };
7047
- var asrrh_RegisterFile_updateRegister = (var$1, var$2) => {
7048
- let var$3;
7049
- asrrh_RegisterFile_$callClinit();
7050
- if (var$1) {
7051
- if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7052
- asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7053
- else {
7054
- var$3 = asr_Globals_program.$backStepper;
7055
- var$2 = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7056
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), var$1, var$2);
7057
- }
7058
- }
7059
- };
7060
- var asrrh_RegisterFile_updateRegister0 = ($name, $val) => {
7061
- asrrh_RegisterFile_$callClinit();
7062
- asrrh_RegisterFile_updateRegister(asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name).$number, $val);
7063
- };
7064
- var asrrh_RegisterFile_getValue0 = ($num) => {
7065
- asrrh_RegisterFile_$callClinit();
7066
- return Long_lo(asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num));
7067
- };
7068
- var asrrh_RegisterFile_getValueLong = ($num) => {
7069
- asrrh_RegisterFile_$callClinit();
7070
- return asrrh_RegisterBlock_getValue(asrrh_RegisterFile_instance, $num);
7071
- };
7072
- var asrrh_RegisterFile_getValue = ($name) => {
7073
- asrrh_RegisterFile_$callClinit();
7074
- return Long_lo(asrrh_RegisterBlock_getValue0(asrrh_RegisterFile_instance, $name));
7075
- };
7076
- var asrrh_RegisterFile_getRegister = ($name) => {
7077
- asrrh_RegisterFile_$callClinit();
7078
- if (!jl_String_equals($name, $rt_s(211)))
7079
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $name);
7080
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(212));
7081
- };
7082
- var asrrh_RegisterFile_initializeProgramCounter = ($value) => {
7083
- asrrh_RegisterFile_$callClinit();
7084
- asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7085
- };
7086
- var asrrh_RegisterFile_initializeProgramCounter0 = ($startAtMain) => {
7087
- let $mainAddr;
7088
- asrrh_RegisterFile_$callClinit();
7089
- asr_Globals_$callClinit();
7090
- $mainAddr = asra_SymbolTable_getAddress(asr_Globals_symbolTable, asra_SymbolTable_startLabel);
7091
- if ($startAtMain && $mainAddr != -1 && asrrh_Memory_inTextSegment($mainAddr))
7092
- asrrh_RegisterFile_initializeProgramCounter($mainAddr);
7093
- else
7094
- asrrh_RegisterFile_initializeProgramCounter(Long_lo(asrrh_RegisterFile_programCounter.$resetValue0));
7095
- };
7096
- var asrrh_RegisterFile_getStackPointerRegister = () => {
7097
- asrrh_RegisterFile_$callClinit();
7098
- return asrrh_RegisterBlock_getRegister(asrrh_RegisterFile_instance, $rt_s(164));
7099
- };
7100
- var asrrh_RegisterFile_setProgramCounter = ($value) => {
7101
- let $old, var$3;
7102
- asrrh_RegisterFile_$callClinit();
7103
- $old = Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7104
- asrrh_Register_setValue(asrrh_RegisterFile_programCounter, Long_fromInt($value));
7105
- if (asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings())) {
7106
- var$3 = asr_Globals_program.$backStepper;
7107
- $value = $old + -4 | 0;
7108
- asrs_BackStepper$BackstepStack_push0(var$3.$backSteps, asrs_BackStepper$Action_PC_RESTORE, $value, $value);
7109
- }
7110
- return $old;
7111
- };
7112
- var asrrh_RegisterFile_getProgramCounter = () => {
7113
- asrrh_RegisterFile_$callClinit();
7114
- return Long_lo(asrrh_Register_getValue(asrrh_RegisterFile_programCounter));
7115
- };
7116
- var asrrh_RegisterFile_resetRegisters = () => {
7117
- asrrh_RegisterFile_$callClinit();
7118
- asrrh_RegisterBlock_resetRegisters(asrrh_RegisterFile_instance);
7119
- asrrh_RegisterFile_initializeProgramCounter0(asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_START_AT_MAIN));
7120
- };
7121
- var asrrh_RegisterFile_incrementPC = () => {
7122
- let var$1;
7123
- asrrh_RegisterFile_$callClinit();
7124
- var$1 = asrrh_RegisterFile_programCounter;
7125
- asrrh_Register_setValue(var$1, Long_add(asrrh_Register_getValue(var$1), Long_fromInt(4)));
7126
- };
7127
- var asrrh_RegisterFile__clinit_ = () => {
7128
- let var$1, var$2, var$3, var$4;
7129
- var$1 = new asrrh_RegisterBlock();
7130
- var$2 = $rt_createArray(asrrh_Register, 32);
7131
- var$3 = var$2.data;
7132
- var$3[0] = asrrh_Register__init_($rt_s(213), 0, Long_ZERO);
7133
- var$3[1] = asrrh_Register__init_($rt_s(214), 1, Long_ZERO);
7134
- var$4 = new asrrh_Register();
7135
- asrrh_Memory_$callClinit();
7136
- asrrh_Register__init_0(var$4, $rt_s(164), 2, Long_fromInt(asrrh_Memory_stackPointer));
7137
- var$3[2] = var$4;
7138
- var$3[3] = asrrh_Register__init_($rt_s(163), 3, Long_fromInt(asrrh_Memory_globalPointer));
7139
- var$3[4] = asrrh_Register__init_($rt_s(215), 4, Long_ZERO);
7140
- var$3[5] = asrrh_Register__init_($rt_s(216), 5, Long_ZERO);
7141
- var$3[6] = asrrh_Register__init_($rt_s(217), 6, Long_ZERO);
7142
- var$3[7] = asrrh_Register__init_($rt_s(218), 7, Long_ZERO);
7143
- var$3[8] = asrrh_Register__init_($rt_s(212), 8, Long_ZERO);
7144
- var$3[9] = asrrh_Register__init_($rt_s(219), 9, Long_ZERO);
7145
- var$3[10] = asrrh_Register__init_($rt_s(220), 10, Long_ZERO);
7146
- var$3[11] = asrrh_Register__init_($rt_s(221), 11, Long_ZERO);
7147
- var$3[12] = asrrh_Register__init_($rt_s(222), 12, Long_ZERO);
7148
- var$3[13] = asrrh_Register__init_($rt_s(223), 13, Long_ZERO);
7149
- var$3[14] = asrrh_Register__init_($rt_s(224), 14, Long_ZERO);
7150
- var$3[15] = asrrh_Register__init_($rt_s(225), 15, Long_ZERO);
7151
- var$3[16] = asrrh_Register__init_($rt_s(226), 16, Long_ZERO);
7152
- var$3[17] = asrrh_Register__init_($rt_s(227), 17, Long_ZERO);
7153
- var$3[18] = asrrh_Register__init_($rt_s(228), 18, Long_ZERO);
7154
- var$3[19] = asrrh_Register__init_($rt_s(229), 19, Long_ZERO);
7155
- var$3[20] = asrrh_Register__init_($rt_s(230), 20, Long_ZERO);
7156
- var$3[21] = asrrh_Register__init_($rt_s(231), 21, Long_ZERO);
7157
- var$3[22] = asrrh_Register__init_($rt_s(232), 22, Long_ZERO);
7158
- var$3[23] = asrrh_Register__init_($rt_s(233), 23, Long_ZERO);
7159
- var$3[24] = asrrh_Register__init_($rt_s(234), 24, Long_ZERO);
7160
- var$3[25] = asrrh_Register__init_($rt_s(235), 25, Long_ZERO);
7161
- var$3[26] = asrrh_Register__init_($rt_s(236), 26, Long_ZERO);
7162
- var$3[27] = asrrh_Register__init_($rt_s(237), 27, Long_ZERO);
7163
- var$3[28] = asrrh_Register__init_($rt_s(238), 28, Long_ZERO);
7164
- var$3[29] = asrrh_Register__init_($rt_s(239), 29, Long_ZERO);
7165
- var$3[30] = asrrh_Register__init_($rt_s(240), 30, Long_ZERO);
7166
- var$3[31] = asrrh_Register__init_($rt_s(241), 31, Long_ZERO);
7167
- asrrh_RegisterBlock__init_(var$1, 120, var$2);
7168
- asrrh_RegisterFile_instance = var$1;
7169
- asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(242), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7170
- };
7171
- function asr_JsProgramStatement() {
7172
- let a = this;
7173
- jl_Object.call(a);
7174
- a.$sourceLine1 = 0;
7175
- a.$address2 = 0;
7176
- a.$binaryStatement0 = 0;
7177
- a.$source3 = null;
7178
- a.$assemblyStatement = null;
7179
- a.$machineStatement0 = null;
7180
- }
7181
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7182
- let var$2, var$3, var$4, var$5, var$6;
7183
- $this.$sourceLine1 = $programStatement.$sourceLine0;
7184
- $this.$address2 = $programStatement.$textAddress0;
7185
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
7186
- $this.$source3 = $programStatement.$source;
7187
- var$2 = $programStatement.$basicStatementList;
7188
- var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7189
- var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7190
- var$5 = new jl_StringBuffer();
7191
- jl_AbstractStringBuilder__init_(var$5);
7192
- var$6 = ju_AbstractList_iterator(var$2.$list);
7193
- while (ju_AbstractList$1_hasNext(var$6)) {
7194
- a: {
7195
- var$2 = ju_AbstractList$1_next(var$6);
7196
- switch (var$2.$type3) {
7197
- case 0:
7198
- break;
7199
- case 1:
7200
- if (var$3 == 10) {
7201
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7202
- break a;
7203
- }
7204
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7205
- break a;
7206
- case 2:
7207
- if (var$4 == 10) {
7208
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7209
- break a;
7210
- }
7211
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7212
- break a;
7213
- case 3:
7214
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7215
- break a;
7216
- default:
7217
- break a;
7218
- }
7219
- jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7220
- }
7221
- }
7222
- $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7223
- $this.$machineStatement0 = $programStatement.$machineStatement;
7224
- };
7225
- var asr_JsProgramStatement__init_ = (var_0) => {
7226
- let var_1 = new asr_JsProgramStatement();
7227
- asr_JsProgramStatement__init_0(var_1, var_0);
7228
- return var_1;
7229
- };
7230
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7231
- return var$1.$sourceLine1;
7232
- };
7233
- var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7234
- return $rt_ustr(var$1.$assemblyStatement);
7235
- };
7236
- var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7237
- return $rt_ustr(var$1.$source3);
7238
- };
7239
- var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7240
- return var$1.$address2;
7241
- };
7242
- var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7243
- return var$1.$binaryStatement0;
7244
- };
7245
- var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7246
- return $rt_ustr(var$1.$machineStatement0);
7247
- };
7248
7038
  var ju_Arrays = $rt_classWithoutFields();
7249
- var ju_Arrays_copyOf1 = ($array, $length) => {
7250
- let $result, var$4, $sz, $i;
7251
- $array = $array.data;
7252
- $result = $rt_createCharArray($length);
7253
- var$4 = $result.data;
7254
- $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);
7255
7045
  $i = 0;
7256
- while ($i < $sz) {
7257
- var$4[$i] = $array[$i];
7046
+ while ($i < var$5) {
7047
+ var$4[$i] = var$1[$i];
7258
7048
  $i = $i + 1 | 0;
7259
7049
  }
7260
- return $result;
7050
+ return var$3;
7261
7051
  };
7262
7052
  var ju_Arrays_copyOf0 = ($array, $length) => {
7263
7053
  let $result, var$4, $sz, $i;
@@ -7436,8 +7226,8 @@ var ju_Arrays_stream = ($array) => {
7436
7226
  var$3.$size2 = var$4 - 0 | 0;
7437
7227
  return var$3;
7438
7228
  };
7439
- var asr_JsRiscV$getUndoStack$lambda$_21_0 = $rt_classWithoutFields();
7440
- 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) => {
7441
7231
  let var$2, var$3;
7442
7232
  var$1 = var$1;
7443
7233
  var$2 = new asr_JsBackStep();
@@ -7448,8 +7238,8 @@ var asr_JsRiscV$getUndoStack$lambda$_21_0_apply = (var$0, var$1) => {
7448
7238
  var$2.$param20 = Long_lo(var$1.$param2);
7449
7239
  return var$2;
7450
7240
  };
7451
- var asr_JsRiscV$getUndoStack$lambda$_21_1 = $rt_classWithoutFields();
7452
- 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) => {
7453
7243
  asr_JsRiscV_$callClinit();
7454
7244
  return $rt_createArray(asr_JsBackStep, var$1);
7455
7245
  };
@@ -7473,6 +7263,274 @@ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7473
7263
  var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7474
7264
  return var$1.$param10;
7475
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();
7433
+ function asr_JsProgramStatement() {
7434
+ let a = this;
7435
+ jl_Object.call(a);
7436
+ a.$sourceLine1 = 0;
7437
+ a.$address2 = 0;
7438
+ a.$binaryStatement0 = 0;
7439
+ a.$source3 = null;
7440
+ a.$assemblyStatement = null;
7441
+ a.$machineStatement0 = null;
7442
+ }
7443
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7444
+ let var$2, var$3, var$4, var$5, var$6;
7445
+ $this.$sourceLine1 = $programStatement.$sourceLine0;
7446
+ $this.$address2 = $programStatement.$textAddress0;
7447
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
7448
+ $this.$source3 = $programStatement.$source;
7449
+ var$2 = $programStatement.$basicStatementList;
7450
+ var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7451
+ var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7452
+ var$5 = new jl_StringBuffer();
7453
+ jl_AbstractStringBuilder__init_(var$5);
7454
+ var$6 = ju_AbstractList_iterator(var$2.$list);
7455
+ while (ju_AbstractList$1_hasNext(var$6)) {
7456
+ a: {
7457
+ var$2 = ju_AbstractList$1_next(var$6);
7458
+ switch (var$2.$type3) {
7459
+ case 0:
7460
+ break;
7461
+ case 1:
7462
+ if (var$3 == 10) {
7463
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7464
+ break a;
7465
+ }
7466
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7467
+ break a;
7468
+ case 2:
7469
+ if (var$4 == 10) {
7470
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7471
+ break a;
7472
+ }
7473
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7474
+ break a;
7475
+ case 3:
7476
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7477
+ break a;
7478
+ default:
7479
+ break a;
7480
+ }
7481
+ jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7482
+ }
7483
+ }
7484
+ $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7485
+ $this.$machineStatement0 = $programStatement.$machineStatement;
7486
+ };
7487
+ var asr_JsProgramStatement__init_ = (var_0) => {
7488
+ let var_1 = new asr_JsProgramStatement();
7489
+ asr_JsProgramStatement__init_0(var_1, var_0);
7490
+ return var_1;
7491
+ };
7492
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7493
+ return var$1.$sourceLine1;
7494
+ };
7495
+ var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7496
+ return $rt_ustr(var$1.$assemblyStatement);
7497
+ };
7498
+ var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7499
+ return $rt_ustr(var$1.$source3);
7500
+ };
7501
+ var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7502
+ return var$1.$address2;
7503
+ };
7504
+ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7505
+ return var$1.$binaryStatement0;
7506
+ };
7507
+ var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7508
+ return $rt_ustr(var$1.$machineStatement0);
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
+ };
7476
7534
  function asr_JsCompilationResult() {
7477
7535
  let a = this;
7478
7536
  jl_Object.call(a);
@@ -7530,66 +7588,6 @@ var asr_AssemblyException__init_ = (var_0) => {
7530
7588
  asr_AssemblyException__init_0(var_1, var_0);
7531
7589
  return var_1;
7532
7590
  };
7533
- var juf_ToIntFunction = $rt_classWithoutFields(0);
7534
- var asr_JsRiscV$getRegistersValues$lambda$_20_0 = $rt_classWithoutFields();
7535
- function asr_JsStackFrame() {
7536
- let a = this;
7537
- jl_Object.call(a);
7538
- a.$pc3 = 0;
7539
- a.$toAddress0 = 0;
7540
- a.$sp = 0;
7541
- a.$fp = 0;
7542
- a.$registers = null;
7543
- }
7544
- var asr_JsStackFrame_getPc$exported$0 = (var$1) => {
7545
- return var$1.$pc3;
7546
- };
7547
- var asr_JsStackFrame_getToAddress$exported$1 = (var$1) => {
7548
- return var$1.$toAddress0;
7549
- };
7550
- var asr_JsStackFrame_getRegisters$exported$2 = (var$1) => {
7551
- return otji_JS_wrap0(var$1.$registers);
7552
- };
7553
- var asr_JsStackFrame_getSp$exported$3 = (var$1) => {
7554
- return var$1.$sp;
7555
- };
7556
- var asr_JsStackFrame_getFp$exported$4 = (var$1) => {
7557
- return var$1.$fp;
7558
- };
7559
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7560
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7561
- let var$2, var$3, var$4, var$5;
7562
- var$1 = var$1;
7563
- asr_JsRiscV_$callClinit();
7564
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7565
- var$3 = var$2.data;
7566
- var$4 = 0;
7567
- while (var$4 < asra_TokenList_size(var$1)) {
7568
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7569
- var$4 = var$4 + 1 | 0;
7570
- }
7571
- var$5 = new asr_JsRiscVTokenizedLine();
7572
- var$5.$line0 = var$1.$processedLine;
7573
- var$5.$tokens0 = var$2;
7574
- return var$5;
7575
- };
7576
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7577
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7578
- asr_JsRiscV_$callClinit();
7579
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7580
- };
7581
- function asr_JsRiscVTokenizedLine() {
7582
- let a = this;
7583
- jl_Object.call(a);
7584
- a.$line0 = null;
7585
- a.$tokens0 = null;
7586
- }
7587
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7588
- return $rt_ustr(var$1.$line0);
7589
- };
7590
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7591
- return otji_JS_wrap(var$1.$tokens0);
7592
- };
7593
7591
  var ju_Map$Entry = $rt_classWithoutFields(0);
7594
7592
  function ju_MapEntry() {
7595
7593
  let a = this;
@@ -7810,7 +7808,6 @@ var asrr_BasicInstruction__init_ = ($this, $example, $description, $instrFormat,
7810
7808
  };
7811
7809
  var asrr_BasicInstruction__init_0 = ($this, $example, $description, $instrFormat, $operMask, $onlyinrv64) => {
7812
7810
  asrr_BasicInstruction__init_($this, $example, $description, $instrFormat, $operMask);
7813
- asrr_InstructionSet_$callClinit();
7814
7811
  if (!asrr_InstructionSet_rv64 && $onlyinrv64) {
7815
7812
  $description = new jl_NullPointerException();
7816
7813
  $instrFormat = new jl_StringBuilder();
@@ -8134,100 +8131,6 @@ var asr_RISCVFile_getName = ($this) => {
8134
8131
  return $this.$name2;
8135
8132
  };
8136
8133
  var jl_StringIndexOutOfBoundsException = $rt_classWithoutFields(jl_IndexOutOfBoundsException);
8137
- function asrrh_Register() {
8138
- let a = this;
8139
- ju_Observable.call(a);
8140
- a.$name1 = null;
8141
- a.$number = 0;
8142
- a.$resetValue0 = Long_ZERO;
8143
- a.$value2 = Long_ZERO;
8144
- }
8145
- var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8146
- ju_Observable__init_($this);
8147
- $this.$name1 = $n;
8148
- $this.$number = $num;
8149
- $this.$value2 = $val;
8150
- $this.$resetValue0 = $val;
8151
- };
8152
- var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8153
- let var_3 = new asrrh_Register();
8154
- asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8155
- return var_3;
8156
- };
8157
- var asrrh_Register_getName = ($this) => {
8158
- return $this.$name1;
8159
- };
8160
- var asrrh_Register_getValue = ($this) => {
8161
- jl_Object_monitorEnterSync($this);
8162
- try {
8163
- asrrh_Register_notifyAnyObservers($this, 0);
8164
- return $this.$value2;
8165
- } finally {
8166
- jl_Object_monitorExitSync($this);
8167
- }
8168
- };
8169
- var asrrh_Register_getValueNoNotify = ($this) => {
8170
- jl_Object_monitorEnterSync($this);
8171
- try {
8172
- return $this.$value2;
8173
- } finally {
8174
- jl_Object_monitorExitSync($this);
8175
- }
8176
- };
8177
- var asrrh_Register_getNumber = ($this) => {
8178
- return $this.$number;
8179
- };
8180
- var asrrh_Register_setValue = ($this, $val) => {
8181
- let $old;
8182
- jl_Object_monitorEnterSync($this);
8183
- try {
8184
- $old = $this.$value2;
8185
- $this.$value2 = $val;
8186
- asrrh_Register_notifyAnyObservers($this, 1);
8187
- return $old;
8188
- } finally {
8189
- jl_Object_monitorExitSync($this);
8190
- }
8191
- };
8192
- var asrrh_Register_setValueBackdoor = ($this, $val) => {
8193
- let $old;
8194
- jl_Object_monitorEnterSync($this);
8195
- try {
8196
- $old = $this.$value2;
8197
- $this.$value2 = $val;
8198
- return $old;
8199
- } finally {
8200
- jl_Object_monitorExitSync($this);
8201
- }
8202
- };
8203
- var asrrh_Register_resetValue = ($this) => {
8204
- jl_Object_monitorEnterSync($this);
8205
- try {
8206
- $this.$value2 = $this.$resetValue0;
8207
- } finally {
8208
- jl_Object_monitorExitSync($this);
8209
- }
8210
- };
8211
- var asrrh_Register_changeResetValue = ($this, $reset) => {
8212
- jl_Object_monitorEnterSync($this);
8213
- try {
8214
- $this.$resetValue0 = $reset;
8215
- } finally {
8216
- jl_Object_monitorExitSync($this);
8217
- }
8218
- };
8219
- var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8220
- let var$2, var$3, var$4;
8221
- var$2 = $this;
8222
- if (ju_Observable_countObservers(var$2) > 0) {
8223
- ju_Observable_setChanged(var$2);
8224
- var$3 = new asrrh_RegisterAccessNotice();
8225
- var$4 = $this.$name1;
8226
- asrrh_AccessNotice__init_(var$3, $type);
8227
- var$3.$registerName = var$4;
8228
- ju_Observable_notifyObservers(var$2, var$3);
8229
- }
8230
- };
8231
8134
  function asrs_BackStepper() {
8232
8135
  let a = this;
8233
8136
  jl_Object.call(a);
@@ -8445,6 +8348,100 @@ var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8445
8348
  var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8446
8349
  return $this.$size2;
8447
8350
  };
8351
+ function asrrh_Register() {
8352
+ let a = this;
8353
+ ju_Observable.call(a);
8354
+ a.$name1 = null;
8355
+ a.$number = 0;
8356
+ a.$resetValue0 = Long_ZERO;
8357
+ a.$value2 = Long_ZERO;
8358
+ }
8359
+ var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8360
+ ju_Observable__init_($this);
8361
+ $this.$name1 = $n;
8362
+ $this.$number = $num;
8363
+ $this.$value2 = $val;
8364
+ $this.$resetValue0 = $val;
8365
+ };
8366
+ var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8367
+ let var_3 = new asrrh_Register();
8368
+ asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8369
+ return var_3;
8370
+ };
8371
+ var asrrh_Register_getName = ($this) => {
8372
+ return $this.$name1;
8373
+ };
8374
+ var asrrh_Register_getValue = ($this) => {
8375
+ jl_Object_monitorEnterSync($this);
8376
+ try {
8377
+ asrrh_Register_notifyAnyObservers($this, 0);
8378
+ return $this.$value2;
8379
+ } finally {
8380
+ jl_Object_monitorExitSync($this);
8381
+ }
8382
+ };
8383
+ var asrrh_Register_getValueNoNotify = ($this) => {
8384
+ jl_Object_monitorEnterSync($this);
8385
+ try {
8386
+ return $this.$value2;
8387
+ } finally {
8388
+ jl_Object_monitorExitSync($this);
8389
+ }
8390
+ };
8391
+ var asrrh_Register_getNumber = ($this) => {
8392
+ return $this.$number;
8393
+ };
8394
+ var asrrh_Register_setValue = ($this, $val) => {
8395
+ let $old;
8396
+ jl_Object_monitorEnterSync($this);
8397
+ try {
8398
+ $old = $this.$value2;
8399
+ $this.$value2 = $val;
8400
+ asrrh_Register_notifyAnyObservers($this, 1);
8401
+ return $old;
8402
+ } finally {
8403
+ jl_Object_monitorExitSync($this);
8404
+ }
8405
+ };
8406
+ var asrrh_Register_setValueBackdoor = ($this, $val) => {
8407
+ let $old;
8408
+ jl_Object_monitorEnterSync($this);
8409
+ try {
8410
+ $old = $this.$value2;
8411
+ $this.$value2 = $val;
8412
+ return $old;
8413
+ } finally {
8414
+ jl_Object_monitorExitSync($this);
8415
+ }
8416
+ };
8417
+ var asrrh_Register_resetValue = ($this) => {
8418
+ jl_Object_monitorEnterSync($this);
8419
+ try {
8420
+ $this.$value2 = $this.$resetValue0;
8421
+ } finally {
8422
+ jl_Object_monitorExitSync($this);
8423
+ }
8424
+ };
8425
+ var asrrh_Register_changeResetValue = ($this, $reset) => {
8426
+ jl_Object_monitorEnterSync($this);
8427
+ try {
8428
+ $this.$resetValue0 = $reset;
8429
+ } finally {
8430
+ jl_Object_monitorExitSync($this);
8431
+ }
8432
+ };
8433
+ var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8434
+ let var$2, var$3, var$4;
8435
+ var$2 = $this;
8436
+ if (ju_Observable_countObservers(var$2) > 0) {
8437
+ ju_Observable_setChanged(var$2);
8438
+ var$3 = new asrrh_RegisterAccessNotice();
8439
+ var$4 = $this.$name1;
8440
+ asrrh_AccessNotice__init_(var$3, $type);
8441
+ var$3.$registerName = var$4;
8442
+ ju_Observable_notifyObservers(var$2, var$3);
8443
+ }
8444
+ };
8448
8445
  function asr_JsCompilationResult$_init_$lambda$_0_0() {
8449
8446
  jl_Object.call(this);
8450
8447
  this.$_06 = null;
@@ -8500,7 +8497,6 @@ var asrri_Arithmetic__init_ = ($this, $usage, $description, $funct7, $funct3) =>
8500
8497
  var asrri_Arithmetic_simulate = ($this, $statement) => {
8501
8498
  let $operands;
8502
8499
  $operands = $statement.$operands;
8503
- asrr_InstructionSet_$callClinit();
8504
8500
  if (asrr_InstructionSet_rv64) {
8505
8501
  $operands = $operands.data;
8506
8502
  asrrh_RegisterFile_updateRegister($operands[0], $this.$compute(asrrh_RegisterFile_getValueLong($operands[1]), asrrh_RegisterFile_getValueLong($operands[2])));
@@ -8536,7 +8532,6 @@ var asrri_ImmediateInstruction__init_ = ($this, $usage, $description, $funct) =>
8536
8532
  var asrri_ImmediateInstruction_simulate = ($this, $statement) => {
8537
8533
  let $operands;
8538
8534
  $operands = $statement.$operands;
8539
- asrr_InstructionSet_$callClinit();
8540
8535
  if (!asrr_InstructionSet_rv64) {
8541
8536
  $operands = $operands.data;
8542
8537
  asrrh_RegisterFile_updateRegister($operands[0], Long_fromInt(asrri_ImmediateInstruction_computeW($this, asrrh_RegisterFile_getValue0($operands[1]), $operands[2] << 20 >> 20)));
@@ -8611,7 +8606,6 @@ var asrri_Branch_simulate = ($this, $statement) => {
8611
8606
  let var$2;
8612
8607
  if ($this.$willBranch($statement)) {
8613
8608
  var$2 = $statement.$operands.data[2];
8614
- asrr_InstructionSet_$callClinit();
8615
8609
  asrrh_RegisterFile_setProgramCounter((asrrh_RegisterFile_getProgramCounter() + var$2 | 0) - 4 | 0);
8616
8610
  }
8617
8611
  };
@@ -9008,7 +9002,6 @@ var asrri_ECALL__init_ = () => {
9008
9002
  var asrri_ECALL_simulate = ($this, $statement) => {
9009
9003
  let var$2, var$3, var$4, var$5;
9010
9004
  var$2 = asrrh_RegisterFile_getValue($rt_s(227));
9011
- asrr_InstructionSet_$callClinit();
9012
9005
  var$3 = asrr_SyscallLoader_findSyscall(var$2);
9013
9006
  if (var$3 === null) {
9014
9007
  var$3 = new asr_SimulationException();
@@ -10155,7 +10148,7 @@ var asrri_JAL_simulate = ($this, $statement) => {
10155
10148
  var$4.$registers0 = $operands;
10156
10149
  ju_ArrayList_add(asrrh_Stack_callStack, var$4);
10157
10150
  }
10158
- asrr_InstructionSet_processJump($address);
10151
+ asrrh_RegisterFile_setProgramCounter($address);
10159
10152
  };
10160
10153
  var asrri_JALR = $rt_classWithoutFields(asrr_BasicInstruction);
10161
10154
  var asrri_JALR__init_ = ($this) => {
@@ -10175,7 +10168,7 @@ var asrri_JALR_simulate = ($this, $statement) => {
10175
10168
  $statement = asrrh_Stack_callStack;
10176
10169
  ju_ArrayList_remove($statement, $statement.$size0 - 1 | 0);
10177
10170
  }
10178
- asrr_InstructionSet_processJump(($target + ($operands[2] << 20 >> 20) | 0) & -2);
10171
+ asrrh_RegisterFile_setProgramCounter(($target + ($operands[2] << 20 >> 20) | 0) & -2);
10179
10172
  };
10180
10173
  var asrri_Load = $rt_classWithoutFields(asrr_BasicInstruction);
10181
10174
  var asrri_Load__init_ = ($this, $usage, $description, $funct) => {
@@ -11801,6 +11794,15 @@ var asrrh_RegisterBlock_resetRegisters = ($this) => {
11801
11794
  var$3 = var$3 + 1 | 0;
11802
11795
  }
11803
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
+ }
11804
11806
  function asr_ErrorList() {
11805
11807
  let a = this;
11806
11808
  jl_Object.call(a);
@@ -11886,15 +11888,6 @@ var asr_ErrorList_generateReport = ($this, $isWarning) => {
11886
11888
  }
11887
11889
  return jl_AbstractStringBuilder_toString($report);
11888
11890
  };
11889
- function asrrh_StackFrame() {
11890
- let a = this;
11891
- jl_Object.call(a);
11892
- a.$pc4 = 0;
11893
- a.$toAddress = 0;
11894
- a.$sp0 = 0;
11895
- a.$fp0 = 0;
11896
- a.$registers0 = null;
11897
- }
11898
11891
  function asrrh_MemoryConfiguration() {
11899
11892
  let a = this;
11900
11893
  jl_Object.call(a);
@@ -31229,222 +31222,6 @@ var asrjt_Floating = $rt_classWithoutFields();
31229
31222
  var asrjt_Floating_isFinite = ($this) => {
31230
31223
  return !$this.$isZero() && !$this.$isNormal() && !$this.$isSubnormal() ? 0 : 1;
31231
31224
  };
31232
- function asrjt_Float64() {
31233
- asrjt_Floating.call(this);
31234
- this.$bits1 = Long_ZERO;
31235
- }
31236
- var asrjt_Float64_Zero = null;
31237
- var asrjt_Float64_NegativeZero = null;
31238
- var asrjt_Float64_NaN = null;
31239
- var asrjt_Float64_Infinity = null;
31240
- var asrjt_Float64_NegativeInfinity = null;
31241
- var asrjt_Float64_$assertionsDisabled = 0;
31242
- var asrjt_Float64__init_1 = ($this, $bits) => {
31243
- $this.$bits1 = $bits;
31244
- };
31245
- var asrjt_Float64__init_ = (var_0) => {
31246
- let var_1 = new asrjt_Float64();
31247
- asrjt_Float64__init_1(var_1, var_0);
31248
- return var_1;
31249
- };
31250
- var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31251
- asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31252
- };
31253
- var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31254
- let var_3 = new asrjt_Float64();
31255
- asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31256
- return var_3;
31257
- };
31258
- var asrjt_Float64_exponent = ($this) => {
31259
- return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31260
- };
31261
- var asrjt_Float64_negate = ($this) => {
31262
- return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31263
- };
31264
- var asrjt_Float64_isSignMinus = ($this) => {
31265
- return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31266
- };
31267
- var asrjt_Float64_isInfinite = ($this) => {
31268
- return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31269
- };
31270
- var asrjt_Float64_isNormal = ($this) => {
31271
- return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31272
- };
31273
- var asrjt_Float64_isSubnormal = ($this) => {
31274
- return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31275
- };
31276
- var asrjt_Float64_isNaN = ($this) => {
31277
- return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31278
- };
31279
- var asrjt_Float64_isSignalling = ($this) => {
31280
- if (!asrjt_Float64_isNaN($this))
31281
- return 0;
31282
- return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31283
- };
31284
- var asrjt_Float64_isZero = ($this) => {
31285
- let var$1;
31286
- var$1 = $this.$bits1;
31287
- return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31288
- };
31289
- var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31290
- let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31291
- if (asrji_ExactFloat_isZero($ef))
31292
- return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31293
- $ef = asrji_ExactFloat_normalize($ef);
31294
- $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31295
- if ($normalizedExponent > -1022) {
31296
- if ($normalizedExponent > 1024) {
31297
- $mainBits = $env.$flags;
31298
- $roundedBits = asrj_Flags_overflow;
31299
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31300
- $mainBits = $env.$flags;
31301
- $roundedBits = asrj_Flags_inexact;
31302
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31303
- asrjt_Float64$1_$callClinit();
31304
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31305
- case 1:
31306
- break;
31307
- case 2:
31308
- case 3:
31309
- $normalizedExponent = $ef.$sign;
31310
- if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31311
- return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31312
- return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31313
- case 4:
31314
- case 5:
31315
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31316
- default:
31317
- if (!asrjt_Float64_$assertionsDisabled)
31318
- $rt_throw(jl_AssertionError__init_($rt_s(1617)));
31319
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31320
- }
31321
- return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31322
- }
31323
- if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31324
- if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31325
- $rt_throw(jl_AssertionError__init_($rt_s(1618)));
31326
- $a = new asrjt_Float64();
31327
- $normalizedExponent = $ef.$sign;
31328
- $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31329
- $ef = $ef.$significand;
31330
- asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
31331
- return $a;
31332
- }
31333
- $mainBits = $env.$flags;
31334
- $roundedBits = asrj_Flags_inexact;
31335
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31336
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31337
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31338
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31339
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31340
- $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
31341
- $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31342
- } else {
31343
- if ($ef.$exponent0 > -1075) {
31344
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31345
- $rt_throw(jl_AssertionError__init_($rt_s(1619)));
31346
- return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31347
- }
31348
- $mainBits = $env.$flags;
31349
- $roundedBits = asrj_Flags_inexact;
31350
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31351
- $mainBits = $env.$flags;
31352
- $roundedBits = asrj_Flags_underflow;
31353
- ju_GenericEnumSet_add($mainBits, $roundedBits);
31354
- $bitsToRound = -1074 - $ef.$exponent0 | 0;
31355
- $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31356
- $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31357
- $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31358
- $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31359
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31360
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31361
- else {
31362
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31363
- $rt_throw(jl_AssertionError__init_1());
31364
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31365
- }
31366
- }
31367
- asrjt_Float64$1_$callClinit();
31368
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31369
- case 1:
31370
- break;
31371
- case 2:
31372
- case 3:
31373
- if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31374
- return $towardsZero;
31375
- return $awayZero;
31376
- default:
31377
- $ef = jm_BigInteger_ONE;
31378
- $normalizedExponent = $bitsToRound - 1 | 0;
31379
- if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
31380
- if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
31381
- return $towardsZero;
31382
- return $awayZero;
31383
- }
31384
- if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
31385
- return $towardsZero;
31386
- return $awayZero;
31387
- }
31388
- return $towardsZero;
31389
- };
31390
- var asrjt_Float64_toExactFloat = ($this) => {
31391
- let $sign, $exponent, $significand;
31392
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
31393
- $rt_throw(jl_AssertionError__init_($rt_s(1620)));
31394
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
31395
- $rt_throw(jl_AssertionError__init_($rt_s(1621)));
31396
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
31397
- $rt_throw(jl_AssertionError__init_($rt_s(1622)));
31398
- $sign = asrjt_Float64_isSignMinus($this);
31399
- if (asrjt_Float64_isZero($this)) {
31400
- $exponent = 0;
31401
- $significand = jm_BigInteger_ZERO;
31402
- } else if (asrjt_Float64_isNormal($this)) {
31403
- $exponent = asrjt_Float64_exponent($this) - 52 | 0;
31404
- $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
31405
- } else {
31406
- if (!asrjt_Float64_isSubnormal($this)) {
31407
- if (asrjt_Float64_$assertionsDisabled)
31408
- return null;
31409
- $rt_throw(jl_AssertionError__init_($rt_s(1623)));
31410
- }
31411
- $exponent = asrjt_Float64_exponent($this) - 51 | 0;
31412
- $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
31413
- }
31414
- return asrji_ExactFloat__init_($sign, $exponent, $significand);
31415
- };
31416
- var asrjt_Float64_maxPrecision = ($this) => {
31417
- return 60;
31418
- };
31419
- var asrjt_Float64_negate0 = ($this) => {
31420
- return asrjt_Float64_negate($this);
31421
- };
31422
- var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
31423
- return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
31424
- };
31425
- var asrjt_Float64_NegativeInfinity0 = ($this) => {
31426
- return asrjt_Float64_NegativeInfinity;
31427
- };
31428
- var asrjt_Float64_Infinity0 = ($this) => {
31429
- return asrjt_Float64_Infinity;
31430
- };
31431
- var asrjt_Float64_NegativeZero0 = ($this) => {
31432
- return asrjt_Float64_NegativeZero;
31433
- };
31434
- var asrjt_Float64_Zero0 = ($this) => {
31435
- return asrjt_Float64_Zero;
31436
- };
31437
- var asrjt_Float64_NaN0 = ($this) => {
31438
- return asrjt_Float64_NaN;
31439
- };
31440
- var asrjt_Float64__clinit_ = () => {
31441
- asrjt_Float64_$assertionsDisabled = 0;
31442
- asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
31443
- asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
31444
- asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
31445
- asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31446
- asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31447
- };
31448
31225
  function asrjt_Float32() {
31449
31226
  asrjt_Floating.call(this);
31450
31227
  this.$bits0 = 0;
@@ -31661,6 +31438,222 @@ var asrjt_Float32__clinit_ = () => {
31661
31438
  asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
31662
31439
  asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
31663
31440
  };
31441
+ function asrjt_Float64() {
31442
+ asrjt_Floating.call(this);
31443
+ this.$bits1 = Long_ZERO;
31444
+ }
31445
+ var asrjt_Float64_Zero = null;
31446
+ var asrjt_Float64_NegativeZero = null;
31447
+ var asrjt_Float64_NaN = null;
31448
+ var asrjt_Float64_Infinity = null;
31449
+ var asrjt_Float64_NegativeInfinity = null;
31450
+ var asrjt_Float64_$assertionsDisabled = 0;
31451
+ var asrjt_Float64__init_1 = ($this, $bits) => {
31452
+ $this.$bits1 = $bits;
31453
+ };
31454
+ var asrjt_Float64__init_ = (var_0) => {
31455
+ let var_1 = new asrjt_Float64();
31456
+ asrjt_Float64__init_1(var_1, var_0);
31457
+ return var_1;
31458
+ };
31459
+ var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31460
+ asrjt_Float64__init_1($this, Long_or(Long_or(!$sign ? Long_ZERO : Long_create(0, 2147483648), Long_shl(Long_and(Long_fromInt($exponent + 1023 | 0), Long_fromInt(2047)), 52)), Long_and($significand, Long_create(4294967295, 1048575))));
31461
+ };
31462
+ var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31463
+ let var_3 = new asrjt_Float64();
31464
+ asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31465
+ return var_3;
31466
+ };
31467
+ var asrjt_Float64_exponent = ($this) => {
31468
+ return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31469
+ };
31470
+ var asrjt_Float64_negate = ($this) => {
31471
+ return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31472
+ };
31473
+ var asrjt_Float64_isSignMinus = ($this) => {
31474
+ return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31475
+ };
31476
+ var asrjt_Float64_isInfinite = ($this) => {
31477
+ return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31478
+ };
31479
+ var asrjt_Float64_isNormal = ($this) => {
31480
+ return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31481
+ };
31482
+ var asrjt_Float64_isSubnormal = ($this) => {
31483
+ return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31484
+ };
31485
+ var asrjt_Float64_isNaN = ($this) => {
31486
+ return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31487
+ };
31488
+ var asrjt_Float64_isSignalling = ($this) => {
31489
+ if (!asrjt_Float64_isNaN($this))
31490
+ return 0;
31491
+ return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31492
+ };
31493
+ var asrjt_Float64_isZero = ($this) => {
31494
+ let var$1;
31495
+ var$1 = $this.$bits1;
31496
+ return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31497
+ };
31498
+ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31499
+ let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31500
+ if (asrji_ExactFloat_isZero($ef))
31501
+ return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31502
+ $ef = asrji_ExactFloat_normalize($ef);
31503
+ $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31504
+ if ($normalizedExponent > -1022) {
31505
+ if ($normalizedExponent > 1024) {
31506
+ $mainBits = $env.$flags;
31507
+ $roundedBits = asrj_Flags_overflow;
31508
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31509
+ $mainBits = $env.$flags;
31510
+ $roundedBits = asrj_Flags_inexact;
31511
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31512
+ asrjt_Float64$1_$callClinit();
31513
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31514
+ case 1:
31515
+ break;
31516
+ case 2:
31517
+ case 3:
31518
+ $normalizedExponent = $ef.$sign;
31519
+ if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31520
+ return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31521
+ return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31522
+ case 4:
31523
+ case 5:
31524
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31525
+ default:
31526
+ if (!asrjt_Float64_$assertionsDisabled)
31527
+ $rt_throw(jl_AssertionError__init_($rt_s(1617)));
31528
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31529
+ }
31530
+ return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31531
+ }
31532
+ if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31533
+ if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31534
+ $rt_throw(jl_AssertionError__init_($rt_s(1618)));
31535
+ $a = new asrjt_Float64();
31536
+ $normalizedExponent = $ef.$sign;
31537
+ $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31538
+ $ef = $ef.$significand;
31539
+ asrjt_Float64__init_2($a, $normalizedExponent, $bitsToRound, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef, 53 - jm_BigInteger_bitLength($ef) | 0)), Long_create(4294967295, 1048575)));
31540
+ return $a;
31541
+ }
31542
+ $mainBits = $env.$flags;
31543
+ $roundedBits = asrj_Flags_inexact;
31544
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31545
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31546
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31547
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31548
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31549
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)), Long_create(4294967295, 1048575)));
31550
+ $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 53 ? asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 53 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($upBits, 1)), Long_create(4294967295, 1048575))) : asrjt_Float64__init_0($ef.$sign, ($ef.$exponent0 + 52 | 0) + $bitsToRound | 0, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31551
+ } else {
31552
+ if ($ef.$exponent0 > -1075) {
31553
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31554
+ $rt_throw(jl_AssertionError__init_($rt_s(1619)));
31555
+ return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31556
+ }
31557
+ $mainBits = $env.$flags;
31558
+ $roundedBits = asrj_Flags_inexact;
31559
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31560
+ $mainBits = $env.$flags;
31561
+ $roundedBits = asrj_Flags_underflow;
31562
+ ju_GenericEnumSet_add($mainBits, $roundedBits);
31563
+ $bitsToRound = -1074 - $ef.$exponent0 | 0;
31564
+ $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31565
+ $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31566
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31567
+ $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31568
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31569
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31570
+ else {
31571
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31572
+ $rt_throw(jl_AssertionError__init_1());
31573
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31574
+ }
31575
+ }
31576
+ asrjt_Float64$1_$callClinit();
31577
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31578
+ case 1:
31579
+ break;
31580
+ case 2:
31581
+ case 3:
31582
+ if ($ef.$sign == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31583
+ return $towardsZero;
31584
+ return $awayZero;
31585
+ default:
31586
+ $ef = jm_BigInteger_ONE;
31587
+ $normalizedExponent = $bitsToRound - 1 | 0;
31588
+ if (!jm_BigInteger_equals($roundedBits, jm_BigInteger_shiftLeft($ef, $normalizedExponent))) {
31589
+ if (jm_BigInteger_compareTo($roundedBits, jm_BigInteger_shiftLeft(jm_BigInteger_ONE, $normalizedExponent)) <= 0)
31590
+ return $towardsZero;
31591
+ return $awayZero;
31592
+ }
31593
+ if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
31594
+ return $towardsZero;
31595
+ return $awayZero;
31596
+ }
31597
+ return $towardsZero;
31598
+ };
31599
+ var asrjt_Float64_toExactFloat = ($this) => {
31600
+ let $sign, $exponent, $significand;
31601
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
31602
+ $rt_throw(jl_AssertionError__init_($rt_s(1620)));
31603
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
31604
+ $rt_throw(jl_AssertionError__init_($rt_s(1621)));
31605
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
31606
+ $rt_throw(jl_AssertionError__init_($rt_s(1622)));
31607
+ $sign = asrjt_Float64_isSignMinus($this);
31608
+ if (asrjt_Float64_isZero($this)) {
31609
+ $exponent = 0;
31610
+ $significand = jm_BigInteger_ZERO;
31611
+ } else if (asrjt_Float64_isNormal($this)) {
31612
+ $exponent = asrjt_Float64_exponent($this) - 52 | 0;
31613
+ $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
31614
+ } else {
31615
+ if (!asrjt_Float64_isSubnormal($this)) {
31616
+ if (asrjt_Float64_$assertionsDisabled)
31617
+ return null;
31618
+ $rt_throw(jl_AssertionError__init_($rt_s(1623)));
31619
+ }
31620
+ $exponent = asrjt_Float64_exponent($this) - 51 | 0;
31621
+ $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
31622
+ }
31623
+ return asrji_ExactFloat__init_($sign, $exponent, $significand);
31624
+ };
31625
+ var asrjt_Float64_maxPrecision = ($this) => {
31626
+ return 60;
31627
+ };
31628
+ var asrjt_Float64_negate0 = ($this) => {
31629
+ return asrjt_Float64_negate($this);
31630
+ };
31631
+ var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
31632
+ return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
31633
+ };
31634
+ var asrjt_Float64_NegativeInfinity0 = ($this) => {
31635
+ return asrjt_Float64_NegativeInfinity;
31636
+ };
31637
+ var asrjt_Float64_Infinity0 = ($this) => {
31638
+ return asrjt_Float64_Infinity;
31639
+ };
31640
+ var asrjt_Float64_NegativeZero0 = ($this) => {
31641
+ return asrjt_Float64_NegativeZero;
31642
+ };
31643
+ var asrjt_Float64_Zero0 = ($this) => {
31644
+ return asrjt_Float64_Zero;
31645
+ };
31646
+ var asrjt_Float64_NaN0 = ($this) => {
31647
+ return asrjt_Float64_NaN;
31648
+ };
31649
+ var asrjt_Float64__clinit_ = () => {
31650
+ asrjt_Float64_$assertionsDisabled = 0;
31651
+ asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
31652
+ asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
31653
+ asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
31654
+ asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
31655
+ asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
31656
+ };
31664
31657
  var asrjo_Conversions = $rt_classWithoutFields();
31665
31658
  var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
31666
31659
  let $copy, $rounded, var$8, var$9, var$10, var$11, var$12, var$13;
@@ -31769,6 +31762,241 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
31769
31762
  var$4.$significand = $i;
31770
31763
  return $helper.$fromExactFloat(var$4, $env);
31771
31764
  };
31765
+ var asrjo_Arithmetic = $rt_classWithoutFields();
31766
+ var asrjo_Arithmetic_$assertionsDisabled = 0;
31767
+ var asrjo_Arithmetic_add = ($a, $b, $env) => {
31768
+ let $out;
31769
+ if ($a.$isNaN())
31770
+ return $a;
31771
+ if ($b.$isNaN())
31772
+ return $b;
31773
+ if ($a.$isInfinite()) {
31774
+ if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
31775
+ $b = $env.$flags;
31776
+ $env = asrj_Flags_invalid;
31777
+ ju_GenericEnumSet_add($b, $env);
31778
+ return $a.$NaN();
31779
+ }
31780
+ return $a;
31781
+ }
31782
+ if ($b.$isInfinite())
31783
+ return $b;
31784
+ if ($a.$isZero()) {
31785
+ if (!$b.$isZero())
31786
+ return $b;
31787
+ if ($a.$isSignMinus() == $b.$isSignMinus())
31788
+ return $a;
31789
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31790
+ }
31791
+ if ($b.$isZero())
31792
+ return $a;
31793
+ $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
31794
+ if (!asrji_ExactFloat_isZero($out))
31795
+ return $a.$fromExactFloat($out, $env);
31796
+ return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
31797
+ };
31798
+ var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
31799
+ if ($a.$isNaN())
31800
+ return $a;
31801
+ if ($b.$isNaN())
31802
+ return $b;
31803
+ return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
31804
+ };
31805
+ var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
31806
+ if ($a.$isNaN())
31807
+ return $a;
31808
+ if ($b.$isNaN())
31809
+ return $b;
31810
+ a: {
31811
+ if (!($a.$isZero() && $b.$isInfinite())) {
31812
+ if (!$b.$isZero())
31813
+ break a;
31814
+ if (!$a.$isInfinite())
31815
+ break a;
31816
+ }
31817
+ $b = $env.$flags;
31818
+ $env = asrj_Flags_invalid;
31819
+ ju_GenericEnumSet_add($b, $env);
31820
+ return $a.$NaN();
31821
+ }
31822
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31823
+ if (!$a.$isZero() && !$b.$isZero())
31824
+ return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
31825
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
31826
+ }
31827
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31828
+ };
31829
+ var asrjo_Arithmetic_squareRoot = ($a, $env) => {
31830
+ let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
31831
+ if ($a.$isNaN())
31832
+ return $a;
31833
+ if ($a.$isZero())
31834
+ return $a;
31835
+ if ($a.$isSignMinus()) {
31836
+ $env = $env.$flags;
31837
+ var$3 = asrj_Flags_invalid;
31838
+ ju_GenericEnumSet_add($env, var$3);
31839
+ return $a.$NaN();
31840
+ }
31841
+ if ($a.$isInfinite())
31842
+ return $a;
31843
+ var$3 = $a.$toExactFloat();
31844
+ var$4 = $a.$maxPrecision();
31845
+ if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
31846
+ $rt_throw(jl_AssertionError__init_($rt_s(1625)));
31847
+ var$5 = asrji_ExactFloat_normalize(var$3);
31848
+ var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
31849
+ a: {
31850
+ while (true) {
31851
+ var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31852
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31853
+ if (!var$8)
31854
+ break;
31855
+ if (var$8 > 0) {
31856
+ var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
31857
+ var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
31858
+ var$6 = 0;
31859
+ while (true) {
31860
+ if (var$6 >= var$4) {
31861
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31862
+ var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31863
+ if (!var$4)
31864
+ break a;
31865
+ if (var$4 > 0) {
31866
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
31867
+ break a;
31868
+ }
31869
+ if (var$4 < 0) {
31870
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
31871
+ break a;
31872
+ }
31873
+ if (!asrji_ExactFloat_$assertionsDisabled)
31874
+ $rt_throw(jl_AssertionError__init_($rt_s(1626)));
31875
+ var$7 = null;
31876
+ break a;
31877
+ }
31878
+ var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
31879
+ var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
31880
+ if (!var$8)
31881
+ break;
31882
+ if (var$8 <= 0) {
31883
+ if (var$8 < 0) {
31884
+ var$10 = var$7;
31885
+ var$7 = var$9;
31886
+ } else {
31887
+ if (!asrji_ExactFloat_$assertionsDisabled)
31888
+ $rt_throw(jl_AssertionError__init_($rt_s(1626)));
31889
+ var$7 = var$9;
31890
+ }
31891
+ }
31892
+ var$6 = var$6 + 1 | 0;
31893
+ var$9 = var$7;
31894
+ }
31895
+ break a;
31896
+ }
31897
+ var$6 = var$6 + -1 | 0;
31898
+ }
31899
+ }
31900
+ return $a.$fromExactFloat(var$7, $env);
31901
+ };
31902
+ var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
31903
+ if ($a.$isNaN())
31904
+ return $a;
31905
+ if ($b.$isNaN())
31906
+ return $b;
31907
+ if ($c.$isNaN())
31908
+ return $c;
31909
+ a: {
31910
+ if (!($a.$isZero() && $b.$isInfinite())) {
31911
+ if (!$b.$isZero())
31912
+ break a;
31913
+ if (!$a.$isInfinite())
31914
+ break a;
31915
+ }
31916
+ $b = $env.$flags;
31917
+ $c = asrj_Flags_invalid;
31918
+ ju_GenericEnumSet_add($b, $c);
31919
+ return $a.$NaN();
31920
+ }
31921
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
31922
+ if (!$a.$isZero() && !$b.$isZero())
31923
+ return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
31924
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
31925
+ }
31926
+ return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
31927
+ };
31928
+ var asrjo_Arithmetic_division = ($a, $b, $env) => {
31929
+ let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
31930
+ if ($a.$isNaN())
31931
+ return $a;
31932
+ if ($b.$isNaN())
31933
+ return $b;
31934
+ a: {
31935
+ if (!($a.$isZero() && $b.$isZero())) {
31936
+ if (!$a.$isInfinite())
31937
+ break a;
31938
+ if (!$b.$isInfinite())
31939
+ break a;
31940
+ }
31941
+ $b = $env.$flags;
31942
+ $env = asrj_Flags_invalid;
31943
+ ju_GenericEnumSet_add($b, $env);
31944
+ return $a.$NaN();
31945
+ }
31946
+ if ($a.$isInfinite())
31947
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31948
+ if (!$b.$isInfinite() && !$a.$isZero()) {
31949
+ if ($b.$isZero()) {
31950
+ $env = $env.$flags;
31951
+ var$4 = asrj_Flags_divByZero;
31952
+ ju_GenericEnumSet_add($env, var$4);
31953
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
31954
+ }
31955
+ if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
31956
+ $rt_throw(jl_AssertionError__init_($rt_s(1627)));
31957
+ var$4 = $a.$toExactFloat();
31958
+ $b = $b.$toExactFloat();
31959
+ var$5 = $a.$maxPrecision();
31960
+ var$6 = asrji_ExactFloat_$assertionsDisabled;
31961
+ if (!var$6 && var$5 <= 0)
31962
+ $rt_throw(jl_AssertionError__init_($rt_s(1628)));
31963
+ if (!var$6 && asrji_ExactFloat_isZero($b))
31964
+ $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31965
+ var$4 = asrji_ExactFloat_normalize(var$4);
31966
+ var$7 = asrji_ExactFloat_normalize($b);
31967
+ var$8 = var$4.$significand;
31968
+ var$9 = var$7.$significand;
31969
+ var$10 = jm_BigInteger_ZERO;
31970
+ var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
31971
+ if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
31972
+ var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
31973
+ else
31974
+ var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
31975
+ var$6 = 0;
31976
+ b: {
31977
+ while (jm_BigInteger_bitLength(var$10) < var$5) {
31978
+ var$10 = jm_BigInteger_shiftLeft(var$10, 1);
31979
+ if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
31980
+ var$8 = jm_BigInteger_subtract(var$8, var$9);
31981
+ var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
31982
+ }
31983
+ var$6 = var$6 + 1 | 0;
31984
+ var$8 = jm_BigInteger_shiftLeft(var$8, 1);
31985
+ if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
31986
+ break b;
31987
+ }
31988
+ }
31989
+ if (jm_BigInteger_bitLength(var$10) >= var$5) {
31990
+ var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
31991
+ var$6 = var$6 + 1 | 0;
31992
+ }
31993
+ return $a.$fromExactFloat(asrji_ExactFloat__init_(var$4.$sign == var$7.$sign ? 0 : 1, (((var$4.$exponent0 - var$7.$exponent0 | 0) - var$6 | 0) - var$11 | 0) + 1 | 0, var$10), $env);
31994
+ }
31995
+ return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
31996
+ };
31997
+ var asrjo_Arithmetic__clinit_ = () => {
31998
+ asrjo_Arithmetic_$assertionsDisabled = 0;
31999
+ };
31772
32000
  var asrjo_Comparisons = $rt_classWithoutFields();
31773
32001
  var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
31774
32002
  if ($a.$isZero()) {
@@ -32073,7 +32301,7 @@ var jm_BigInteger_testBit = ($this, $n) => {
32073
32301
  return !($this.$digits.data[0] & 1) ? 0 : 1;
32074
32302
  if ($n < 0) {
32075
32303
  var$2 = new jl_ArithmeticException();
32076
- jl_Throwable__init_0(var$2, $rt_s(1625));
32304
+ jl_Throwable__init_0(var$2, $rt_s(1630));
32077
32305
  $rt_throw(var$2);
32078
32306
  }
32079
32307
  $intCount = $n >> 5;
@@ -32101,7 +32329,7 @@ var jm_BigInteger_intValueExact = ($this) => {
32101
32329
  if ($this.$numberLength <= 1 && jm_BigInteger_bitLength($this) <= 31)
32102
32330
  return $rt_imul($this.$sign0, $this.$digits.data[0]);
32103
32331
  var$1 = new jl_ArithmeticException();
32104
- jl_Throwable__init_0(var$1, $rt_s(1626));
32332
+ jl_Throwable__init_0(var$1, $rt_s(1631));
32105
32333
  $rt_throw(var$1);
32106
32334
  };
32107
32335
  var jm_BigInteger_longValue = ($this) => {
@@ -32119,7 +32347,7 @@ var jm_BigInteger_longValueExact = ($this) => {
32119
32347
  if ($this.$numberLength <= 2 && jm_BigInteger_bitLength($this) <= 63)
32120
32348
  return jm_BigInteger_longValue($this);
32121
32349
  var$1 = new jl_ArithmeticException();
32122
- jl_Throwable__init_0(var$1, $rt_s(1627));
32350
+ jl_Throwable__init_0(var$1, $rt_s(1632));
32123
32351
  $rt_throw(var$1);
32124
32352
  };
32125
32353
  var jm_BigInteger_compareTo = ($this, $val) => {
@@ -32240,241 +32468,6 @@ var jm_BigInteger__clinit_ = () => {
32240
32468
  $i = $i + 1 | 0;
32241
32469
  }
32242
32470
  };
32243
- var asrjo_Arithmetic = $rt_classWithoutFields();
32244
- var asrjo_Arithmetic_$assertionsDisabled = 0;
32245
- var asrjo_Arithmetic_add = ($a, $b, $env) => {
32246
- let $out;
32247
- if ($a.$isNaN())
32248
- return $a;
32249
- if ($b.$isNaN())
32250
- return $b;
32251
- if ($a.$isInfinite()) {
32252
- if ($b.$isInfinite() && $b.$isSignMinus() != $a.$isSignMinus()) {
32253
- $b = $env.$flags;
32254
- $env = asrj_Flags_invalid;
32255
- ju_GenericEnumSet_add($b, $env);
32256
- return $a.$NaN();
32257
- }
32258
- return $a;
32259
- }
32260
- if ($b.$isInfinite())
32261
- return $b;
32262
- if ($a.$isZero()) {
32263
- if (!$b.$isZero())
32264
- return $b;
32265
- if ($a.$isSignMinus() == $b.$isSignMinus())
32266
- return $a;
32267
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32268
- }
32269
- if ($b.$isZero())
32270
- return $a;
32271
- $out = asrji_ExactFloat_add($a.$toExactFloat(), $b.$toExactFloat());
32272
- if (!asrji_ExactFloat_isZero($out))
32273
- return $a.$fromExactFloat($out, $env);
32274
- return $env.$mode !== asrj_RoundingMode_min ? $a.$Zero() : $a.$NegativeZero();
32275
- };
32276
- var asrjo_Arithmetic_subtraction = ($a, $b, $env) => {
32277
- if ($a.$isNaN())
32278
- return $a;
32279
- if ($b.$isNaN())
32280
- return $b;
32281
- return asrjo_Arithmetic_add($a, $b.$negate2(), $env);
32282
- };
32283
- var asrjo_Arithmetic_multiplication = ($a, $b, $env) => {
32284
- if ($a.$isNaN())
32285
- return $a;
32286
- if ($b.$isNaN())
32287
- return $b;
32288
- a: {
32289
- if (!($a.$isZero() && $b.$isInfinite())) {
32290
- if (!$b.$isZero())
32291
- break a;
32292
- if (!$a.$isInfinite())
32293
- break a;
32294
- }
32295
- $b = $env.$flags;
32296
- $env = asrj_Flags_invalid;
32297
- ju_GenericEnumSet_add($b, $env);
32298
- return $a.$NaN();
32299
- }
32300
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32301
- if (!$a.$isZero() && !$b.$isZero())
32302
- return $a.$fromExactFloat(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $env);
32303
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32304
- }
32305
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32306
- };
32307
- var asrjo_Arithmetic_squareRoot = ($a, $env) => {
32308
- let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
32309
- if ($a.$isNaN())
32310
- return $a;
32311
- if ($a.$isZero())
32312
- return $a;
32313
- if ($a.$isSignMinus()) {
32314
- $env = $env.$flags;
32315
- var$3 = asrj_Flags_invalid;
32316
- ju_GenericEnumSet_add($env, var$3);
32317
- return $a.$NaN();
32318
- }
32319
- if ($a.$isInfinite())
32320
- return $a;
32321
- var$3 = $a.$toExactFloat();
32322
- var$4 = $a.$maxPrecision();
32323
- if (!asrji_ExactFloat_$assertionsDisabled && var$3.$sign)
32324
- $rt_throw(jl_AssertionError__init_($rt_s(1628)));
32325
- var$5 = asrji_ExactFloat_normalize(var$3);
32326
- var$6 = ((var$5.$exponent0 + jm_BigInteger_bitLength(var$5.$significand) | 0) / 2 | 0) + 1 | 0;
32327
- a: {
32328
- while (true) {
32329
- var$7 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32330
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32331
- if (!var$8)
32332
- break;
32333
- if (var$8 > 0) {
32334
- var$9 = asrji_ExactFloat__init_(0, var$6, jm_BigInteger_ONE);
32335
- var$10 = asrji_ExactFloat__init_(0, var$6 + 1 | 0, jm_BigInteger_ONE);
32336
- var$6 = 0;
32337
- while (true) {
32338
- if (var$6 >= var$4) {
32339
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32340
- var$4 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32341
- if (!var$4)
32342
- break a;
32343
- if (var$4 > 0) {
32344
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$10), 1);
32345
- break a;
32346
- }
32347
- if (var$4 < 0) {
32348
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$7, var$9), 1);
32349
- break a;
32350
- }
32351
- if (!asrji_ExactFloat_$assertionsDisabled)
32352
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32353
- var$7 = null;
32354
- break a;
32355
- }
32356
- var$7 = asrji_ExactFloat_shiftRight(asrji_ExactFloat_add(var$9, var$10), 1);
32357
- var$8 = asrji_ExactFloat_compareTo(var$5, asrji_ExactFloat_multiply(var$7, var$7));
32358
- if (!var$8)
32359
- break;
32360
- if (var$8 <= 0) {
32361
- if (var$8 < 0) {
32362
- var$10 = var$7;
32363
- var$7 = var$9;
32364
- } else {
32365
- if (!asrji_ExactFloat_$assertionsDisabled)
32366
- $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32367
- var$7 = var$9;
32368
- }
32369
- }
32370
- var$6 = var$6 + 1 | 0;
32371
- var$9 = var$7;
32372
- }
32373
- break a;
32374
- }
32375
- var$6 = var$6 + -1 | 0;
32376
- }
32377
- }
32378
- return $a.$fromExactFloat(var$7, $env);
32379
- };
32380
- var asrjo_Arithmetic_fusedMultiplyAdd = ($a, $b, $c, $env) => {
32381
- if ($a.$isNaN())
32382
- return $a;
32383
- if ($b.$isNaN())
32384
- return $b;
32385
- if ($c.$isNaN())
32386
- return $c;
32387
- a: {
32388
- if (!($a.$isZero() && $b.$isInfinite())) {
32389
- if (!$b.$isZero())
32390
- break a;
32391
- if (!$a.$isInfinite())
32392
- break a;
32393
- }
32394
- $b = $env.$flags;
32395
- $c = asrj_Flags_invalid;
32396
- ju_GenericEnumSet_add($b, $c);
32397
- return $a.$NaN();
32398
- }
32399
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32400
- if (!$a.$isZero() && !$b.$isZero())
32401
- return $a.$fromExactFloat(asrji_ExactFloat_add(asrji_ExactFloat_multiply($a.$toExactFloat(), $b.$toExactFloat()), $c.$toExactFloat()), $env);
32402
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero(), $c, $env);
32403
- }
32404
- return asrjo_Arithmetic_add($a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity(), $c, $env);
32405
- };
32406
- var asrjo_Arithmetic_division = ($a, $b, $env) => {
32407
- let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
32408
- if ($a.$isNaN())
32409
- return $a;
32410
- if ($b.$isNaN())
32411
- return $b;
32412
- a: {
32413
- if (!($a.$isZero() && $b.$isZero())) {
32414
- if (!$a.$isInfinite())
32415
- break a;
32416
- if (!$b.$isInfinite())
32417
- break a;
32418
- }
32419
- $b = $env.$flags;
32420
- $env = asrj_Flags_invalid;
32421
- ju_GenericEnumSet_add($b, $env);
32422
- return $a.$NaN();
32423
- }
32424
- if ($a.$isInfinite())
32425
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32426
- if (!$b.$isInfinite() && !$a.$isZero()) {
32427
- if ($b.$isZero()) {
32428
- $env = $env.$flags;
32429
- var$4 = asrj_Flags_divByZero;
32430
- ju_GenericEnumSet_add($env, var$4);
32431
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeInfinity() : $a.$Infinity();
32432
- }
32433
- if (!asrjo_Arithmetic_$assertionsDisabled && !(asrjt_Floating_isFinite($a) && asrjt_Floating_isFinite($b)))
32434
- $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32435
- var$4 = $a.$toExactFloat();
32436
- $b = $b.$toExactFloat();
32437
- var$5 = $a.$maxPrecision();
32438
- var$6 = asrji_ExactFloat_$assertionsDisabled;
32439
- if (!var$6 && var$5 <= 0)
32440
- $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32441
- if (!var$6 && asrji_ExactFloat_isZero($b))
32442
- $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32443
- var$4 = asrji_ExactFloat_normalize(var$4);
32444
- var$7 = asrji_ExactFloat_normalize($b);
32445
- var$8 = var$4.$significand;
32446
- var$9 = var$7.$significand;
32447
- var$10 = jm_BigInteger_ZERO;
32448
- var$11 = jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0;
32449
- if (jm_BigInteger_bitLength(var$8) <= jm_BigInteger_bitLength(var$9))
32450
- var$8 = jm_BigInteger_shiftLeft(var$8, jm_BigInteger_bitLength(var$9) - jm_BigInteger_bitLength(var$8) | 0);
32451
- else
32452
- var$9 = jm_BigInteger_shiftLeft(var$9, jm_BigInteger_bitLength(var$8) - jm_BigInteger_bitLength(var$9) | 0);
32453
- var$6 = 0;
32454
- b: {
32455
- while (jm_BigInteger_bitLength(var$10) < var$5) {
32456
- var$10 = jm_BigInteger_shiftLeft(var$10, 1);
32457
- if (jm_BigInteger_compareTo(var$8, var$9) >= 0) {
32458
- var$8 = jm_BigInteger_subtract(var$8, var$9);
32459
- var$10 = jm_BigInteger_add(var$10, jm_BigInteger_ONE);
32460
- }
32461
- var$6 = var$6 + 1 | 0;
32462
- var$8 = jm_BigInteger_shiftLeft(var$8, 1);
32463
- if (jm_BigInteger_equals(var$8, jm_BigInteger_ZERO))
32464
- break b;
32465
- }
32466
- }
32467
- if (jm_BigInteger_bitLength(var$10) >= var$5) {
32468
- var$10 = jm_BigInteger_add(jm_BigInteger_shiftLeft(var$10, 1), jm_BigInteger_ONE);
32469
- var$6 = var$6 + 1 | 0;
32470
- }
32471
- return $a.$fromExactFloat(asrji_ExactFloat__init_(var$4.$sign == var$7.$sign ? 0 : 1, (((var$4.$exponent0 - var$7.$exponent0 | 0) - var$6 | 0) - var$11 | 0) + 1 | 0, var$10), $env);
32472
- }
32473
- return $a.$isSignMinus() != $b.$isSignMinus() ? $a.$NegativeZero() : $a.$Zero();
32474
- };
32475
- var asrjo_Arithmetic__clinit_ = () => {
32476
- asrjo_Arithmetic_$assertionsDisabled = 0;
32477
- };
32478
32471
  function jnci_BufferedEncoder$Controller() {
32479
32472
  let a = this;
32480
32473
  jl_Object.call(a);
@@ -33834,34 +33827,34 @@ function ju_Hashtable$Entry() {
33834
33827
  var ju_Hashtable$Entry_equalsKey = ($this, $aKey, $hash) => {
33835
33828
  return $this.$hashcode == jl_String_hashCode($aKey) && $this.$key.$equals($aKey) ? 1 : 0;
33836
33829
  };
33837
- var asrjt_Float32$1 = $rt_classWithoutFields();
33838
- var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33839
- var asrjt_Float32$1_$callClinit = () => {
33840
- asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33841
- asrjt_Float32$1__clinit_();
33830
+ var asrjt_Float64$1 = $rt_classWithoutFields();
33831
+ var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33832
+ var asrjt_Float64$1_$callClinit = () => {
33833
+ asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33834
+ asrjt_Float64$1__clinit_();
33842
33835
  };
33843
- var asrjt_Float32$1__clinit_ = () => {
33836
+ var asrjt_Float64$1__clinit_ = () => {
33844
33837
  let var$1, var$2;
33845
33838
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33846
33839
  var$2 = var$1.data;
33847
- asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33840
+ asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33848
33841
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33849
33842
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33850
33843
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
33851
33844
  var$2[asrj_RoundingMode_away.$ordinal0] = 4;
33852
33845
  var$2[asrj_RoundingMode_even.$ordinal0] = 5;
33853
33846
  };
33854
- var asrjt_Float64$1 = $rt_classWithoutFields();
33855
- var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33856
- var asrjt_Float64$1_$callClinit = () => {
33857
- asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
33858
- asrjt_Float64$1__clinit_();
33847
+ var asrjt_Float32$1 = $rt_classWithoutFields();
33848
+ var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
33849
+ var asrjt_Float32$1_$callClinit = () => {
33850
+ asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
33851
+ asrjt_Float32$1__clinit_();
33859
33852
  };
33860
- var asrjt_Float64$1__clinit_ = () => {
33853
+ var asrjt_Float32$1__clinit_ = () => {
33861
33854
  let var$1, var$2;
33862
33855
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
33863
33856
  var$2 = var$1.data;
33864
- asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33857
+ asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
33865
33858
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
33866
33859
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
33867
33860
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
@@ -34622,7 +34615,7 @@ $rt_metadata([
34622
34615
  0,
34623
34616
  0,
34624
34617
  0,
34625
- asr_JsRiscV$getInstructionSet$lambda$_34_0,
34618
+ asr_JsRiscV$getInstructionSet$lambda$_35_0,
34626
34619
  0,
34627
34620
  jl_Object,
34628
34621
  [juf_Function],
@@ -34630,7 +34623,7 @@ $rt_metadata([
34630
34623
  3,
34631
34624
  0,
34632
34625
  0,
34633
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_34_0_apply)],
34626
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_35_0_apply)],
34634
34627
  juf_IntFunction,
34635
34628
  0,
34636
34629
  jl_Object,
@@ -34640,7 +34633,7 @@ $rt_metadata([
34640
34633
  0,
34641
34634
  0,
34642
34635
  0,
34643
- asr_JsRiscV$getInstructionSet$lambda$_34_1,
34636
+ asr_JsRiscV$getInstructionSet$lambda$_35_1,
34644
34637
  0,
34645
34638
  jl_Object,
34646
34639
  [juf_IntFunction],
@@ -34648,7 +34641,7 @@ $rt_metadata([
34648
34641
  3,
34649
34642
  0,
34650
34643
  0,
34651
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_34_1_apply)],
34644
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getInstructionSet$lambda$_35_1_apply)],
34652
34645
  asr_JsInstruction,
34653
34646
  "JsInstruction",
34654
34647
  10,
@@ -34721,7 +34714,7 @@ $rt_metadata([
34721
34714
  0,
34722
34715
  3,
34723
34716
  0,
34724
- asrr_InstructionSet_$callClinit,
34717
+ 0,
34725
34718
  0,
34726
34719
  ju_Observable,
34727
34720
  0,
@@ -34889,26 +34882,6 @@ $rt_metadata([
34889
34882
  0,
34890
34883
  0,
34891
34884
  ["$get0", $rt_wrapFunction1(ju_ArrayList_get), "$size", $rt_wrapFunction0(ju_ArrayList_size)],
34892
- jl_Enum,
34893
- "Enum",
34894
- 14,
34895
- jl_Object,
34896
- [jl_Comparable, ji_Serializable],
34897
- 1,
34898
- 3,
34899
- 0,
34900
- 0,
34901
- ["$toString", $rt_wrapFunction0(jl_Enum_toString), "$equals", $rt_wrapFunction1(jl_Enum_equals), "$hashCode", $rt_wrapFunction0(jl_Enum_hashCode), "$compareTo", $rt_wrapFunction1(jl_Enum_compareTo)],
34902
- asr_Settings$Bool,
34903
- "Settings$Bool",
34904
- 2,
34905
- jl_Enum,
34906
- [],
34907
- 12,
34908
- 3,
34909
- 0,
34910
- 0,
34911
- 0,
34912
34885
  asrrh_MemoryConfigurations,
34913
34886
  0,
34914
34887
  jl_Object,
@@ -34954,6 +34927,26 @@ $rt_metadata([
34954
34927
  0,
34955
34928
  0,
34956
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,
34957
34950
  jl_Boolean,
34958
34951
  "Boolean",
34959
34952
  14,
@@ -35001,25 +34994,6 @@ $rt_metadata([
35001
34994
  0,
35002
34995
  0,
35003
34996
  0,
35004
- asrrh_RegisterFile,
35005
- 0,
35006
- jl_Object,
35007
- [],
35008
- 0,
35009
- 3,
35010
- 0,
35011
- asrrh_RegisterFile_$callClinit,
35012
- 0,
35013
- asr_JsProgramStatement,
35014
- "JsProgramStatement",
35015
- 10,
35016
- jl_Object,
35017
- [],
35018
- 0,
35019
- 3,
35020
- 0,
35021
- 0,
35022
- 0,
35023
34997
  ju_Arrays,
35024
34998
  0,
35025
34999
  jl_Object,
@@ -35029,7 +35003,7 @@ $rt_metadata([
35029
35003
  0,
35030
35004
  0,
35031
35005
  0,
35032
- asr_JsRiscV$getUndoStack$lambda$_21_0,
35006
+ asr_JsRiscV$getUndoStack$lambda$_22_0,
35033
35007
  0,
35034
35008
  jl_Object,
35035
35009
  [juf_Function],
@@ -35037,8 +35011,8 @@ $rt_metadata([
35037
35011
  3,
35038
35012
  0,
35039
35013
  0,
35040
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_0_apply)],
35041
- asr_JsRiscV$getUndoStack$lambda$_21_1,
35014
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_22_0_apply)],
35015
+ asr_JsRiscV$getUndoStack$lambda$_22_1,
35042
35016
  0,
35043
35017
  jl_Object,
35044
35018
  [juf_IntFunction],
@@ -35046,7 +35020,7 @@ $rt_metadata([
35046
35020
  3,
35047
35021
  0,
35048
35022
  0,
35049
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_21_1_apply)],
35023
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getUndoStack$lambda$_22_1_apply)],
35050
35024
  asr_JsBackStep,
35051
35025
  "JsBackStep",
35052
35026
  10,
@@ -35057,8 +35031,26 @@ $rt_metadata([
35057
35031
  0,
35058
35032
  0,
35059
35033
  0,
35060
- asr_JsCompilationResult,
35061
- "JsCompilationResult",
35034
+ asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35035
+ 0,
35036
+ jl_Object,
35037
+ [juf_Function],
35038
+ 0,
35039
+ 3,
35040
+ 0,
35041
+ 0,
35042
+ ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply)],
35043
+ asr_JsRiscV$getTokenizedLines$lambda$_5_1,
35044
+ 0,
35045
+ jl_Object,
35046
+ [juf_IntFunction],
35047
+ 0,
35048
+ 3,
35049
+ 0,
35050
+ 0,
35051
+ ["$apply", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply)],
35052
+ asr_JsRiscVTokenizedLine,
35053
+ "JsRiscVTokenizedLine",
35062
35054
  10,
35063
35055
  jl_Object,
35064
35056
  [],
@@ -35067,14 +35059,14 @@ $rt_metadata([
35067
35059
  0,
35068
35060
  0,
35069
35061
  0,
35070
- asr_AssemblyException,
35062
+ asrrh_RegisterFile,
35071
35063
  0,
35072
- jl_Exception,
35064
+ jl_Object,
35073
35065
  [],
35074
35066
  0,
35075
35067
  3,
35076
35068
  0,
35077
- 0,
35069
+ asrrh_RegisterFile_$callClinit,
35078
35070
  0,
35079
35071
  juf_ToIntFunction,
35080
35072
  0,
@@ -35085,7 +35077,7 @@ $rt_metadata([
35085
35077
  0,
35086
35078
  0,
35087
35079
  0,
35088
- asr_JsRiscV$getRegistersValues$lambda$_20_0,
35080
+ asr_JsRiscV$getRegistersValues$lambda$_21_0,
35089
35081
  0,
35090
35082
  jl_Object,
35091
35083
  [juf_ToIntFunction],
@@ -35094,8 +35086,8 @@ $rt_metadata([
35094
35086
  0,
35095
35087
  0,
35096
35088
  0,
35097
- asr_JsStackFrame,
35098
- "JsStackFrame",
35089
+ asr_JsProgramStatement,
35090
+ "JsProgramStatement",
35099
35091
  10,
35100
35092
  jl_Object,
35101
35093
  [],
@@ -35104,28 +35096,29 @@ $rt_metadata([
35104
35096
  0,
35105
35097
  0,
35106
35098
  0,
35107
- asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35108
- 0,
35099
+ asr_JsStackFrame,
35100
+ "JsStackFrame",
35101
+ 10,
35109
35102
  jl_Object,
35110
- [juf_Function],
35103
+ [],
35111
35104
  0,
35112
35105
  3,
35113
35106
  0,
35114
35107
  0,
35115
- ["$apply0", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply)],
35116
- asr_JsRiscV$getTokenizedLines$lambda$_5_1,
35117
35108
  0,
35109
+ asr_JsCompilationResult,
35110
+ "JsCompilationResult",
35111
+ 10,
35118
35112
  jl_Object,
35119
- [juf_IntFunction],
35113
+ [],
35120
35114
  0,
35121
35115
  3,
35122
35116
  0,
35123
35117
  0,
35124
- ["$apply", $rt_wrapFunction1(asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply)],
35125
- asr_JsRiscVTokenizedLine,
35126
- "JsRiscVTokenizedLine",
35127
- 10,
35128
- jl_Object,
35118
+ 0,
35119
+ asr_AssemblyException,
35120
+ 0,
35121
+ jl_Exception,
35129
35122
  [],
35130
35123
  0,
35131
35124
  3,
@@ -35225,16 +35218,6 @@ $rt_metadata([
35225
35218
  0,
35226
35219
  0,
35227
35220
  0,
35228
- asrrh_Register,
35229
- "Register",
35230
- 7,
35231
- ju_Observable,
35232
- [],
35233
- 0,
35234
- 3,
35235
- 0,
35236
- 0,
35237
- ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35238
35221
  asrs_BackStepper,
35239
35222
  0,
35240
35223
  jl_Object,
@@ -35270,9 +35253,7 @@ $rt_metadata([
35270
35253
  3,
35271
35254
  0,
35272
35255
  0,
35273
- 0
35274
- ]);
35275
- $rt_metadata([
35256
+ 0,
35276
35257
  jus_Stream,
35277
35258
  0,
35278
35259
  jl_Object,
@@ -35281,7 +35262,9 @@ $rt_metadata([
35281
35262
  3,
35282
35263
  0,
35283
35264
  0,
35284
- 0,
35265
+ 0
35266
+ ]);
35267
+ $rt_metadata([
35285
35268
  jusi_SimpleStreamImpl,
35286
35269
  0,
35287
35270
  jl_Object,
@@ -35300,6 +35283,16 @@ $rt_metadata([
35300
35283
  0,
35301
35284
  0,
35302
35285
  ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35286
+ asrrh_Register,
35287
+ "Register",
35288
+ 7,
35289
+ ju_Observable,
35290
+ [],
35291
+ 0,
35292
+ 3,
35293
+ 0,
35294
+ 0,
35295
+ ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35303
35296
  asr_JsCompilationResult$_init_$lambda$_0_0,
35304
35297
  0,
35305
35298
  jl_Object,
@@ -36904,8 +36897,9 @@ $rt_metadata([
36904
36897
  0,
36905
36898
  0,
36906
36899
  0,
36907
- asr_ErrorList,
36908
- 0,
36900
+ asrrh_StackFrame,
36901
+ "StackFrame",
36902
+ 7,
36909
36903
  jl_Object,
36910
36904
  [],
36911
36905
  0,
@@ -36913,9 +36907,8 @@ $rt_metadata([
36913
36907
  0,
36914
36908
  0,
36915
36909
  0,
36916
- asrrh_StackFrame,
36917
- "StackFrame",
36918
- 7,
36910
+ asr_ErrorList,
36911
+ 0,
36919
36912
  jl_Object,
36920
36913
  [],
36921
36914
  0,
@@ -40679,7 +40672,7 @@ $rt_metadata([
40679
40672
  0,
40680
40673
  0,
40681
40674
  0,
40682
- asrjt_Float64,
40675
+ asrjt_Float32,
40683
40676
  0,
40684
40677
  asrjt_Floating,
40685
40678
  [],
@@ -40689,39 +40682,39 @@ $rt_metadata([
40689
40682
  0,
40690
40683
  [
40691
40684
  "$isSignMinus",
40692
- $rt_wrapFunction0(asrjt_Float64_isSignMinus),
40685
+ $rt_wrapFunction0(asrjt_Float32_isSignMinus),
40693
40686
  "$isInfinite",
40694
- $rt_wrapFunction0(asrjt_Float64_isInfinite),
40687
+ $rt_wrapFunction0(asrjt_Float32_isInfinite),
40695
40688
  "$isNormal",
40696
- $rt_wrapFunction0(asrjt_Float64_isNormal),
40689
+ $rt_wrapFunction0(asrjt_Float32_isNormal),
40697
40690
  "$isSubnormal",
40698
- $rt_wrapFunction0(asrjt_Float64_isSubnormal),
40691
+ $rt_wrapFunction0(asrjt_Float32_isSubnormal),
40699
40692
  "$isNaN",
40700
- $rt_wrapFunction0(asrjt_Float64_isNaN),
40693
+ $rt_wrapFunction0(asrjt_Float32_isNaN),
40701
40694
  "$isSignalling",
40702
- $rt_wrapFunction0(asrjt_Float64_isSignalling),
40695
+ $rt_wrapFunction0(asrjt_Float32_isSignalling),
40703
40696
  "$isZero",
40704
- $rt_wrapFunction0(asrjt_Float64_isZero),
40697
+ $rt_wrapFunction0(asrjt_Float32_isZero),
40705
40698
  "$toExactFloat",
40706
- $rt_wrapFunction0(asrjt_Float64_toExactFloat),
40699
+ $rt_wrapFunction0(asrjt_Float32_toExactFloat),
40707
40700
  "$maxPrecision",
40708
- $rt_wrapFunction0(asrjt_Float64_maxPrecision),
40701
+ $rt_wrapFunction0(asrjt_Float32_maxPrecision),
40709
40702
  "$negate2",
40710
- $rt_wrapFunction0(asrjt_Float64_negate0),
40703
+ $rt_wrapFunction0(asrjt_Float32_negate0),
40711
40704
  "$fromExactFloat",
40712
- $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
40705
+ $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
40713
40706
  "$NegativeInfinity",
40714
- $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
40707
+ $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
40715
40708
  "$Infinity",
40716
- $rt_wrapFunction0(asrjt_Float64_Infinity0),
40709
+ $rt_wrapFunction0(asrjt_Float32_Infinity0),
40717
40710
  "$NegativeZero",
40718
- $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
40711
+ $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
40719
40712
  "$Zero",
40720
- $rt_wrapFunction0(asrjt_Float64_Zero0),
40713
+ $rt_wrapFunction0(asrjt_Float32_Zero0),
40721
40714
  "$NaN",
40722
- $rt_wrapFunction0(asrjt_Float64_NaN0)
40715
+ $rt_wrapFunction0(asrjt_Float32_NaN0)
40723
40716
  ],
40724
- asrjt_Float32,
40717
+ asrjt_Float64,
40725
40718
  0,
40726
40719
  asrjt_Floating,
40727
40720
  [],
@@ -40731,37 +40724,37 @@ $rt_metadata([
40731
40724
  0,
40732
40725
  [
40733
40726
  "$isSignMinus",
40734
- $rt_wrapFunction0(asrjt_Float32_isSignMinus),
40727
+ $rt_wrapFunction0(asrjt_Float64_isSignMinus),
40735
40728
  "$isInfinite",
40736
- $rt_wrapFunction0(asrjt_Float32_isInfinite),
40729
+ $rt_wrapFunction0(asrjt_Float64_isInfinite),
40737
40730
  "$isNormal",
40738
- $rt_wrapFunction0(asrjt_Float32_isNormal),
40731
+ $rt_wrapFunction0(asrjt_Float64_isNormal),
40739
40732
  "$isSubnormal",
40740
- $rt_wrapFunction0(asrjt_Float32_isSubnormal),
40733
+ $rt_wrapFunction0(asrjt_Float64_isSubnormal),
40741
40734
  "$isNaN",
40742
- $rt_wrapFunction0(asrjt_Float32_isNaN),
40735
+ $rt_wrapFunction0(asrjt_Float64_isNaN),
40743
40736
  "$isSignalling",
40744
- $rt_wrapFunction0(asrjt_Float32_isSignalling),
40737
+ $rt_wrapFunction0(asrjt_Float64_isSignalling),
40745
40738
  "$isZero",
40746
- $rt_wrapFunction0(asrjt_Float32_isZero),
40739
+ $rt_wrapFunction0(asrjt_Float64_isZero),
40747
40740
  "$toExactFloat",
40748
- $rt_wrapFunction0(asrjt_Float32_toExactFloat),
40741
+ $rt_wrapFunction0(asrjt_Float64_toExactFloat),
40749
40742
  "$maxPrecision",
40750
- $rt_wrapFunction0(asrjt_Float32_maxPrecision),
40743
+ $rt_wrapFunction0(asrjt_Float64_maxPrecision),
40751
40744
  "$negate2",
40752
- $rt_wrapFunction0(asrjt_Float32_negate0),
40745
+ $rt_wrapFunction0(asrjt_Float64_negate0),
40753
40746
  "$fromExactFloat",
40754
- $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
40747
+ $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
40755
40748
  "$NegativeInfinity",
40756
- $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
40749
+ $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
40757
40750
  "$Infinity",
40758
- $rt_wrapFunction0(asrjt_Float32_Infinity0),
40751
+ $rt_wrapFunction0(asrjt_Float64_Infinity0),
40759
40752
  "$NegativeZero",
40760
- $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
40753
+ $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
40761
40754
  "$Zero",
40762
- $rt_wrapFunction0(asrjt_Float32_Zero0),
40755
+ $rt_wrapFunction0(asrjt_Float64_Zero0),
40763
40756
  "$NaN",
40764
- $rt_wrapFunction0(asrjt_Float32_NaN0)
40757
+ $rt_wrapFunction0(asrjt_Float64_NaN0)
40765
40758
  ],
40766
40759
  asrjo_Conversions,
40767
40760
  0,
@@ -40772,7 +40765,7 @@ $rt_metadata([
40772
40765
  0,
40773
40766
  0,
40774
40767
  0,
40775
- asrjo_Comparisons,
40768
+ asrjo_Arithmetic,
40776
40769
  0,
40777
40770
  jl_Object,
40778
40771
  [],
@@ -40781,19 +40774,19 @@ $rt_metadata([
40781
40774
  0,
40782
40775
  0,
40783
40776
  0,
40784
- jm_BigInteger,
40777
+ asrjo_Comparisons,
40785
40778
  0,
40786
- jl_Number,
40787
- [jl_Comparable, ji_Serializable],
40779
+ jl_Object,
40780
+ [],
40788
40781
  0,
40789
40782
  3,
40790
40783
  0,
40791
40784
  0,
40792
40785
  0,
40793
- asrjo_Arithmetic,
40786
+ jm_BigInteger,
40794
40787
  0,
40795
- jl_Object,
40796
- [],
40788
+ jl_Number,
40789
+ [jl_Comparable, ji_Serializable],
40797
40790
  0,
40798
40791
  3,
40799
40792
  0,
@@ -41028,23 +41021,23 @@ $rt_metadata([
41028
41021
  0,
41029
41022
  0,
41030
41023
  0,
41031
- asrjt_Float32$1,
41024
+ asrjt_Float64$1,
41032
41025
  0,
41033
41026
  jl_Object,
41034
41027
  [],
41035
41028
  32,
41036
41029
  0,
41037
41030
  0,
41038
- asrjt_Float32$1_$callClinit,
41031
+ asrjt_Float64$1_$callClinit,
41039
41032
  0,
41040
- asrjt_Float64$1,
41033
+ asrjt_Float32$1,
41041
41034
  0,
41042
41035
  jl_Object,
41043
41036
  [],
41044
41037
  32,
41045
41038
  0,
41046
41039
  0,
41047
- asrjt_Float64$1_$callClinit,
41040
+ asrjt_Float32$1_$callClinit,
41048
41041
  0,
41049
41042
  jm_Multiplication,
41050
41043
  0,
@@ -41272,6 +41265,29 @@ $rt_stringPool([
41272
41265
  "STDOUT",
41273
41266
  "STDERR",
41274
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",
41275
41291
  "Can't compare ",
41276
41292
  " to ",
41277
41293
  "EXTENDED_ASSEMBLER_ENABLED",
@@ -41303,29 +41319,6 @@ $rt_stringPool([
41303
41319
  "rv64Enabled",
41304
41320
  "DERIVE_CURRENT_WORKING_DIRECTORY",
41305
41321
  "DeriveCurrentWorkingDirectory",
41306
- "Default",
41307
- "CompactDataAtZero",
41308
- "Compact, Data at Address 0",
41309
- "CompactTextAtZero",
41310
- "Compact, Text at Address 0",
41311
- "gp",
41312
- "sp",
41313
- ".text base address",
41314
- "data segment base address",
41315
- ".extern base address",
41316
- "global pointer (gp)",
41317
- ".data base address",
41318
- "heap base address",
41319
- "stack pointer (sp)",
41320
- "stack base address",
41321
- "user space high address",
41322
- "kernel space base address",
41323
- "MMIO base address",
41324
- "kernel space high address",
41325
- "data segment limit address",
41326
- "text limit address",
41327
- "stack limit address",
41328
- "memory map limit address",
41329
41322
  "invalid register name",
41330
41323
  "invalid CSR name",
41331
41324
  "invalid FPU register name",
@@ -42120,7 +42113,7 @@ $rt_stringPool([
42120
42113
  "addi t1,t2,%lo(label) ;addi RG1,RG2,LL5 ;#Load Lower Address : Set t1 to t2 + lower 12-bit label's address",
42121
42114
  "lb t1,%lo(label)(t2) ;lb RG1,LL4(RG7) ;#Load from Address",
42122
42115
  "lh t1,%lo(label)(t2) ;lh RG1,LL4(RG7) ;#Load from Address",
42123
- "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",
42124
42117
  "flw f1,%lo(label)(t2) ;flw RG1,LL4(RG7) ;#Load from Address",
42125
42118
  "fld f1,%lo(label)(t2) ;fld RG1,LL4(RG7) ;#Load from Address",
42126
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",
@@ -42770,14 +42763,14 @@ $rt_stringPool([
42770
42763
  "Zeros should be handled explicitly",
42771
42764
  "This should not be reachable",
42772
42765
  "There can't be any fractions at this point",
42773
- "Negative bit address",
42774
- "BigInteger out of int range",
42775
- "BigInteger out of long range",
42776
42766
  "Square root of a negative number is not real",
42777
42767
  "Cannot get here",
42778
42768
  "Both should definitely be finite by this point",
42779
42769
  "Accuracy must be a positive number",
42780
42770
  "Divide by Zero is not valid",
42771
+ "Negative bit address",
42772
+ "BigInteger out of int range",
42773
+ "BigInteger out of long range",
42781
42774
  "even",
42782
42775
  "away",
42783
42776
  "min",
@@ -42806,7 +42799,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42806
42799
  c.getCurrentStatementIndex = $rt_callWithReceiver(asr_JsRiscV_getCurrentStatementIndex$exported$28);
42807
42800
  c.setUndoEnabled = $rt_callWithReceiver(asr_JsRiscV_setUndoEnabled$exported$20);
42808
42801
  c.getRegistersValues = $rt_callWithReceiver(asr_JsRiscV_getRegistersValues$exported$6);
42809
- c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$30);
42802
+ c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$31);
42810
42803
  c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$8);
42811
42804
  c.getParsedStatements = $rt_callWithReceiver(asr_JsRiscV_getParsedStatements$exported$18);
42812
42805
  c.getStatementAtSourceLine = $rt_callWithReceiver(asr_JsRiscV_getStatementAtSourceLine$exported$19);
@@ -42824,6 +42817,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42824
42817
  c.registerHandler = $rt_callWithReceiver(asr_JsRiscV_registerHandler$exported$0);
42825
42818
  c.simulateWithLimit = $rt_callWithReceiver(asr_JsRiscV_simulateWithLimit$exported$5);
42826
42819
  c.setIs64Bit = $rt_callWithReceiver(asr_JsRiscV_setIs64Bit$exported$27);
42820
+ c.is64Bit = $rt_callWithReceiver(asr_JsRiscV_is64Bit$exported$30);
42827
42821
  c.getCompiledStatements = $rt_callWithReceiver(asr_JsRiscV_getCompiledStatements$exported$9);
42828
42822
  c.step = $rt_callWithReceiver(asr_JsRiscV_step$exported$25);
42829
42823
  c.initialize = $rt_callWithReceiver(asr_JsRiscV_initialize$exported$12);
@@ -42837,7 +42831,7 @@ var $rt_jso_marker = Symbol("jsoClass");
42837
42831
  get: $rt_callWithReceiver(asr_JsRiscV_getProgramCounter$exported$29)
42838
42832
  });
42839
42833
  Object.defineProperty(c, "stackPointer", {
42840
- get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$31)
42834
+ get: $rt_callWithReceiver(asr_JsRiscV_getStackPointer$exported$32)
42841
42835
  });
42842
42836
  Object.defineProperty(c, "terminated", {
42843
42837
  get: $rt_callWithReceiver(asr_JsRiscV_terminated$exported$11)
@@ -42855,6 +42849,26 @@ var $rt_jso_marker = Symbol("jsoClass");
42855
42849
  Object.defineProperty(c, "example", {
42856
42850
  get: $rt_callWithReceiver(asr_JsInstruction_getExample$exported$3)
42857
42851
  });
42852
+ c = asr_JsBackStep.prototype;
42853
+ Object.defineProperty(c, "pc", {
42854
+ get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42855
+ });
42856
+ Object.defineProperty(c, "action", {
42857
+ get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42858
+ });
42859
+ Object.defineProperty(c, "param1", {
42860
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42861
+ });
42862
+ Object.defineProperty(c, "param2", {
42863
+ get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
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
+ });
42858
42872
  c = asr_JsProgramStatement.prototype;
42859
42873
  Object.defineProperty(c, "assemblyStatement", {
42860
42874
  get: $rt_callWithReceiver(asr_JsProgramStatement_getAssemblyStatement$exported$1)
@@ -42874,29 +42888,6 @@ var $rt_jso_marker = Symbol("jsoClass");
42874
42888
  Object.defineProperty(c, "source", {
42875
42889
  get: $rt_callWithReceiver(asr_JsProgramStatement_getSource$exported$2)
42876
42890
  });
42877
- c = asr_JsBackStep.prototype;
42878
- Object.defineProperty(c, "pc", {
42879
- get: $rt_callWithReceiver(asr_JsBackStep_getPc$exported$0)
42880
- });
42881
- Object.defineProperty(c, "action", {
42882
- get: $rt_callWithReceiver(asr_JsBackStep_getAction$exported$2)
42883
- });
42884
- Object.defineProperty(c, "param1", {
42885
- get: $rt_callWithReceiver(asr_JsBackStep_getParam1$exported$3)
42886
- });
42887
- Object.defineProperty(c, "param2", {
42888
- get: $rt_callWithReceiver(asr_JsBackStep_getParam2$exported$1)
42889
- });
42890
- c = asr_JsCompilationResult.prototype;
42891
- Object.defineProperty(c, "hasErrors", {
42892
- get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
42893
- });
42894
- Object.defineProperty(c, "report", {
42895
- get: $rt_callWithReceiver(asr_JsCompilationResult_getReport$exported$2)
42896
- });
42897
- Object.defineProperty(c, "errors", {
42898
- get: $rt_callWithReceiver(asr_JsCompilationResult_getErrors$exported$0)
42899
- });
42900
42891
  c = asr_JsStackFrame.prototype;
42901
42892
  Object.defineProperty(c, "pc", {
42902
42893
  get: $rt_callWithReceiver(asr_JsStackFrame_getPc$exported$0)
@@ -42913,12 +42904,15 @@ var $rt_jso_marker = Symbol("jsoClass");
42913
42904
  Object.defineProperty(c, "toAddress", {
42914
42905
  get: $rt_callWithReceiver(asr_JsStackFrame_getToAddress$exported$1)
42915
42906
  });
42916
- c = asr_JsRiscVTokenizedLine.prototype;
42917
- Object.defineProperty(c, "line", {
42918
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getLine$exported$0)
42907
+ c = asr_JsCompilationResult.prototype;
42908
+ Object.defineProperty(c, "hasErrors", {
42909
+ get: $rt_callWithReceiver(asr_JsCompilationResult_hasErrors$exported$1)
42919
42910
  });
42920
- Object.defineProperty(c, "tokens", {
42921
- get: $rt_callWithReceiver(asr_JsRiscVTokenizedLine_getTokens$exported$1)
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)
42922
42916
  });
42923
42917
  c = asr_JsCompilationResult$JsCompilationError.prototype;
42924
42918
  Object.defineProperty(c, "macroExpansionHistory", {
@@ -42966,26 +42960,26 @@ function $rt_export_class_JsInstruction_32() {
42966
42960
  throw new Error("Can't instantiate this class directly");
42967
42961
  }
42968
42962
  $rt_export_class_JsInstruction_32.prototype = asr_JsInstruction.prototype;
42969
- function $rt_export_class_JsProgramStatement_71() {
42963
+ function $rt_export_class_JsBackStep_73() {
42970
42964
  throw new Error("Can't instantiate this class directly");
42971
42965
  }
42972
- $rt_export_class_JsProgramStatement_71.prototype = asr_JsProgramStatement.prototype;
42973
- function $rt_export_class_JsBackStep_75() {
42966
+ $rt_export_class_JsBackStep_73.prototype = asr_JsBackStep.prototype;
42967
+ function $rt_export_class_JsRiscVTokenizedLine_76() {
42974
42968
  throw new Error("Can't instantiate this class directly");
42975
42969
  }
42976
- $rt_export_class_JsBackStep_75.prototype = asr_JsBackStep.prototype;
42977
- function $rt_export_class_JsCompilationResult_76() {
42970
+ $rt_export_class_JsRiscVTokenizedLine_76.prototype = asr_JsRiscVTokenizedLine.prototype;
42971
+ function $rt_export_class_JsProgramStatement_80() {
42978
42972
  throw new Error("Can't instantiate this class directly");
42979
42973
  }
42980
- $rt_export_class_JsCompilationResult_76.prototype = asr_JsCompilationResult.prototype;
42981
- function $rt_export_class_JsStackFrame_80() {
42974
+ $rt_export_class_JsProgramStatement_80.prototype = asr_JsProgramStatement.prototype;
42975
+ function $rt_export_class_JsStackFrame_81() {
42982
42976
  throw new Error("Can't instantiate this class directly");
42983
42977
  }
42984
- $rt_export_class_JsStackFrame_80.prototype = asr_JsStackFrame.prototype;
42985
- function $rt_export_class_JsRiscVTokenizedLine_83() {
42978
+ $rt_export_class_JsStackFrame_81.prototype = asr_JsStackFrame.prototype;
42979
+ function $rt_export_class_JsCompilationResult_82() {
42986
42980
  throw new Error("Can't instantiate this class directly");
42987
42981
  }
42988
- $rt_export_class_JsRiscVTokenizedLine_83.prototype = asr_JsRiscVTokenizedLine.prototype;
42982
+ $rt_export_class_JsCompilationResult_82.prototype = asr_JsCompilationResult.prototype;
42989
42983
  function $rt_export_class_JsCompilationError_349() {
42990
42984
  throw new Error("Can't instantiate this class directly");
42991
42985
  }
@@ -43028,6 +43022,9 @@ var RISCV = class {
43028
43022
  static setIs64Bit(is64Bit) {
43029
43023
  asr_JsRiscV_setIs64Bit$exported$27(is64Bit);
43030
43024
  }
43025
+ static is64Bit() {
43026
+ return asr_JsRiscV_is64Bit$exported$30();
43027
+ }
43031
43028
  };
43032
43029
  var BackStepAction = /* @__PURE__ */ ((BackStepAction2) => {
43033
43030
  BackStepAction2[BackStepAction2["MEMORY_RESTORE_RAW_WORD"] = 0] = "MEMORY_RESTORE_RAW_WORD";