@specy/risc-v 1.0.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -2767,7 +2767,16 @@ var asr_JsRiscV_assemble$exported$7 = (var$1) => {
2767
2767
  }
2768
2768
  return var$2;
2769
2769
  };
2770
- var asr_JsRiscV_undo$exported$8 = (var$1) => {
2770
+ var asr_JsRiscV_setRegisterValue$exported$8 = (var$1, var$2, var$3, var$4) => {
2771
+ let var$5, var$6;
2772
+ asr_JsRiscV_$callClinit();
2773
+ var$2 = $rt_str(var$2);
2774
+ var$5 = var$3;
2775
+ var$6 = var$4;
2776
+ var$1;
2777
+ asrrh_RegisterFile_getRegister(var$2).$setValue(Long_or(Long_shl(Long_fromInt(var$5), 32), Long_and(Long_fromInt(var$6), Long_create(4294967295, 0))));
2778
+ };
2779
+ var asr_JsRiscV_undo$exported$9 = (var$1) => {
2771
2780
  let var$2, var$3, var$4, $$je;
2772
2781
  asr_JsRiscV_$callClinit();
2773
2782
  var$2 = var$1.$main.$main0.$backStepper;
@@ -2846,13 +2855,6 @@ var asr_JsRiscV_undo$exported$8 = (var$1) => {
2846
2855
  var$2.$engaged = 1;
2847
2856
  }
2848
2857
  };
2849
- var asr_JsRiscV_setRegisterValue$exported$9 = (var$1, var$2, var$3) => {
2850
- asr_JsRiscV_$callClinit();
2851
- var$2 = $rt_str(var$2);
2852
- var$3 = var$3;
2853
- var$1;
2854
- asrrh_RegisterFile_getRegister(var$2).$setValue(jm_BigInteger_longValue(var$3));
2855
- };
2856
2858
  var asr_JsRiscV_getCompiledStatements$exported$10 = (var$1) => {
2857
2859
  let var$2, var$3, var$4, var$5;
2858
2860
  asr_JsRiscV_$callClinit();
@@ -3319,11 +3321,11 @@ var asr_JsRiscV__clinit_ = () => {
3319
3321
  ju_Comparator$NaturalOrder__clinit_();
3320
3322
  asrr_BasicInstructionFormat__clinit_();
3321
3323
  jl_Long__clinit_();
3322
- asrs_Simulator$Reason__clinit_();
3323
3324
  asrrh_FloatingPointRegisterFile__clinit_();
3324
3325
  asrrh_ControlAndStatusRegisterFile__clinit_();
3325
3326
  asrrh_InterruptController__clinit_();
3326
3327
  asrrh_Stack__clinit_();
3328
+ asrs_Simulator$Reason__clinit_();
3327
3329
  asra_Tokenizer__clinit_();
3328
3330
  asrs_Simulator__clinit_();
3329
3331
  asra_Directives__clinit_();
@@ -3340,12 +3342,12 @@ var asr_JsRiscV__clinit_ = () => {
3340
3342
  jnc_CodingErrorAction__clinit_();
3341
3343
  jnc_CoderResult__clinit_();
3342
3344
  jn_ByteOrder__clinit_();
3343
- asrjt_Float32__clinit_();
3344
3345
  asrjt_Float64__clinit_();
3346
+ asrjt_Float32__clinit_();
3345
3347
  asrjo_Arithmetic__clinit_();
3346
3348
  asrj_RoundingMode__clinit_();
3347
- asrji_ExactFloat__clinit_();
3348
3349
  asrj_Flags__clinit_();
3350
+ asrji_ExactFloat__clinit_();
3349
3351
  asrrs_RandomStreams__clinit_();
3350
3352
  otcit_FloatSynthesizer__clinit_();
3351
3353
  jl_Byte__clinit_();
@@ -7072,345 +7074,6 @@ var jl_System_currentTimeMillis = () => {
7072
7074
  return Long_fromNumber((/* @__PURE__ */ new Date()).getTime());
7073
7075
  };
7074
7076
  var jl_CloneNotSupportedException = $rt_classWithoutFields(jl_Exception);
7075
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7076
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7077
- let var$2, var$3, var$4, var$5;
7078
- var$1 = var$1;
7079
- asr_JsRiscV_$callClinit();
7080
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7081
- var$3 = var$2.data;
7082
- var$4 = 0;
7083
- while (var$4 < asra_TokenList_size(var$1)) {
7084
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7085
- var$4 = var$4 + 1 | 0;
7086
- }
7087
- var$5 = new asr_JsRiscVTokenizedLine();
7088
- var$5.$line0 = var$1.$processedLine;
7089
- var$5.$tokens0 = var$2;
7090
- return var$5;
7091
- };
7092
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7093
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7094
- asr_JsRiscV_$callClinit();
7095
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7096
- };
7097
- function asr_JsRiscVTokenizedLine() {
7098
- let a = this;
7099
- jl_Object.call(a);
7100
- a.$line0 = null;
7101
- a.$tokens0 = null;
7102
- }
7103
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7104
- return $rt_ustr(var$1.$line0);
7105
- };
7106
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7107
- return otji_JS_wrap(var$1.$tokens0);
7108
- };
7109
- var ju_Arrays = $rt_classWithoutFields();
7110
- var ju_Arrays_copyOf1 = ($array, $length) => {
7111
- let $result, var$4, $sz, $i;
7112
- $array = $array.data;
7113
- $result = $rt_createCharArray($length);
7114
- var$4 = $result.data;
7115
- $sz = jl_Math_min($length, $array.length);
7116
- $i = 0;
7117
- while ($i < $sz) {
7118
- var$4[$i] = $array[$i];
7119
- $i = $i + 1 | 0;
7120
- }
7121
- return $result;
7122
- };
7123
- var ju_Arrays_copyOf0 = ($array, $length) => {
7124
- let $result, var$4, $sz, $i;
7125
- $array = $array.data;
7126
- $result = $rt_createByteArray($length);
7127
- var$4 = $result.data;
7128
- $sz = jl_Math_min($length, $array.length);
7129
- $i = 0;
7130
- while ($i < $sz) {
7131
- var$4[$i] = $array[$i];
7132
- $i = $i + 1 | 0;
7133
- }
7134
- return $result;
7135
- };
7136
- var ju_Arrays_copyOf2 = ($array, $length) => {
7137
- let $result, var$4, $sz, $i;
7138
- $array = $array.data;
7139
- $result = $rt_createIntArray($length);
7140
- var$4 = $result.data;
7141
- $sz = jl_Math_min($length, $array.length);
7142
- $i = 0;
7143
- while ($i < $sz) {
7144
- var$4[$i] = $array[$i];
7145
- $i = $i + 1 | 0;
7146
- }
7147
- return $result;
7148
- };
7149
- var ju_Arrays_copyOf = ($original, $newLength) => {
7150
- let var$3, $result, $sz, $i;
7151
- var$3 = $original.data;
7152
- $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7153
- $sz = jl_Math_min($newLength, var$3.length);
7154
- $i = 0;
7155
- while ($i < $sz) {
7156
- $result.data[$i] = var$3[$i];
7157
- $i = $i + 1 | 0;
7158
- }
7159
- return $result;
7160
- };
7161
- var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7162
- let var$5, var$6, var$7;
7163
- if ($fromIndex > $toIndex) {
7164
- var$5 = new jl_IllegalArgumentException();
7165
- jl_Throwable__init_(var$5);
7166
- $rt_throw(var$5);
7167
- }
7168
- while ($fromIndex < $toIndex) {
7169
- var$6 = $a.data;
7170
- var$7 = $fromIndex + 1 | 0;
7171
- var$6[$fromIndex] = $val;
7172
- $fromIndex = var$7;
7173
- }
7174
- };
7175
- var ju_Arrays_fill = ($a, $val) => {
7176
- ju_Arrays_fill0($a, 0, $a.data.length, $val);
7177
- };
7178
- var ju_Arrays_sort = ($a) => {
7179
- let var$2, $second, $chunkSize, var$5, $i, var$7, var$8, var$9, $i_0, var$11, var$12, var$13, var$14, var$15, var$16, var$17;
7180
- var$2 = $a.data.length;
7181
- if (!var$2)
7182
- return;
7183
- $second = $rt_createIntArray(var$2);
7184
- $chunkSize = 1;
7185
- var$5 = $a;
7186
- while ($chunkSize < var$2) {
7187
- $i = 0;
7188
- while (true) {
7189
- var$7 = var$5.data;
7190
- var$8 = var$7.length;
7191
- if ($i >= var$8)
7192
- break;
7193
- var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7194
- $i_0 = $i + (2 * $chunkSize | 0) | 0;
7195
- var$8 = jl_Math_min(var$8, $i_0);
7196
- var$11 = $i;
7197
- var$12 = var$9;
7198
- a: {
7199
- b: {
7200
- while ($i != var$9) {
7201
- if (var$12 == var$8)
7202
- break b;
7203
- var$13 = var$7[$i];
7204
- var$14 = var$7[var$12];
7205
- if (var$13 > var$14) {
7206
- var$15 = $second.data;
7207
- var$16 = var$11 + 1 | 0;
7208
- var$15[var$11] = var$14;
7209
- var$12 = var$12 + 1 | 0;
7210
- } else {
7211
- var$15 = $second.data;
7212
- var$16 = var$11 + 1 | 0;
7213
- var$15[var$11] = var$13;
7214
- $i = $i + 1 | 0;
7215
- }
7216
- var$11 = var$16;
7217
- }
7218
- while (true) {
7219
- if (var$12 >= var$8)
7220
- break a;
7221
- var$15 = $second.data;
7222
- var$17 = var$11 + 1 | 0;
7223
- $i = var$12 + 1 | 0;
7224
- var$15[var$11] = var$7[var$12];
7225
- var$11 = var$17;
7226
- var$12 = $i;
7227
- }
7228
- }
7229
- while (true) {
7230
- if ($i >= var$9)
7231
- break a;
7232
- var$15 = $second.data;
7233
- var$17 = var$11 + 1 | 0;
7234
- var$8 = $i + 1 | 0;
7235
- var$15[var$11] = var$7[$i];
7236
- var$11 = var$17;
7237
- $i = var$8;
7238
- }
7239
- }
7240
- $i = $i_0;
7241
- }
7242
- $chunkSize = $chunkSize * 2 | 0;
7243
- var$15 = var$5;
7244
- var$5 = $second;
7245
- $second = var$15;
7246
- }
7247
- c: {
7248
- if (var$5 !== $a) {
7249
- $i_0 = 0;
7250
- while (true) {
7251
- $a = var$5.data;
7252
- if ($i_0 >= $a.length)
7253
- break c;
7254
- $second.data[$i_0] = $a[$i_0];
7255
- $i_0 = $i_0 + 1 | 0;
7256
- }
7257
- }
7258
- }
7259
- };
7260
- var ju_Arrays_binarySearch = ($a, $key) => {
7261
- let var$3, var$4, var$5, var$6, var$7;
7262
- $a = $a.data;
7263
- var$3 = 0;
7264
- var$4 = $a.length;
7265
- if (var$3 > var$4) {
7266
- var$5 = new jl_IllegalArgumentException();
7267
- jl_Throwable__init_(var$5);
7268
- $rt_throw(var$5);
7269
- }
7270
- var$6 = var$4 - 1 | 0;
7271
- a: {
7272
- while (true) {
7273
- if (var$3 > var$6) {
7274
- var$4 = (-var$3 | 0) - 1 | 0;
7275
- break a;
7276
- }
7277
- var$4 = (var$3 + var$6 | 0) / 2 | 0;
7278
- var$7 = $a[var$4];
7279
- if (var$7 == $key)
7280
- break;
7281
- if ($key >= var$7)
7282
- var$3 = var$4 + 1 | 0;
7283
- else
7284
- var$6 = var$4 - 1 | 0;
7285
- }
7286
- }
7287
- return var$4;
7288
- };
7289
- var ju_Arrays_stream = ($array) => {
7290
- let var$2, var$3, var$4;
7291
- var$2 = $array.data;
7292
- var$3 = new jusi_ArrayStreamImpl();
7293
- var$4 = var$2.length;
7294
- var$3.$array6 = $array;
7295
- var$3.$index1 = 0;
7296
- var$3.$end1 = var$4;
7297
- var$3.$size2 = var$4 - 0 | 0;
7298
- return var$3;
7299
- };
7300
- var asr_JsRiscV$getUndoStack$lambda$_26_0 = $rt_classWithoutFields();
7301
- var asr_JsRiscV$getUndoStack$lambda$_26_0_apply = (var$0, var$1) => {
7302
- let var$2, var$3;
7303
- var$1 = var$1;
7304
- var$2 = new asr_JsBackStep();
7305
- var$3 = var$1.$action;
7306
- var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7307
- var$2.$pc2 = var$1.$pc1;
7308
- var$2.$param10 = var$1.$param1;
7309
- var$2.$param20 = Long_lo(var$1.$param2);
7310
- return var$2;
7311
- };
7312
- var asr_JsRiscV$getUndoStack$lambda$_26_1 = $rt_classWithoutFields();
7313
- var asr_JsRiscV$getUndoStack$lambda$_26_1_apply = (var$0, var$1) => {
7314
- asr_JsRiscV_$callClinit();
7315
- return $rt_createArray(asr_JsBackStep, var$1);
7316
- };
7317
- function asr_JsBackStep() {
7318
- let a = this;
7319
- jl_Object.call(a);
7320
- a.$action0 = 0;
7321
- a.$pc2 = 0;
7322
- a.$param10 = 0;
7323
- a.$param20 = 0;
7324
- }
7325
- var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7326
- return var$1.$pc2;
7327
- };
7328
- var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7329
- return var$1.$param20;
7330
- };
7331
- var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7332
- return var$1.$action0;
7333
- };
7334
- var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7335
- return var$1.$param10;
7336
- };
7337
- function asr_JsProgramStatement() {
7338
- let a = this;
7339
- jl_Object.call(a);
7340
- a.$sourceLine1 = 0;
7341
- a.$address2 = 0;
7342
- a.$binaryStatement0 = 0;
7343
- a.$source3 = null;
7344
- a.$assemblyStatement = null;
7345
- a.$machineStatement0 = null;
7346
- }
7347
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7348
- let var$2, var$3, var$4, var$5, var$6;
7349
- $this.$sourceLine1 = $programStatement.$sourceLine0;
7350
- $this.$address2 = $programStatement.$textAddress0;
7351
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
7352
- $this.$source3 = $programStatement.$source;
7353
- var$2 = $programStatement.$basicStatementList;
7354
- var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7355
- var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7356
- var$5 = new jl_StringBuffer();
7357
- jl_AbstractStringBuilder__init_(var$5);
7358
- var$6 = ju_AbstractList_iterator(var$2.$list);
7359
- while (ju_AbstractList$1_hasNext(var$6)) {
7360
- a: {
7361
- var$2 = ju_AbstractList$1_next(var$6);
7362
- switch (var$2.$type3) {
7363
- case 0:
7364
- break;
7365
- case 1:
7366
- if (var$3 == 10) {
7367
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7368
- break a;
7369
- }
7370
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7371
- break a;
7372
- case 2:
7373
- if (var$4 == 10) {
7374
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7375
- break a;
7376
- }
7377
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7378
- break a;
7379
- case 3:
7380
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7381
- break a;
7382
- default:
7383
- break a;
7384
- }
7385
- jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7386
- }
7387
- }
7388
- $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7389
- $this.$machineStatement0 = $programStatement.$machineStatement;
7390
- };
7391
- var asr_JsProgramStatement__init_ = (var_0) => {
7392
- let var_1 = new asr_JsProgramStatement();
7393
- asr_JsProgramStatement__init_0(var_1, var_0);
7394
- return var_1;
7395
- };
7396
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7397
- return var$1.$sourceLine1;
7398
- };
7399
- var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7400
- return $rt_ustr(var$1.$assemblyStatement);
7401
- };
7402
- var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7403
- return $rt_ustr(var$1.$source3);
7404
- };
7405
- var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7406
- return var$1.$address2;
7407
- };
7408
- var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7409
- return var$1.$binaryStatement0;
7410
- };
7411
- var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7412
- return $rt_ustr(var$1.$machineStatement0);
7413
- };
7414
7077
  var asrrh_RegisterFile = $rt_classWithoutFields();
7415
7078
  var asrrh_RegisterFile_instance = null;
7416
7079
  var asrrh_RegisterFile_programCounter = null;
@@ -7418,16 +7081,16 @@ var asrrh_RegisterFile_$callClinit = () => {
7418
7081
  asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7419
7082
  asrrh_RegisterFile__clinit_();
7420
7083
  };
7421
- var asrrh_RegisterFile_updateRegister = ($num, $val) => {
7084
+ var asrrh_RegisterFile_updateRegister = (var$1, var$2) => {
7422
7085
  let var$3;
7423
7086
  asrrh_RegisterFile_$callClinit();
7424
- if ($num) {
7087
+ if (var$1) {
7425
7088
  if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7426
- asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7089
+ asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7427
7090
  else {
7428
7091
  var$3 = asr_Globals_program.$backStepper;
7429
- $val = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7430
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
7092
+ var$2 = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7093
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), var$1, var$2);
7431
7094
  }
7432
7095
  }
7433
7096
  };
@@ -7550,6 +7213,197 @@ var asrrh_RegisterFile__clinit_ = () => {
7550
7213
  asrrh_RegisterFile_instance = var$1;
7551
7214
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(243), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7552
7215
  };
7216
+ var ju_Arrays = $rt_classWithoutFields();
7217
+ var ju_Arrays_copyOf1 = ($array, $length) => {
7218
+ let $result, var$4, $sz, $i;
7219
+ $array = $array.data;
7220
+ $result = $rt_createCharArray($length);
7221
+ var$4 = $result.data;
7222
+ $sz = jl_Math_min($length, $array.length);
7223
+ $i = 0;
7224
+ while ($i < $sz) {
7225
+ var$4[$i] = $array[$i];
7226
+ $i = $i + 1 | 0;
7227
+ }
7228
+ return $result;
7229
+ };
7230
+ var ju_Arrays_copyOf0 = ($array, $length) => {
7231
+ let $result, var$4, $sz, $i;
7232
+ $array = $array.data;
7233
+ $result = $rt_createByteArray($length);
7234
+ var$4 = $result.data;
7235
+ $sz = jl_Math_min($length, $array.length);
7236
+ $i = 0;
7237
+ while ($i < $sz) {
7238
+ var$4[$i] = $array[$i];
7239
+ $i = $i + 1 | 0;
7240
+ }
7241
+ return $result;
7242
+ };
7243
+ var ju_Arrays_copyOf2 = ($array, $length) => {
7244
+ let $result, var$4, $sz, $i;
7245
+ $array = $array.data;
7246
+ $result = $rt_createIntArray($length);
7247
+ var$4 = $result.data;
7248
+ $sz = jl_Math_min($length, $array.length);
7249
+ $i = 0;
7250
+ while ($i < $sz) {
7251
+ var$4[$i] = $array[$i];
7252
+ $i = $i + 1 | 0;
7253
+ }
7254
+ return $result;
7255
+ };
7256
+ var ju_Arrays_copyOf = ($original, $newLength) => {
7257
+ let var$3, $result, $sz, $i;
7258
+ var$3 = $original.data;
7259
+ $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7260
+ $sz = jl_Math_min($newLength, var$3.length);
7261
+ $i = 0;
7262
+ while ($i < $sz) {
7263
+ $result.data[$i] = var$3[$i];
7264
+ $i = $i + 1 | 0;
7265
+ }
7266
+ return $result;
7267
+ };
7268
+ var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7269
+ let var$5, var$6, var$7;
7270
+ if ($fromIndex > $toIndex) {
7271
+ var$5 = new jl_IllegalArgumentException();
7272
+ jl_Throwable__init_(var$5);
7273
+ $rt_throw(var$5);
7274
+ }
7275
+ while ($fromIndex < $toIndex) {
7276
+ var$6 = $a.data;
7277
+ var$7 = $fromIndex + 1 | 0;
7278
+ var$6[$fromIndex] = $val;
7279
+ $fromIndex = var$7;
7280
+ }
7281
+ };
7282
+ var ju_Arrays_fill = ($a, $val) => {
7283
+ ju_Arrays_fill0($a, 0, $a.data.length, $val);
7284
+ };
7285
+ var ju_Arrays_sort = ($a) => {
7286
+ let var$2, $second, $chunkSize, var$5, $i, var$7, var$8, var$9, $i_0, var$11, var$12, var$13, var$14, var$15, var$16, var$17;
7287
+ var$2 = $a.data.length;
7288
+ if (!var$2)
7289
+ return;
7290
+ $second = $rt_createIntArray(var$2);
7291
+ $chunkSize = 1;
7292
+ var$5 = $a;
7293
+ while ($chunkSize < var$2) {
7294
+ $i = 0;
7295
+ while (true) {
7296
+ var$7 = var$5.data;
7297
+ var$8 = var$7.length;
7298
+ if ($i >= var$8)
7299
+ break;
7300
+ var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7301
+ $i_0 = $i + (2 * $chunkSize | 0) | 0;
7302
+ var$8 = jl_Math_min(var$8, $i_0);
7303
+ var$11 = $i;
7304
+ var$12 = var$9;
7305
+ a: {
7306
+ b: {
7307
+ while ($i != var$9) {
7308
+ if (var$12 == var$8)
7309
+ break b;
7310
+ var$13 = var$7[$i];
7311
+ var$14 = var$7[var$12];
7312
+ if (var$13 > var$14) {
7313
+ var$15 = $second.data;
7314
+ var$16 = var$11 + 1 | 0;
7315
+ var$15[var$11] = var$14;
7316
+ var$12 = var$12 + 1 | 0;
7317
+ } else {
7318
+ var$15 = $second.data;
7319
+ var$16 = var$11 + 1 | 0;
7320
+ var$15[var$11] = var$13;
7321
+ $i = $i + 1 | 0;
7322
+ }
7323
+ var$11 = var$16;
7324
+ }
7325
+ while (true) {
7326
+ if (var$12 >= var$8)
7327
+ break a;
7328
+ var$15 = $second.data;
7329
+ var$17 = var$11 + 1 | 0;
7330
+ $i = var$12 + 1 | 0;
7331
+ var$15[var$11] = var$7[var$12];
7332
+ var$11 = var$17;
7333
+ var$12 = $i;
7334
+ }
7335
+ }
7336
+ while (true) {
7337
+ if ($i >= var$9)
7338
+ break a;
7339
+ var$15 = $second.data;
7340
+ var$17 = var$11 + 1 | 0;
7341
+ var$8 = $i + 1 | 0;
7342
+ var$15[var$11] = var$7[$i];
7343
+ var$11 = var$17;
7344
+ $i = var$8;
7345
+ }
7346
+ }
7347
+ $i = $i_0;
7348
+ }
7349
+ $chunkSize = $chunkSize * 2 | 0;
7350
+ var$15 = var$5;
7351
+ var$5 = $second;
7352
+ $second = var$15;
7353
+ }
7354
+ c: {
7355
+ if (var$5 !== $a) {
7356
+ $i_0 = 0;
7357
+ while (true) {
7358
+ $a = var$5.data;
7359
+ if ($i_0 >= $a.length)
7360
+ break c;
7361
+ $second.data[$i_0] = $a[$i_0];
7362
+ $i_0 = $i_0 + 1 | 0;
7363
+ }
7364
+ }
7365
+ }
7366
+ };
7367
+ var ju_Arrays_binarySearch = ($a, $key) => {
7368
+ let var$3, var$4, var$5, var$6, var$7;
7369
+ $a = $a.data;
7370
+ var$3 = 0;
7371
+ var$4 = $a.length;
7372
+ if (var$3 > var$4) {
7373
+ var$5 = new jl_IllegalArgumentException();
7374
+ jl_Throwable__init_(var$5);
7375
+ $rt_throw(var$5);
7376
+ }
7377
+ var$6 = var$4 - 1 | 0;
7378
+ a: {
7379
+ while (true) {
7380
+ if (var$3 > var$6) {
7381
+ var$4 = (-var$3 | 0) - 1 | 0;
7382
+ break a;
7383
+ }
7384
+ var$4 = (var$3 + var$6 | 0) / 2 | 0;
7385
+ var$7 = $a[var$4];
7386
+ if (var$7 == $key)
7387
+ break;
7388
+ if ($key >= var$7)
7389
+ var$3 = var$4 + 1 | 0;
7390
+ else
7391
+ var$6 = var$4 - 1 | 0;
7392
+ }
7393
+ }
7394
+ return var$4;
7395
+ };
7396
+ var ju_Arrays_stream = ($array) => {
7397
+ let var$2, var$3, var$4;
7398
+ var$2 = $array.data;
7399
+ var$3 = new jusi_ArrayStreamImpl();
7400
+ var$4 = var$2.length;
7401
+ var$3.$array6 = $array;
7402
+ var$3.$index1 = 0;
7403
+ var$3.$end1 = var$4;
7404
+ var$3.$size2 = var$4 - 0 | 0;
7405
+ return var$3;
7406
+ };
7553
7407
  var juf_ToIntFunction = $rt_classWithoutFields(0);
7554
7408
  var asr_JsRiscV$getRegistersValues$lambda$_25_0 = $rt_classWithoutFields();
7555
7409
  function jm_BigInteger() {
@@ -7924,6 +7778,154 @@ var jm_BigInteger__clinit_ = () => {
7924
7778
  $i = $i + 1 | 0;
7925
7779
  }
7926
7780
  };
7781
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7782
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7783
+ let var$2, var$3, var$4, var$5;
7784
+ var$1 = var$1;
7785
+ asr_JsRiscV_$callClinit();
7786
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7787
+ var$3 = var$2.data;
7788
+ var$4 = 0;
7789
+ while (var$4 < asra_TokenList_size(var$1)) {
7790
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7791
+ var$4 = var$4 + 1 | 0;
7792
+ }
7793
+ var$5 = new asr_JsRiscVTokenizedLine();
7794
+ var$5.$line0 = var$1.$processedLine;
7795
+ var$5.$tokens0 = var$2;
7796
+ return var$5;
7797
+ };
7798
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7799
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7800
+ asr_JsRiscV_$callClinit();
7801
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7802
+ };
7803
+ function asr_JsRiscVTokenizedLine() {
7804
+ let a = this;
7805
+ jl_Object.call(a);
7806
+ a.$line0 = null;
7807
+ a.$tokens0 = null;
7808
+ }
7809
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7810
+ return $rt_ustr(var$1.$line0);
7811
+ };
7812
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7813
+ return otji_JS_wrap(var$1.$tokens0);
7814
+ };
7815
+ var asr_JsRiscV$getUndoStack$lambda$_26_0 = $rt_classWithoutFields();
7816
+ var asr_JsRiscV$getUndoStack$lambda$_26_0_apply = (var$0, var$1) => {
7817
+ let var$2, var$3;
7818
+ var$1 = var$1;
7819
+ var$2 = new asr_JsBackStep();
7820
+ var$3 = var$1.$action;
7821
+ var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7822
+ var$2.$pc2 = var$1.$pc1;
7823
+ var$2.$param10 = var$1.$param1;
7824
+ var$2.$param20 = Long_lo(var$1.$param2);
7825
+ return var$2;
7826
+ };
7827
+ var asr_JsRiscV$getUndoStack$lambda$_26_1 = $rt_classWithoutFields();
7828
+ var asr_JsRiscV$getUndoStack$lambda$_26_1_apply = (var$0, var$1) => {
7829
+ asr_JsRiscV_$callClinit();
7830
+ return $rt_createArray(asr_JsBackStep, var$1);
7831
+ };
7832
+ function asr_JsBackStep() {
7833
+ let a = this;
7834
+ jl_Object.call(a);
7835
+ a.$action0 = 0;
7836
+ a.$pc2 = 0;
7837
+ a.$param10 = 0;
7838
+ a.$param20 = 0;
7839
+ }
7840
+ var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7841
+ return var$1.$pc2;
7842
+ };
7843
+ var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7844
+ return var$1.$param20;
7845
+ };
7846
+ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7847
+ return var$1.$action0;
7848
+ };
7849
+ var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7850
+ return var$1.$param10;
7851
+ };
7852
+ function asr_JsProgramStatement() {
7853
+ let a = this;
7854
+ jl_Object.call(a);
7855
+ a.$sourceLine1 = 0;
7856
+ a.$address2 = 0;
7857
+ a.$binaryStatement0 = 0;
7858
+ a.$source3 = null;
7859
+ a.$assemblyStatement = null;
7860
+ a.$machineStatement0 = null;
7861
+ }
7862
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7863
+ let var$2, var$3, var$4, var$5, var$6;
7864
+ $this.$sourceLine1 = $programStatement.$sourceLine0;
7865
+ $this.$address2 = $programStatement.$textAddress0;
7866
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
7867
+ $this.$source3 = $programStatement.$source;
7868
+ var$2 = $programStatement.$basicStatementList;
7869
+ var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7870
+ var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7871
+ var$5 = new jl_StringBuffer();
7872
+ jl_AbstractStringBuilder__init_(var$5);
7873
+ var$6 = ju_AbstractList_iterator(var$2.$list);
7874
+ while (ju_AbstractList$1_hasNext(var$6)) {
7875
+ a: {
7876
+ var$2 = ju_AbstractList$1_next(var$6);
7877
+ switch (var$2.$type3) {
7878
+ case 0:
7879
+ break;
7880
+ case 1:
7881
+ if (var$3 == 10) {
7882
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7883
+ break a;
7884
+ }
7885
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7886
+ break a;
7887
+ case 2:
7888
+ if (var$4 == 10) {
7889
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7890
+ break a;
7891
+ }
7892
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7893
+ break a;
7894
+ case 3:
7895
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7896
+ break a;
7897
+ default:
7898
+ break a;
7899
+ }
7900
+ jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7901
+ }
7902
+ }
7903
+ $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7904
+ $this.$machineStatement0 = $programStatement.$machineStatement;
7905
+ };
7906
+ var asr_JsProgramStatement__init_ = (var_0) => {
7907
+ let var_1 = new asr_JsProgramStatement();
7908
+ asr_JsProgramStatement__init_0(var_1, var_0);
7909
+ return var_1;
7910
+ };
7911
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7912
+ return var$1.$sourceLine1;
7913
+ };
7914
+ var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7915
+ return $rt_ustr(var$1.$assemblyStatement);
7916
+ };
7917
+ var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7918
+ return $rt_ustr(var$1.$source3);
7919
+ };
7920
+ var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7921
+ return var$1.$address2;
7922
+ };
7923
+ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7924
+ return var$1.$binaryStatement0;
7925
+ };
7926
+ var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7927
+ return $rt_ustr(var$1.$machineStatement0);
7928
+ };
7927
7929
  function asr_JsCompilationResult() {
7928
7930
  let a = this;
7929
7931
  jl_Object.call(a);
@@ -8554,125 +8556,100 @@ var asr_RISCVFile_getName = ($this) => {
8554
8556
  return $this.$name2;
8555
8557
  };
8556
8558
  var jl_StringIndexOutOfBoundsException = $rt_classWithoutFields(jl_IndexOutOfBoundsException);
8557
- function asrs_BackStepper() {
8559
+ function asrrh_Register() {
8558
8560
  let a = this;
8559
- jl_Object.call(a);
8560
- a.$engaged = 0;
8561
- a.$backSteps = null;
8561
+ ju_Observable.call(a);
8562
+ a.$name1 = null;
8563
+ a.$number = 0;
8564
+ a.$resetValue0 = Long_ZERO;
8565
+ a.$value2 = Long_ZERO;
8562
8566
  }
8563
- var asrs_BackStepper_pc = ($this) => {
8564
- return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
8567
+ var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8568
+ ju_Observable__init_($this);
8569
+ $this.$name1 = $n;
8570
+ $this.$number = $num;
8571
+ $this.$value2 = $val;
8572
+ $this.$resetValue0 = $val;
8565
8573
  };
8566
- var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value) => {
8567
- asrs_BackStepper$BackstepStack_push($this.$backSteps, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value);
8568
- return $value;
8574
+ var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8575
+ let var_3 = new asrrh_Register();
8576
+ asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8577
+ return var_3;
8569
8578
  };
8570
- var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8571
- if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8572
- asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8579
+ var asrrh_Register_getName = ($this) => {
8580
+ return $this.$name1;
8573
8581
  };
8574
- function asrs_BackStepper$BackstepStack() {
8575
- let a = this;
8576
- jl_Object.call(a);
8577
- a.$capacity = 0;
8578
- a.$size1 = 0;
8579
- a.$top = 0;
8580
- a.$stack = null;
8581
- a.$this$015 = null;
8582
- }
8583
- var asrs_BackStepper$BackstepStack_empty = ($this) => {
8582
+ var asrrh_Register_getValue = ($this) => {
8584
8583
  jl_Object_monitorEnterSync($this);
8585
8584
  try {
8586
- return $this.$size1 ? 0 : 1;
8585
+ asrrh_Register_notifyAnyObservers($this, 0);
8586
+ return $this.$value2;
8587
8587
  } finally {
8588
8588
  jl_Object_monitorExitSync($this);
8589
8589
  }
8590
8590
  };
8591
- var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2) => {
8592
- let var$5, var$6, var$7, $$je;
8591
+ var asrrh_Register_getValueNoNotify = ($this) => {
8593
8592
  jl_Object_monitorEnterSync($this);
8594
8593
  try {
8595
- var$5 = $this.$size1;
8596
- if (!var$5) {
8597
- $this.$top = 0;
8598
- $this.$size1 = var$5 + 1 | 0;
8599
- } else {
8600
- var$6 = $this.$capacity;
8601
- if (var$5 >= var$6)
8602
- $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8603
- else {
8604
- $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8605
- $this.$size1 = var$5 + 1 | 0;
8606
- }
8607
- }
8608
- var$7 = $this.$stack.data[$this.$top];
8609
- var$7.$action = $act;
8610
- var$7.$pc1 = $programCounter;
8611
- a: {
8612
- try {
8613
- asr_Globals_$callClinit();
8614
- var$7.$ps = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
8615
- break a;
8616
- } catch ($$e) {
8617
- $$je = $rt_wrapException($$e);
8618
- if ($$je instanceof jl_Exception) {
8619
- } else {
8620
- throw $$e;
8621
- }
8622
- }
8623
- var$7.$ps = null;
8624
- var$7.$pc1 = -1;
8625
- }
8626
- var$7.$param1 = $parm1;
8627
- var$7.$param2 = $parm2;
8594
+ return $this.$value2;
8628
8595
  } finally {
8629
8596
  jl_Object_monitorExitSync($this);
8630
8597
  }
8631
8598
  };
8632
- var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1) => {
8599
+ var asrrh_Register_getNumber = ($this) => {
8600
+ return $this.$number;
8601
+ };
8602
+ var asrrh_Register_setValue = ($this, $val) => {
8603
+ let $old;
8633
8604
  jl_Object_monitorEnterSync($this);
8634
8605
  try {
8635
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, Long_ZERO);
8606
+ $old = $this.$value2;
8607
+ $this.$value2 = $val;
8608
+ asrrh_Register_notifyAnyObservers($this, 1);
8609
+ return $old;
8636
8610
  } finally {
8637
8611
  jl_Object_monitorExitSync($this);
8638
8612
  }
8639
8613
  };
8640
- var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
8614
+ var asrrh_Register_setValueBackdoor = ($this, $val) => {
8615
+ let $old;
8641
8616
  jl_Object_monitorEnterSync($this);
8642
8617
  try {
8643
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, 0, Long_ZERO);
8618
+ $old = $this.$value2;
8619
+ $this.$value2 = $val;
8620
+ return $old;
8644
8621
  } finally {
8645
8622
  jl_Object_monitorExitSync($this);
8646
8623
  }
8647
8624
  };
8648
- var asrs_BackStepper$BackstepStack_pop = ($this) => {
8649
- let var$1, var$2, $bs, var$4, var$5;
8625
+ var asrrh_Register_resetValue = ($this) => {
8650
8626
  jl_Object_monitorEnterSync($this);
8651
8627
  try {
8652
- var$1 = $this.$stack.data;
8653
- var$2 = $this.$top;
8654
- $bs = var$1[var$2];
8655
- var$4 = $this.$size1;
8656
- if (var$4 == 1)
8657
- $this.$top = -1;
8658
- else {
8659
- var$5 = $this.$capacity;
8660
- $this.$top = ((var$2 + var$5 | 0) - 1 | 0) % var$5 | 0;
8661
- }
8662
- $this.$size1 = var$4 - 1 | 0;
8663
- return $bs;
8628
+ $this.$value2 = $this.$resetValue0;
8664
8629
  } finally {
8665
8630
  jl_Object_monitorExitSync($this);
8666
8631
  }
8667
8632
  };
8668
- var asrs_BackStepper$BackstepStack_peek = ($this) => {
8633
+ var asrrh_Register_changeResetValue = ($this, $reset) => {
8669
8634
  jl_Object_monitorEnterSync($this);
8670
8635
  try {
8671
- return $this.$stack.data[$this.$top];
8636
+ $this.$resetValue0 = $reset;
8672
8637
  } finally {
8673
8638
  jl_Object_monitorExitSync($this);
8674
8639
  }
8675
8640
  };
8641
+ var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8642
+ let var$2, var$3, var$4;
8643
+ var$2 = $this;
8644
+ if (ju_Observable_countObservers(var$2) > 0) {
8645
+ ju_Observable_setChanged(var$2);
8646
+ var$3 = new asrrh_RegisterAccessNotice();
8647
+ var$4 = $this.$name1;
8648
+ asrrh_AccessNotice__init_(var$3, $type);
8649
+ var$3.$registerName = var$4;
8650
+ ju_Observable_notifyObservers(var$2, var$3);
8651
+ }
8652
+ };
8676
8653
  var jl_AutoCloseable = $rt_classWithoutFields(0);
8677
8654
  var jus_BaseStream = $rt_classWithoutFields(0);
8678
8655
  var jus_Stream = $rt_classWithoutFields(0);
@@ -8771,100 +8748,125 @@ var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8771
8748
  var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8772
8749
  return $this.$size2;
8773
8750
  };
8774
- function asrrh_Register() {
8751
+ function asrs_BackStepper() {
8775
8752
  let a = this;
8776
- ju_Observable.call(a);
8777
- a.$name1 = null;
8778
- a.$number = 0;
8779
- a.$resetValue0 = Long_ZERO;
8780
- a.$value2 = Long_ZERO;
8753
+ jl_Object.call(a);
8754
+ a.$engaged = 0;
8755
+ a.$backSteps = null;
8781
8756
  }
8782
- var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8783
- ju_Observable__init_($this);
8784
- $this.$name1 = $n;
8785
- $this.$number = $num;
8786
- $this.$value2 = $val;
8787
- $this.$resetValue0 = $val;
8757
+ var asrs_BackStepper_pc = ($this) => {
8758
+ return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
8788
8759
  };
8789
- var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8790
- let var_3 = new asrrh_Register();
8791
- asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8792
- return var_3;
8760
+ var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value) => {
8761
+ asrs_BackStepper$BackstepStack_push($this.$backSteps, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value);
8762
+ return $value;
8793
8763
  };
8794
- var asrrh_Register_getName = ($this) => {
8795
- return $this.$name1;
8764
+ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8765
+ if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8766
+ asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8796
8767
  };
8797
- var asrrh_Register_getValue = ($this) => {
8768
+ function asrs_BackStepper$BackstepStack() {
8769
+ let a = this;
8770
+ jl_Object.call(a);
8771
+ a.$capacity = 0;
8772
+ a.$size1 = 0;
8773
+ a.$top = 0;
8774
+ a.$stack = null;
8775
+ a.$this$015 = null;
8776
+ }
8777
+ var asrs_BackStepper$BackstepStack_empty = ($this) => {
8798
8778
  jl_Object_monitorEnterSync($this);
8799
8779
  try {
8800
- asrrh_Register_notifyAnyObservers($this, 0);
8801
- return $this.$value2;
8780
+ return $this.$size1 ? 0 : 1;
8802
8781
  } finally {
8803
8782
  jl_Object_monitorExitSync($this);
8804
8783
  }
8805
8784
  };
8806
- var asrrh_Register_getValueNoNotify = ($this) => {
8785
+ var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2) => {
8786
+ let var$5, var$6, var$7, $$je;
8807
8787
  jl_Object_monitorEnterSync($this);
8808
8788
  try {
8809
- return $this.$value2;
8789
+ var$5 = $this.$size1;
8790
+ if (!var$5) {
8791
+ $this.$top = 0;
8792
+ $this.$size1 = var$5 + 1 | 0;
8793
+ } else {
8794
+ var$6 = $this.$capacity;
8795
+ if (var$5 >= var$6)
8796
+ $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8797
+ else {
8798
+ $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8799
+ $this.$size1 = var$5 + 1 | 0;
8800
+ }
8801
+ }
8802
+ var$7 = $this.$stack.data[$this.$top];
8803
+ var$7.$action = $act;
8804
+ var$7.$pc1 = $programCounter;
8805
+ a: {
8806
+ try {
8807
+ asr_Globals_$callClinit();
8808
+ var$7.$ps = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
8809
+ break a;
8810
+ } catch ($$e) {
8811
+ $$je = $rt_wrapException($$e);
8812
+ if ($$je instanceof jl_Exception) {
8813
+ } else {
8814
+ throw $$e;
8815
+ }
8816
+ }
8817
+ var$7.$ps = null;
8818
+ var$7.$pc1 = -1;
8819
+ }
8820
+ var$7.$param1 = $parm1;
8821
+ var$7.$param2 = $parm2;
8810
8822
  } finally {
8811
8823
  jl_Object_monitorExitSync($this);
8812
8824
  }
8813
8825
  };
8814
- var asrrh_Register_getNumber = ($this) => {
8815
- return $this.$number;
8816
- };
8817
- var asrrh_Register_setValue = ($this, $val) => {
8818
- let $old;
8826
+ var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1) => {
8819
8827
  jl_Object_monitorEnterSync($this);
8820
8828
  try {
8821
- $old = $this.$value2;
8822
- $this.$value2 = $val;
8823
- asrrh_Register_notifyAnyObservers($this, 1);
8824
- return $old;
8829
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, Long_ZERO);
8825
8830
  } finally {
8826
8831
  jl_Object_monitorExitSync($this);
8827
8832
  }
8828
8833
  };
8829
- var asrrh_Register_setValueBackdoor = ($this, $val) => {
8830
- let $old;
8834
+ var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
8831
8835
  jl_Object_monitorEnterSync($this);
8832
8836
  try {
8833
- $old = $this.$value2;
8834
- $this.$value2 = $val;
8835
- return $old;
8837
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, 0, Long_ZERO);
8836
8838
  } finally {
8837
8839
  jl_Object_monitorExitSync($this);
8838
8840
  }
8839
8841
  };
8840
- var asrrh_Register_resetValue = ($this) => {
8842
+ var asrs_BackStepper$BackstepStack_pop = ($this) => {
8843
+ let var$1, var$2, $bs, var$4, var$5;
8841
8844
  jl_Object_monitorEnterSync($this);
8842
8845
  try {
8843
- $this.$value2 = $this.$resetValue0;
8846
+ var$1 = $this.$stack.data;
8847
+ var$2 = $this.$top;
8848
+ $bs = var$1[var$2];
8849
+ var$4 = $this.$size1;
8850
+ if (var$4 == 1)
8851
+ $this.$top = -1;
8852
+ else {
8853
+ var$5 = $this.$capacity;
8854
+ $this.$top = ((var$2 + var$5 | 0) - 1 | 0) % var$5 | 0;
8855
+ }
8856
+ $this.$size1 = var$4 - 1 | 0;
8857
+ return $bs;
8844
8858
  } finally {
8845
8859
  jl_Object_monitorExitSync($this);
8846
8860
  }
8847
8861
  };
8848
- var asrrh_Register_changeResetValue = ($this, $reset) => {
8862
+ var asrs_BackStepper$BackstepStack_peek = ($this) => {
8849
8863
  jl_Object_monitorEnterSync($this);
8850
8864
  try {
8851
- $this.$resetValue0 = $reset;
8865
+ return $this.$stack.data[$this.$top];
8852
8866
  } finally {
8853
8867
  jl_Object_monitorExitSync($this);
8854
8868
  }
8855
8869
  };
8856
- var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8857
- let var$2, var$3, var$4;
8858
- var$2 = $this;
8859
- if (ju_Observable_countObservers(var$2) > 0) {
8860
- ju_Observable_setChanged(var$2);
8861
- var$3 = new asrrh_RegisterAccessNotice();
8862
- var$4 = $this.$name1;
8863
- asrrh_AccessNotice__init_(var$3, $type);
8864
- var$3.$registerName = var$4;
8865
- ju_Observable_notifyObservers(var$2, var$3);
8866
- }
8867
- };
8868
8870
  function asr_JsCompilationResult$_init_$lambda$_0_0() {
8869
8871
  jl_Object.call(this);
8870
8872
  this.$_06 = null;
@@ -13928,6 +13930,22 @@ var jusi_StreamOverSpliterator_next = ($this, $consumer) => {
13928
13930
  var jusi_StreamOverSpliterator_estimateSize = ($this) => {
13929
13931
  return Long_lo(Long_fromInt($this.$spliterator0.$collection.$size()));
13930
13932
  };
13933
+ var jus_IntStream = $rt_classWithoutFields(0);
13934
+ var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13935
+ function jusi_MappingToIntStreamImpl() {
13936
+ let a = this;
13937
+ jusi_SimpleIntStreamImpl.call(a);
13938
+ a.$source1 = null;
13939
+ a.$mapper0 = null;
13940
+ }
13941
+ var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13942
+ let var$2, var$3;
13943
+ var$2 = $this.$source1;
13944
+ var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13945
+ var$3.$_09 = $this;
13946
+ var$3.$_13 = $consumer;
13947
+ return jusi_ArrayStreamImpl_next(var$2, var$3);
13948
+ };
13931
13949
  function jusi_WrappingStreamImpl() {
13932
13950
  jusi_SimpleStreamImpl.call(this);
13933
13951
  this.$sourceStream = null;
@@ -13949,22 +13967,6 @@ var jusi_MappingStreamImpl_wrap = ($this, $consumer) => {
13949
13967
  var$2.$_10 = $consumer;
13950
13968
  return var$2;
13951
13969
  };
13952
- var jus_IntStream = $rt_classWithoutFields(0);
13953
- var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13954
- function jusi_MappingToIntStreamImpl() {
13955
- let a = this;
13956
- jusi_SimpleIntStreamImpl.call(a);
13957
- a.$source1 = null;
13958
- a.$mapper0 = null;
13959
- }
13960
- var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13961
- let var$2, var$3;
13962
- var$2 = $this.$source1;
13963
- var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13964
- var$3.$_09 = $this;
13965
- var$3.$_13 = $consumer;
13966
- return jusi_ArrayStreamImpl_next(var$2, var$3);
13967
- };
13968
13970
  var jm_Conversion = $rt_classWithoutFields();
13969
13971
  var jm_Conversion_digitFitInInt = null;
13970
13972
  var jm_Conversion_bigRadices = null;
@@ -14411,52 +14413,6 @@ var ju_AbstractList$1_next = ($this) => {
14411
14413
  $this.$index4 = var$3 + 1 | 0;
14412
14414
  return var$2.$get0(var$3);
14413
14415
  };
14414
- var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14415
- var asrs_Simulator$Reason_BREAKPOINT = null;
14416
- var asrs_Simulator$Reason_EXCEPTION = null;
14417
- var asrs_Simulator$Reason_MAX_STEPS = null;
14418
- var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
14419
- var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
14420
- var asrs_Simulator$Reason_PAUSE = null;
14421
- var asrs_Simulator$Reason_STOP = null;
14422
- var asrs_Simulator$Reason_$VALUES = null;
14423
- var asrs_Simulator$Reason_values = () => {
14424
- return asrs_Simulator$Reason_$VALUES.$clone0();
14425
- };
14426
- var asrs_Simulator$Reason__clinit_ = () => {
14427
- let var$1, var$2, var$3;
14428
- var$1 = new asrs_Simulator$Reason();
14429
- jl_Enum__init_(var$1, $rt_s(1091), 0);
14430
- asrs_Simulator$Reason_BREAKPOINT = var$1;
14431
- var$1 = new asrs_Simulator$Reason();
14432
- jl_Enum__init_(var$1, $rt_s(1092), 1);
14433
- asrs_Simulator$Reason_EXCEPTION = var$1;
14434
- var$1 = new asrs_Simulator$Reason();
14435
- jl_Enum__init_(var$1, $rt_s(1093), 2);
14436
- asrs_Simulator$Reason_MAX_STEPS = var$1;
14437
- var$1 = new asrs_Simulator$Reason();
14438
- jl_Enum__init_(var$1, $rt_s(1094), 3);
14439
- asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14440
- var$1 = new asrs_Simulator$Reason();
14441
- jl_Enum__init_(var$1, $rt_s(1095), 4);
14442
- asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14443
- var$1 = new asrs_Simulator$Reason();
14444
- jl_Enum__init_(var$1, $rt_s(1096), 5);
14445
- asrs_Simulator$Reason_PAUSE = var$1;
14446
- var$1 = new asrs_Simulator$Reason();
14447
- jl_Enum__init_(var$1, $rt_s(1097), 6);
14448
- asrs_Simulator$Reason_STOP = var$1;
14449
- var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14450
- var$3 = var$2.data;
14451
- var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
14452
- var$3[1] = asrs_Simulator$Reason_EXCEPTION;
14453
- var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
14454
- var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
14455
- var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
14456
- var$3[5] = asrs_Simulator$Reason_PAUSE;
14457
- var$3[6] = var$1;
14458
- asrs_Simulator$Reason_$VALUES = var$2;
14459
- };
14460
14416
  var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
14461
14417
  var asrrh_FloatingPointRegisterFile_instance = null;
14462
14418
  var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
@@ -14501,38 +14457,38 @@ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
14501
14457
  var$1 = new asrrh_RegisterBlock();
14502
14458
  var$2 = $rt_createArray(asrrh_Register, 32);
14503
14459
  var$3 = var$2.data;
14504
- var$3[0] = asrrh_Register__init_($rt_s(1098), 0, Long_ZERO);
14505
- var$3[1] = asrrh_Register__init_($rt_s(1099), 1, Long_ZERO);
14506
- var$3[2] = asrrh_Register__init_($rt_s(1100), 2, Long_ZERO);
14507
- var$3[3] = asrrh_Register__init_($rt_s(1101), 3, Long_ZERO);
14508
- var$3[4] = asrrh_Register__init_($rt_s(1102), 4, Long_ZERO);
14509
- var$3[5] = asrrh_Register__init_($rt_s(1103), 5, Long_ZERO);
14510
- var$3[6] = asrrh_Register__init_($rt_s(1104), 6, Long_ZERO);
14511
- var$3[7] = asrrh_Register__init_($rt_s(1105), 7, Long_ZERO);
14512
- var$3[8] = asrrh_Register__init_($rt_s(1106), 8, Long_ZERO);
14513
- var$3[9] = asrrh_Register__init_($rt_s(1107), 9, Long_ZERO);
14460
+ var$3[0] = asrrh_Register__init_($rt_s(1091), 0, Long_ZERO);
14461
+ var$3[1] = asrrh_Register__init_($rt_s(1092), 1, Long_ZERO);
14462
+ var$3[2] = asrrh_Register__init_($rt_s(1093), 2, Long_ZERO);
14463
+ var$3[3] = asrrh_Register__init_($rt_s(1094), 3, Long_ZERO);
14464
+ var$3[4] = asrrh_Register__init_($rt_s(1095), 4, Long_ZERO);
14465
+ var$3[5] = asrrh_Register__init_($rt_s(1096), 5, Long_ZERO);
14466
+ var$3[6] = asrrh_Register__init_($rt_s(1097), 6, Long_ZERO);
14467
+ var$3[7] = asrrh_Register__init_($rt_s(1098), 7, Long_ZERO);
14468
+ var$3[8] = asrrh_Register__init_($rt_s(1099), 8, Long_ZERO);
14469
+ var$3[9] = asrrh_Register__init_($rt_s(1100), 9, Long_ZERO);
14514
14470
  var$3[10] = asrrh_Register__init_($rt_s(1042), 10, Long_ZERO);
14515
14471
  var$3[11] = asrrh_Register__init_($rt_s(1036), 11, Long_ZERO);
14516
- var$3[12] = asrrh_Register__init_($rt_s(1108), 12, Long_ZERO);
14517
- var$3[13] = asrrh_Register__init_($rt_s(1109), 13, Long_ZERO);
14518
- var$3[14] = asrrh_Register__init_($rt_s(1110), 14, Long_ZERO);
14519
- var$3[15] = asrrh_Register__init_($rt_s(1111), 15, Long_ZERO);
14520
- var$3[16] = asrrh_Register__init_($rt_s(1112), 16, Long_ZERO);
14521
- var$3[17] = asrrh_Register__init_($rt_s(1113), 17, Long_ZERO);
14522
- var$3[18] = asrrh_Register__init_($rt_s(1114), 18, Long_ZERO);
14523
- var$3[19] = asrrh_Register__init_($rt_s(1115), 19, Long_ZERO);
14524
- var$3[20] = asrrh_Register__init_($rt_s(1116), 20, Long_ZERO);
14525
- var$3[21] = asrrh_Register__init_($rt_s(1117), 21, Long_ZERO);
14526
- var$3[22] = asrrh_Register__init_($rt_s(1118), 22, Long_ZERO);
14527
- var$3[23] = asrrh_Register__init_($rt_s(1119), 23, Long_ZERO);
14528
- var$3[24] = asrrh_Register__init_($rt_s(1120), 24, Long_ZERO);
14529
- var$3[25] = asrrh_Register__init_($rt_s(1121), 25, Long_ZERO);
14530
- var$3[26] = asrrh_Register__init_($rt_s(1122), 26, Long_ZERO);
14531
- var$3[27] = asrrh_Register__init_($rt_s(1123), 27, Long_ZERO);
14532
- var$3[28] = asrrh_Register__init_($rt_s(1124), 28, Long_ZERO);
14533
- var$3[29] = asrrh_Register__init_($rt_s(1125), 29, Long_ZERO);
14534
- var$3[30] = asrrh_Register__init_($rt_s(1126), 30, Long_ZERO);
14535
- var$3[31] = asrrh_Register__init_($rt_s(1127), 31, Long_ZERO);
14472
+ var$3[12] = asrrh_Register__init_($rt_s(1101), 12, Long_ZERO);
14473
+ var$3[13] = asrrh_Register__init_($rt_s(1102), 13, Long_ZERO);
14474
+ var$3[14] = asrrh_Register__init_($rt_s(1103), 14, Long_ZERO);
14475
+ var$3[15] = asrrh_Register__init_($rt_s(1104), 15, Long_ZERO);
14476
+ var$3[16] = asrrh_Register__init_($rt_s(1105), 16, Long_ZERO);
14477
+ var$3[17] = asrrh_Register__init_($rt_s(1106), 17, Long_ZERO);
14478
+ var$3[18] = asrrh_Register__init_($rt_s(1107), 18, Long_ZERO);
14479
+ var$3[19] = asrrh_Register__init_($rt_s(1108), 19, Long_ZERO);
14480
+ var$3[20] = asrrh_Register__init_($rt_s(1109), 20, Long_ZERO);
14481
+ var$3[21] = asrrh_Register__init_($rt_s(1110), 21, Long_ZERO);
14482
+ var$3[22] = asrrh_Register__init_($rt_s(1111), 22, Long_ZERO);
14483
+ var$3[23] = asrrh_Register__init_($rt_s(1112), 23, Long_ZERO);
14484
+ var$3[24] = asrrh_Register__init_($rt_s(1113), 24, Long_ZERO);
14485
+ var$3[25] = asrrh_Register__init_($rt_s(1114), 25, Long_ZERO);
14486
+ var$3[26] = asrrh_Register__init_($rt_s(1115), 26, Long_ZERO);
14487
+ var$3[27] = asrrh_Register__init_($rt_s(1116), 27, Long_ZERO);
14488
+ var$3[28] = asrrh_Register__init_($rt_s(1117), 28, Long_ZERO);
14489
+ var$3[29] = asrrh_Register__init_($rt_s(1118), 29, Long_ZERO);
14490
+ var$3[30] = asrrh_Register__init_($rt_s(1119), 30, Long_ZERO);
14491
+ var$3[31] = asrrh_Register__init_($rt_s(1120), 31, Long_ZERO);
14536
14492
  asrrh_RegisterBlock__init_(var$1, 102, var$2);
14537
14493
  asrrh_FloatingPointRegisterFile_instance = var$1;
14538
14494
  };
@@ -14600,25 +14556,25 @@ var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
14600
14556
  var$2[0] = asrrh_MaskedRegister__init_($rt_s(679), 0, Long_ZERO, Long_fromInt(-18));
14601
14557
  var$2[1] = null;
14602
14558
  var$2[2] = null;
14603
- var$2[3] = asrrh_MaskedRegister__init_($rt_s(1128), 3, Long_ZERO, Long_fromInt(-256));
14604
- var$2[4] = asrrh_Register__init_($rt_s(1129), 4, Long_ZERO);
14605
- var$2[5] = asrrh_Register__init_($rt_s(1130), 5, Long_ZERO);
14606
- var$2[6] = asrrh_Register__init_($rt_s(1131), 64, Long_ZERO);
14559
+ var$2[3] = asrrh_MaskedRegister__init_($rt_s(1121), 3, Long_ZERO, Long_fromInt(-256));
14560
+ var$2[4] = asrrh_Register__init_($rt_s(1122), 4, Long_ZERO);
14561
+ var$2[5] = asrrh_Register__init_($rt_s(1123), 5, Long_ZERO);
14562
+ var$2[6] = asrrh_Register__init_($rt_s(1124), 64, Long_ZERO);
14607
14563
  var$2[7] = asrrh_Register__init_($rt_s(680), 65, Long_ZERO);
14608
- var$2[8] = asrrh_Register__init_($rt_s(1132), 66, Long_ZERO);
14609
- var$2[9] = asrrh_Register__init_($rt_s(1133), 67, Long_ZERO);
14610
- var$2[10] = asrrh_Register__init_($rt_s(1134), 68, Long_ZERO);
14611
- var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1135), 3072, 0);
14612
- var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1136), 3073, 0);
14613
- var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1137), 3074, 0);
14564
+ var$2[8] = asrrh_Register__init_($rt_s(1125), 66, Long_ZERO);
14565
+ var$2[9] = asrrh_Register__init_($rt_s(1126), 67, Long_ZERO);
14566
+ var$2[10] = asrrh_Register__init_($rt_s(1127), 68, Long_ZERO);
14567
+ var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1128), 3072, 0);
14568
+ var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1129), 3073, 0);
14569
+ var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1130), 3074, 0);
14614
14570
  var$2[14] = null;
14615
14571
  var$2[15] = null;
14616
14572
  var$2[16] = null;
14617
14573
  var$2[1] = asrrh_LinkedRegister__init_($rt_s(446), 1, var$2[3], Long_fromInt(31));
14618
14574
  var$2[2] = asrrh_LinkedRegister__init_($rt_s(447), 2, var$2[3], Long_fromInt(224));
14619
- var$2[14] = asrrh_LinkedRegister__init_($rt_s(1138), 3200, var$2[11], Long_create(0, 4294967295));
14620
- var$2[15] = asrrh_LinkedRegister__init_($rt_s(1139), 3201, var$2[12], Long_create(0, 4294967295));
14621
- var$2[16] = asrrh_LinkedRegister__init_($rt_s(1140), 3202, var$2[13], Long_create(0, 4294967295));
14575
+ var$2[14] = asrrh_LinkedRegister__init_($rt_s(1131), 3200, var$2[11], Long_create(0, 4294967295));
14576
+ var$2[15] = asrrh_LinkedRegister__init_($rt_s(1132), 3201, var$2[12], Long_create(0, 4294967295));
14577
+ var$2[16] = asrrh_LinkedRegister__init_($rt_s(1133), 3202, var$2[13], Long_create(0, 4294967295));
14622
14578
  asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
14623
14579
  };
14624
14580
  var asrrh_InterruptController = $rt_classWithoutFields();
@@ -14724,7 +14680,7 @@ var asrrh_InterruptController_claimExternal = () => {
14724
14680
  a: {
14725
14681
  try {
14726
14682
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14727
- $rt_throw(jl_AssertionError__init_($rt_s(1141)));
14683
+ $rt_throw(jl_AssertionError__init_($rt_s(1134)));
14728
14684
  asrrh_InterruptController_externalPending = 0;
14729
14685
  var$2 = asrrh_InterruptController_externalValue;
14730
14686
  jl_Object_monitorExitSync(var$1);
@@ -14745,7 +14701,7 @@ var asrrh_InterruptController_claimTimer = () => {
14745
14701
  a: {
14746
14702
  try {
14747
14703
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14748
- $rt_throw(jl_AssertionError__init_($rt_s(1142)));
14704
+ $rt_throw(jl_AssertionError__init_($rt_s(1135)));
14749
14705
  asrrh_InterruptController_timerPending = 0;
14750
14706
  var$2 = asrrh_InterruptController_timerValue;
14751
14707
  jl_Object_monitorExitSync(var$1);
@@ -14767,9 +14723,9 @@ var asrrh_InterruptController_claimTrap = () => {
14767
14723
  try {
14768
14724
  var$2 = asrrh_InterruptController_$assertionsDisabled;
14769
14725
  if (!var$2 && !asrrh_InterruptController_trapPending)
14770
- $rt_throw(jl_AssertionError__init_($rt_s(1143)));
14726
+ $rt_throw(jl_AssertionError__init_($rt_s(1136)));
14771
14727
  if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14772
- $rt_throw(jl_AssertionError__init_($rt_s(1144)));
14728
+ $rt_throw(jl_AssertionError__init_($rt_s(1137)));
14773
14729
  asrrh_InterruptController_trapPending = 0;
14774
14730
  var$3 = asrrh_InterruptController_trapSE;
14775
14731
  jl_Object_monitorExitSync(var$1);
@@ -14827,6 +14783,52 @@ var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14827
14783
  }
14828
14784
  return $rt_createArray(var$1, var$2);
14829
14785
  };
14786
+ var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14787
+ var asrs_Simulator$Reason_BREAKPOINT = null;
14788
+ var asrs_Simulator$Reason_EXCEPTION = null;
14789
+ var asrs_Simulator$Reason_MAX_STEPS = null;
14790
+ var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
14791
+ var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
14792
+ var asrs_Simulator$Reason_PAUSE = null;
14793
+ var asrs_Simulator$Reason_STOP = null;
14794
+ var asrs_Simulator$Reason_$VALUES = null;
14795
+ var asrs_Simulator$Reason_values = () => {
14796
+ return asrs_Simulator$Reason_$VALUES.$clone0();
14797
+ };
14798
+ var asrs_Simulator$Reason__clinit_ = () => {
14799
+ let var$1, var$2, var$3;
14800
+ var$1 = new asrs_Simulator$Reason();
14801
+ jl_Enum__init_(var$1, $rt_s(1138), 0);
14802
+ asrs_Simulator$Reason_BREAKPOINT = var$1;
14803
+ var$1 = new asrs_Simulator$Reason();
14804
+ jl_Enum__init_(var$1, $rt_s(1139), 1);
14805
+ asrs_Simulator$Reason_EXCEPTION = var$1;
14806
+ var$1 = new asrs_Simulator$Reason();
14807
+ jl_Enum__init_(var$1, $rt_s(1140), 2);
14808
+ asrs_Simulator$Reason_MAX_STEPS = var$1;
14809
+ var$1 = new asrs_Simulator$Reason();
14810
+ jl_Enum__init_(var$1, $rt_s(1141), 3);
14811
+ asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14812
+ var$1 = new asrs_Simulator$Reason();
14813
+ jl_Enum__init_(var$1, $rt_s(1142), 4);
14814
+ asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14815
+ var$1 = new asrs_Simulator$Reason();
14816
+ jl_Enum__init_(var$1, $rt_s(1143), 5);
14817
+ asrs_Simulator$Reason_PAUSE = var$1;
14818
+ var$1 = new asrs_Simulator$Reason();
14819
+ jl_Enum__init_(var$1, $rt_s(1144), 6);
14820
+ asrs_Simulator$Reason_STOP = var$1;
14821
+ var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14822
+ var$3 = var$2.data;
14823
+ var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
14824
+ var$3[1] = asrs_Simulator$Reason_EXCEPTION;
14825
+ var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
14826
+ var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
14827
+ var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
14828
+ var$3[5] = asrs_Simulator$Reason_PAUSE;
14829
+ var$3[6] = var$1;
14830
+ asrs_Simulator$Reason_$VALUES = var$2;
14831
+ };
14830
14832
  function jur_Pattern() {
14831
14833
  let a = this;
14832
14834
  jl_Object.call(a);
@@ -14839,16 +14841,16 @@ function jur_Pattern() {
14839
14841
  a.$consCount = 0;
14840
14842
  a.$start2 = null;
14841
14843
  }
14842
- var jur_Pattern_matcher = ($this, var$1) => {
14844
+ var jur_Pattern_matcher = ($this, $input) => {
14843
14845
  let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
14844
14846
  var$2 = new jur_Matcher();
14845
14847
  var$2.$leftBound0 = -1;
14846
14848
  var$2.$rightBound0 = -1;
14847
14849
  var$2.$pat = $this;
14848
14850
  var$2.$start6 = $this.$start2;
14849
- var$2.$string1 = var$1;
14851
+ var$2.$string1 = $input;
14850
14852
  var$2.$leftBound0 = 0;
14851
- var$3 = var$1.$nativeString.length;
14853
+ var$3 = $input.$nativeString.length;
14852
14854
  var$2.$rightBound0 = var$3;
14853
14855
  var$4 = new jur_MatchResultImpl();
14854
14856
  var$5 = var$2.$leftBound0;
@@ -14865,7 +14867,7 @@ var jur_Pattern_matcher = ($this, var$1) => {
14865
14867
  if (var$7 > 0)
14866
14868
  var$4.$compQuantCounters = $rt_createIntArray(var$7);
14867
14869
  ju_Arrays_fill(var$4.$groupBounds, -1);
14868
- jur_MatchResultImpl_reset(var$4, var$1, var$5, var$3);
14870
+ jur_MatchResultImpl_reset(var$4, $input, var$5, var$3);
14869
14871
  var$2.$matchResult = var$4;
14870
14872
  var$4.$anchoringBounds = 1;
14871
14873
  return var$2;
@@ -16560,6 +16562,7 @@ var jl_Thread__clinit_ = () => {
16560
16562
  };
16561
16563
  var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
16562
16564
  var jl_IllegalMonitorStateException = $rt_classWithoutFields(jl_RuntimeException);
16565
+ var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
16563
16566
  var otjc_JSObjects = $rt_classWithoutFields();
16564
16567
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
16565
16568
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -16595,7 +16598,6 @@ var otji_JSWrapper$Helper__clinit_ = () => {
16595
16598
  otji_JSWrapper$Helper_numberFinalizationRegistry = var$1;
16596
16599
  };
16597
16600
  var otjc_JSUndefined = $rt_classWithoutFields();
16598
- var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
16599
16601
  function ju_Arrays$ArrayAsList() {
16600
16602
  ju_AbstractList.call(this);
16601
16603
  this.$array3 = null;
@@ -24638,10 +24640,10 @@ var asrs_Simulator$SimThread_handleTrap = ($this, $se, $pc) => {
24638
24640
  if (!$utvec && $se.$cause < 0)
24639
24641
  $rt_throw(jl_AssertionError__init_($rt_s(1514)));
24640
24642
  a: {
24641
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1132), Long_fromInt($se.$cause));
24643
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($se.$cause));
24642
24644
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24643
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1133), Long_fromInt($se.$value5));
24644
- $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1130)) & -4;
24645
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($se.$value5));
24646
+ $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123)) & -4;
24645
24647
  $exceptionHandler = null;
24646
24648
  if (!(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1))
24647
24649
  var$6 = $exceptionHandler;
@@ -24677,12 +24679,12 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
24677
24679
  if (!$mode && !($cause & -2147483648))
24678
24680
  $rt_throw(jl_AssertionError__init_($rt_s(1515)));
24679
24681
  $code = $cause & 2147483647;
24680
- if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1129)) & 1 << $code))
24682
+ if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122)) & 1 << $code))
24681
24683
  $rt_throw(jl_AssertionError__init_($rt_s(1516)));
24682
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1132), Long_fromInt($cause));
24684
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($cause));
24683
24685
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24684
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1133), Long_fromInt($value));
24685
- $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1130));
24686
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($value));
24687
+ $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123));
24686
24688
  $base = $utvec & -4;
24687
24689
  if (($utvec & 3) == 2)
24688
24690
  $base = $base + (4 * $code | 0) | 0;
@@ -24762,8 +24764,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24762
24764
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24763
24765
  return;
24764
24766
  }
24765
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
24766
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
24767
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24768
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24767
24769
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24768
24770
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24769
24771
  $se = asrrh_InterruptController_lock;
@@ -24954,8 +24956,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24954
24956
  jl_Object_monitorExit($se);
24955
24957
  $rt_throw($instruction);
24956
24958
  }
24957
- if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134))))
24958
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1134), $cycle);
24959
+ if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127))))
24960
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1127), $cycle);
24959
24961
  var$14 = $this.$maxSteps;
24960
24962
  if (var$14 > 0) {
24961
24963
  $steps = $steps + 1 | 0;
@@ -25076,12 +25078,12 @@ var asrs_Simulator$SimThread_run = ($this) => {
25076
25078
  $waiting = 1;
25077
25079
  }
25078
25080
  v: {
25079
- $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1135));
25080
- $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1137));
25081
+ $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1128));
25082
+ $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1130));
25081
25083
  $time = jl_System_currentTimeMillis();
25082
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1135), Long_add($cycle, Long_fromInt(1)));
25083
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1137), Long_add($instret, Long_fromInt(1)));
25084
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1136), $time);
25084
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1128), Long_add($cycle, Long_fromInt(1)));
25085
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1130), Long_add($instret, Long_fromInt(1)));
25086
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1129), $time);
25085
25087
  if (!$ebreak) {
25086
25088
  var$1 = $this.$breakPoints;
25087
25089
  if (var$1 === null)
@@ -25104,8 +25106,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
25104
25106
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
25105
25107
  return;
25106
25108
  }
25107
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
25108
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
25109
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
25110
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
25109
25111
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
25110
25112
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
25111
25113
  $se = asrrh_InterruptController_lock;
@@ -25141,8 +25143,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
25141
25143
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
25142
25144
  return;
25143
25145
  }
25144
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
25145
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
25146
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
25147
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
25146
25148
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
25147
25149
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
25148
25150
  $se = asrrh_InterruptController_lock;
@@ -25180,8 +25182,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
25180
25182
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
25181
25183
  return;
25182
25184
  }
25183
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
25184
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
25185
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
25186
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
25185
25187
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
25186
25188
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
25187
25189
  $se = asrrh_InterruptController_lock;
@@ -31858,121 +31860,121 @@ var asrjt_Floating = $rt_classWithoutFields();
31858
31860
  var asrjt_Floating_isFinite = ($this) => {
31859
31861
  return !$this.$isZero() && !$this.$isNormal() && !$this.$isSubnormal() ? 0 : 1;
31860
31862
  };
31861
- function asrjt_Float32() {
31863
+ function asrjt_Float64() {
31862
31864
  asrjt_Floating.call(this);
31863
- this.$bits0 = 0;
31865
+ this.$bits1 = Long_ZERO;
31864
31866
  }
31865
- var asrjt_Float32_Zero = null;
31866
- var asrjt_Float32_NegativeZero = null;
31867
- var asrjt_Float32_NaN = null;
31868
- var asrjt_Float32_Infinity = null;
31869
- var asrjt_Float32_NegativeInfinity = null;
31870
- var asrjt_Float32_$assertionsDisabled = 0;
31871
- var asrjt_Float32__init_2 = ($this, $bits) => {
31872
- $this.$bits0 = $bits;
31867
+ var asrjt_Float64_Zero = null;
31868
+ var asrjt_Float64_NegativeZero = null;
31869
+ var asrjt_Float64_NaN = null;
31870
+ var asrjt_Float64_Infinity = null;
31871
+ var asrjt_Float64_NegativeInfinity = null;
31872
+ var asrjt_Float64_$assertionsDisabled = 0;
31873
+ var asrjt_Float64__init_1 = ($this, $bits) => {
31874
+ $this.$bits1 = $bits;
31873
31875
  };
31874
- var asrjt_Float32__init_ = (var_0) => {
31875
- let var_1 = new asrjt_Float32();
31876
- asrjt_Float32__init_2(var_1, var_0);
31876
+ var asrjt_Float64__init_ = (var_0) => {
31877
+ let var_1 = new asrjt_Float64();
31878
+ asrjt_Float64__init_1(var_1, var_0);
31877
31879
  return var_1;
31878
31880
  };
31879
- var asrjt_Float32__init_1 = ($this, $sign, $exponent, $significand) => {
31880
- asrjt_Float32__init_2($this, (!$sign ? 0 : -2147483648) | (($exponent + 127 | 0) & 255) << 23 | $significand & 8388607);
31881
+ var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31882
+ 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))));
31881
31883
  };
31882
- var asrjt_Float32__init_0 = (var_0, var_1, var_2) => {
31883
- let var_3 = new asrjt_Float32();
31884
- asrjt_Float32__init_1(var_3, var_0, var_1, var_2);
31884
+ var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31885
+ let var_3 = new asrjt_Float64();
31886
+ asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31885
31887
  return var_3;
31886
31888
  };
31887
- var asrjt_Float32_exponent = ($this) => {
31888
- return (($this.$bits0 >>> 23 | 0) & 255) - 127 | 0;
31889
+ var asrjt_Float64_exponent = ($this) => {
31890
+ return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31889
31891
  };
31890
- var asrjt_Float32_negate = ($this) => {
31891
- return asrjt_Float32__init_($this.$bits0 ^ -2147483648);
31892
+ var asrjt_Float64_negate = ($this) => {
31893
+ return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31892
31894
  };
31893
- var asrjt_Float32_isSignMinus = ($this) => {
31894
- return ($this.$bits0 >>> 31 | 0) != 1 ? 0 : 1;
31895
+ var asrjt_Float64_isSignMinus = ($this) => {
31896
+ return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31895
31897
  };
31896
- var asrjt_Float32_isInfinite = ($this) => {
31897
- return asrjt_Float32_exponent($this) == 128 && !($this.$bits0 & 8388607) ? 1 : 0;
31898
+ var asrjt_Float64_isInfinite = ($this) => {
31899
+ return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31898
31900
  };
31899
- var asrjt_Float32_isNormal = ($this) => {
31900
- return asrjt_Float32_exponent($this) != -127 && asrjt_Float32_exponent($this) != 128 ? 1 : 0;
31901
+ var asrjt_Float64_isNormal = ($this) => {
31902
+ return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31901
31903
  };
31902
- var asrjt_Float32_isSubnormal = ($this) => {
31903
- return asrjt_Float32_exponent($this) == -127 && !asrjt_Float32_isZero($this) ? 1 : 0;
31904
+ var asrjt_Float64_isSubnormal = ($this) => {
31905
+ return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31904
31906
  };
31905
- var asrjt_Float32_isNaN = ($this) => {
31906
- return asrjt_Float32_exponent($this) == 128 && !asrjt_Float32_isInfinite($this) ? 1 : 0;
31907
+ var asrjt_Float64_isNaN = ($this) => {
31908
+ return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31907
31909
  };
31908
- var asrjt_Float32_isSignalling = ($this) => {
31909
- if (!asrjt_Float32_isNaN($this))
31910
+ var asrjt_Float64_isSignalling = ($this) => {
31911
+ if (!asrjt_Float64_isNaN($this))
31910
31912
  return 0;
31911
- return $this.$bits0 & 4194304 ? 0 : 1;
31913
+ return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31912
31914
  };
31913
- var asrjt_Float32_isZero = ($this) => {
31915
+ var asrjt_Float64_isZero = ($this) => {
31914
31916
  let var$1;
31915
- var$1 = $this.$bits0;
31916
- return var$1 && var$1 != -2147483648 ? 0 : 1;
31917
+ var$1 = $this.$bits1;
31918
+ return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31917
31919
  };
31918
- var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
31920
+ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31919
31921
  let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31920
31922
  if (asrji_ExactFloat_isZero($ef))
31921
- return !$ef.$sign ? asrjt_Float32_Zero : asrjt_Float32_NegativeZero;
31923
+ return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31922
31924
  $ef = asrji_ExactFloat_normalize($ef);
31923
31925
  $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31924
- if ($normalizedExponent > -126) {
31925
- if ($normalizedExponent > 128) {
31926
+ if ($normalizedExponent > -1022) {
31927
+ if ($normalizedExponent > 1024) {
31926
31928
  $mainBits = $env.$flags;
31927
31929
  $roundedBits = asrj_Flags_overflow;
31928
31930
  ju_GenericEnumSet_add($mainBits, $roundedBits);
31929
31931
  $mainBits = $env.$flags;
31930
31932
  $roundedBits = asrj_Flags_inexact;
31931
31933
  ju_GenericEnumSet_add($mainBits, $roundedBits);
31932
- asrjt_Float32$1_$callClinit();
31933
- switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31934
+ asrjt_Float64$1_$callClinit();
31935
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31934
31936
  case 1:
31935
31937
  break;
31936
31938
  case 2:
31937
31939
  case 3:
31938
31940
  $normalizedExponent = $ef.$sign;
31939
31941
  if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31940
- return asrjt_Float32__init_0($normalizedExponent, 127, -1);
31941
- return !$normalizedExponent ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
31942
+ return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31943
+ return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31942
31944
  case 4:
31943
31945
  case 5:
31944
- return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
31946
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31945
31947
  default:
31946
- if (!asrjt_Float32_$assertionsDisabled)
31948
+ if (!asrjt_Float64_$assertionsDisabled)
31947
31949
  $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31948
- return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
31950
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31949
31951
  }
31950
- return asrjt_Float32__init_0($ef.$sign, 127, -1);
31952
+ return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31951
31953
  }
31952
- if (jm_BigInteger_bitLength($ef.$significand) <= 24) {
31953
- if (!asrjt_Float32_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -127)
31954
+ if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31955
+ if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31954
31956
  $rt_throw(jl_AssertionError__init_($rt_s(1630)));
31955
- $a = new asrjt_Float32();
31957
+ $a = new asrjt_Float64();
31956
31958
  $normalizedExponent = $ef.$sign;
31957
31959
  $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31958
31960
  $ef = $ef.$significand;
31959
- asrjt_Float32__init_1($a, $normalizedExponent, $bitsToRound, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef, 24 - jm_BigInteger_bitLength($ef) | 0)) & 8388607);
31961
+ 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)));
31960
31962
  return $a;
31961
31963
  }
31962
31964
  $mainBits = $env.$flags;
31963
31965
  $roundedBits = asrj_Flags_inexact;
31964
31966
  ju_GenericEnumSet_add($mainBits, $roundedBits);
31965
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 24 | 0;
31967
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
31966
31968
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31967
31969
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31968
31970
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31969
- $towardsZero = asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 23 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)) & 8388607);
31970
- $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 24 ? asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 24 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($upBits, 1)) & 8388607) : asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 23 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact($upBits) & 8388607);
31971
+ $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)));
31972
+ $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)));
31971
31973
  } else {
31972
- if ($ef.$exponent0 > -150) {
31973
- if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 23)
31974
+ if ($ef.$exponent0 > -1075) {
31975
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
31974
31976
  $rt_throw(jl_AssertionError__init_($rt_s(1631)));
31975
- return asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef.$significand, 149 + $ef.$exponent0 | 0)));
31977
+ return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
31976
31978
  }
31977
31979
  $mainBits = $env.$flags;
31978
31980
  $roundedBits = asrj_Flags_inexact;
@@ -31980,21 +31982,21 @@ var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
31980
31982
  $mainBits = $env.$flags;
31981
31983
  $roundedBits = asrj_Flags_underflow;
31982
31984
  ju_GenericEnumSet_add($mainBits, $roundedBits);
31983
- $bitsToRound = -149 - $ef.$exponent0 | 0;
31985
+ $bitsToRound = -1074 - $ef.$exponent0 | 0;
31984
31986
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
31985
31987
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
31986
- $towardsZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31988
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
31987
31989
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
31988
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 23)
31989
- $awayZero = asrjt_Float32__init_0($ef.$sign, -126, jm_BigInteger_intValueExact($upBits) & 8388607);
31990
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
31991
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
31990
31992
  else {
31991
- if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 23)
31993
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
31992
31994
  $rt_throw(jl_AssertionError__init_1());
31993
- $awayZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact($upBits));
31995
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
31994
31996
  }
31995
31997
  }
31996
- asrjt_Float32$1_$callClinit();
31997
- switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31998
+ asrjt_Float64$1_$callClinit();
31999
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31998
32000
  case 1:
31999
32001
  break;
32000
32002
  case 2:
@@ -32010,69 +32012,69 @@ var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
32010
32012
  return $towardsZero;
32011
32013
  return $awayZero;
32012
32014
  }
32013
- if ($env.$mode !== asrj_RoundingMode_away && $awayZero.$bits0 & 1)
32015
+ if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
32014
32016
  return $towardsZero;
32015
32017
  return $awayZero;
32016
32018
  }
32017
32019
  return $towardsZero;
32018
32020
  };
32019
- var asrjt_Float32_toExactFloat = ($this) => {
32021
+ var asrjt_Float64_toExactFloat = ($this) => {
32020
32022
  let $sign, $exponent, $significand;
32021
- if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isInfinite($this))
32023
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
32022
32024
  $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32023
- if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isNaN($this))
32025
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
32024
32026
  $rt_throw(jl_AssertionError__init_($rt_s(1633)));
32025
- if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isZero($this))
32027
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
32026
32028
  $rt_throw(jl_AssertionError__init_($rt_s(1634)));
32027
- $sign = asrjt_Float32_isSignMinus($this);
32028
- if (asrjt_Float32_isZero($this)) {
32029
+ $sign = asrjt_Float64_isSignMinus($this);
32030
+ if (asrjt_Float64_isZero($this)) {
32029
32031
  $exponent = 0;
32030
32032
  $significand = jm_BigInteger_ZERO;
32031
- } else if (asrjt_Float32_isNormal($this)) {
32032
- $exponent = asrjt_Float32_exponent($this) - 23 | 0;
32033
- $significand = jm_BigInteger_valueOf(Long_fromInt(($this.$bits0 & 8388607) + 8388608 | 0));
32033
+ } else if (asrjt_Float64_isNormal($this)) {
32034
+ $exponent = asrjt_Float64_exponent($this) - 52 | 0;
32035
+ $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
32034
32036
  } else {
32035
- if (!asrjt_Float32_isSubnormal($this)) {
32036
- if (asrjt_Float32_$assertionsDisabled)
32037
+ if (!asrjt_Float64_isSubnormal($this)) {
32038
+ if (asrjt_Float64_$assertionsDisabled)
32037
32039
  return null;
32038
32040
  $rt_throw(jl_AssertionError__init_($rt_s(1635)));
32039
32041
  }
32040
- $exponent = asrjt_Float32_exponent($this) - 22 | 0;
32041
- $significand = jm_BigInteger_valueOf(Long_fromInt($this.$bits0 & 8388607));
32042
+ $exponent = asrjt_Float64_exponent($this) - 51 | 0;
32043
+ $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
32042
32044
  }
32043
32045
  return asrji_ExactFloat__init_($sign, $exponent, $significand);
32044
32046
  };
32045
- var asrjt_Float32_maxPrecision = ($this) => {
32046
- return 30;
32047
+ var asrjt_Float64_maxPrecision = ($this) => {
32048
+ return 60;
32047
32049
  };
32048
- var asrjt_Float32_negate0 = ($this) => {
32049
- return asrjt_Float32_negate($this);
32050
+ var asrjt_Float64_negate0 = ($this) => {
32051
+ return asrjt_Float64_negate($this);
32050
32052
  };
32051
- var asrjt_Float32_fromExactFloat = ($this, var$1, var$2) => {
32052
- return asrjt_Float32_fromExactFloat0($this, var$1, var$2);
32053
+ var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
32054
+ return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
32053
32055
  };
32054
- var asrjt_Float32_NegativeInfinity0 = ($this) => {
32055
- return asrjt_Float32_NegativeInfinity;
32056
+ var asrjt_Float64_NegativeInfinity0 = ($this) => {
32057
+ return asrjt_Float64_NegativeInfinity;
32056
32058
  };
32057
- var asrjt_Float32_Infinity0 = ($this) => {
32058
- return asrjt_Float32_Infinity;
32059
+ var asrjt_Float64_Infinity0 = ($this) => {
32060
+ return asrjt_Float64_Infinity;
32059
32061
  };
32060
- var asrjt_Float32_NegativeZero0 = ($this) => {
32061
- return asrjt_Float32_NegativeZero;
32062
+ var asrjt_Float64_NegativeZero0 = ($this) => {
32063
+ return asrjt_Float64_NegativeZero;
32062
32064
  };
32063
- var asrjt_Float32_Zero0 = ($this) => {
32064
- return asrjt_Float32_Zero;
32065
+ var asrjt_Float64_Zero0 = ($this) => {
32066
+ return asrjt_Float64_Zero;
32065
32067
  };
32066
- var asrjt_Float32_NaN0 = ($this) => {
32067
- return asrjt_Float32_NaN;
32068
+ var asrjt_Float64_NaN0 = ($this) => {
32069
+ return asrjt_Float64_NaN;
32068
32070
  };
32069
- var asrjt_Float32__clinit_ = () => {
32070
- asrjt_Float32_$assertionsDisabled = 0;
32071
- asrjt_Float32_Zero = asrjt_Float32__init_(0);
32072
- asrjt_Float32_NegativeZero = asrjt_Float32__init_(-2147483648);
32073
- asrjt_Float32_NaN = asrjt_Float32__init_(2143289344);
32074
- asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
32075
- asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
32071
+ var asrjt_Float64__clinit_ = () => {
32072
+ asrjt_Float64_$assertionsDisabled = 0;
32073
+ asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
32074
+ asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
32075
+ asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
32076
+ asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32077
+ asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32076
32078
  };
32077
32079
  var asrjo_Conversions = $rt_classWithoutFields();
32078
32080
  var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
@@ -32182,121 +32184,121 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
32182
32184
  var$4.$significand = $i;
32183
32185
  return $helper.$fromExactFloat(var$4, $env);
32184
32186
  };
32185
- function asrjt_Float64() {
32187
+ function asrjt_Float32() {
32186
32188
  asrjt_Floating.call(this);
32187
- this.$bits1 = Long_ZERO;
32189
+ this.$bits0 = 0;
32188
32190
  }
32189
- var asrjt_Float64_Zero = null;
32190
- var asrjt_Float64_NegativeZero = null;
32191
- var asrjt_Float64_NaN = null;
32192
- var asrjt_Float64_Infinity = null;
32193
- var asrjt_Float64_NegativeInfinity = null;
32194
- var asrjt_Float64_$assertionsDisabled = 0;
32195
- var asrjt_Float64__init_1 = ($this, $bits) => {
32196
- $this.$bits1 = $bits;
32191
+ var asrjt_Float32_Zero = null;
32192
+ var asrjt_Float32_NegativeZero = null;
32193
+ var asrjt_Float32_NaN = null;
32194
+ var asrjt_Float32_Infinity = null;
32195
+ var asrjt_Float32_NegativeInfinity = null;
32196
+ var asrjt_Float32_$assertionsDisabled = 0;
32197
+ var asrjt_Float32__init_2 = ($this, $bits) => {
32198
+ $this.$bits0 = $bits;
32197
32199
  };
32198
- var asrjt_Float64__init_ = (var_0) => {
32199
- let var_1 = new asrjt_Float64();
32200
- asrjt_Float64__init_1(var_1, var_0);
32200
+ var asrjt_Float32__init_ = (var_0) => {
32201
+ let var_1 = new asrjt_Float32();
32202
+ asrjt_Float32__init_2(var_1, var_0);
32201
32203
  return var_1;
32202
32204
  };
32203
- var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
32204
- 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))));
32205
+ var asrjt_Float32__init_1 = ($this, $sign, $exponent, $significand) => {
32206
+ asrjt_Float32__init_2($this, (!$sign ? 0 : -2147483648) | (($exponent + 127 | 0) & 255) << 23 | $significand & 8388607);
32205
32207
  };
32206
- var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
32207
- let var_3 = new asrjt_Float64();
32208
- asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
32208
+ var asrjt_Float32__init_0 = (var_0, var_1, var_2) => {
32209
+ let var_3 = new asrjt_Float32();
32210
+ asrjt_Float32__init_1(var_3, var_0, var_1, var_2);
32209
32211
  return var_3;
32210
32212
  };
32211
- var asrjt_Float64_exponent = ($this) => {
32212
- return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
32213
+ var asrjt_Float32_exponent = ($this) => {
32214
+ return (($this.$bits0 >>> 23 | 0) & 255) - 127 | 0;
32213
32215
  };
32214
- var asrjt_Float64_negate = ($this) => {
32215
- return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
32216
+ var asrjt_Float32_negate = ($this) => {
32217
+ return asrjt_Float32__init_($this.$bits0 ^ -2147483648);
32216
32218
  };
32217
- var asrjt_Float64_isSignMinus = ($this) => {
32218
- return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
32219
+ var asrjt_Float32_isSignMinus = ($this) => {
32220
+ return ($this.$bits0 >>> 31 | 0) != 1 ? 0 : 1;
32219
32221
  };
32220
- var asrjt_Float64_isInfinite = ($this) => {
32221
- return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
32222
+ var asrjt_Float32_isInfinite = ($this) => {
32223
+ return asrjt_Float32_exponent($this) == 128 && !($this.$bits0 & 8388607) ? 1 : 0;
32222
32224
  };
32223
- var asrjt_Float64_isNormal = ($this) => {
32224
- return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
32225
+ var asrjt_Float32_isNormal = ($this) => {
32226
+ return asrjt_Float32_exponent($this) != -127 && asrjt_Float32_exponent($this) != 128 ? 1 : 0;
32225
32227
  };
32226
- var asrjt_Float64_isSubnormal = ($this) => {
32227
- return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
32228
+ var asrjt_Float32_isSubnormal = ($this) => {
32229
+ return asrjt_Float32_exponent($this) == -127 && !asrjt_Float32_isZero($this) ? 1 : 0;
32228
32230
  };
32229
- var asrjt_Float64_isNaN = ($this) => {
32230
- return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
32231
+ var asrjt_Float32_isNaN = ($this) => {
32232
+ return asrjt_Float32_exponent($this) == 128 && !asrjt_Float32_isInfinite($this) ? 1 : 0;
32231
32233
  };
32232
- var asrjt_Float64_isSignalling = ($this) => {
32233
- if (!asrjt_Float64_isNaN($this))
32234
+ var asrjt_Float32_isSignalling = ($this) => {
32235
+ if (!asrjt_Float32_isNaN($this))
32234
32236
  return 0;
32235
- return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
32237
+ return $this.$bits0 & 4194304 ? 0 : 1;
32236
32238
  };
32237
- var asrjt_Float64_isZero = ($this) => {
32239
+ var asrjt_Float32_isZero = ($this) => {
32238
32240
  let var$1;
32239
- var$1 = $this.$bits1;
32240
- return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
32241
+ var$1 = $this.$bits0;
32242
+ return var$1 && var$1 != -2147483648 ? 0 : 1;
32241
32243
  };
32242
- var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
32244
+ var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
32243
32245
  let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
32244
32246
  if (asrji_ExactFloat_isZero($ef))
32245
- return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
32247
+ return !$ef.$sign ? asrjt_Float32_Zero : asrjt_Float32_NegativeZero;
32246
32248
  $ef = asrji_ExactFloat_normalize($ef);
32247
32249
  $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
32248
- if ($normalizedExponent > -1022) {
32249
- if ($normalizedExponent > 1024) {
32250
+ if ($normalizedExponent > -126) {
32251
+ if ($normalizedExponent > 128) {
32250
32252
  $mainBits = $env.$flags;
32251
32253
  $roundedBits = asrj_Flags_overflow;
32252
32254
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32253
32255
  $mainBits = $env.$flags;
32254
32256
  $roundedBits = asrj_Flags_inexact;
32255
32257
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32256
- asrjt_Float64$1_$callClinit();
32257
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32258
+ asrjt_Float32$1_$callClinit();
32259
+ switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32258
32260
  case 1:
32259
32261
  break;
32260
32262
  case 2:
32261
32263
  case 3:
32262
32264
  $normalizedExponent = $ef.$sign;
32263
32265
  if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32264
- return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
32265
- return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32266
+ return asrjt_Float32__init_0($normalizedExponent, 127, -1);
32267
+ return !$normalizedExponent ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
32266
32268
  case 4:
32267
32269
  case 5:
32268
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32270
+ return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
32269
32271
  default:
32270
- if (!asrjt_Float64_$assertionsDisabled)
32272
+ if (!asrjt_Float32_$assertionsDisabled)
32271
32273
  $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32272
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32274
+ return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
32273
32275
  }
32274
- return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
32276
+ return asrjt_Float32__init_0($ef.$sign, 127, -1);
32275
32277
  }
32276
- if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
32277
- if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
32278
+ if (jm_BigInteger_bitLength($ef.$significand) <= 24) {
32279
+ if (!asrjt_Float32_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -127)
32278
32280
  $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32279
- $a = new asrjt_Float64();
32281
+ $a = new asrjt_Float32();
32280
32282
  $normalizedExponent = $ef.$sign;
32281
32283
  $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
32282
32284
  $ef = $ef.$significand;
32283
- 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)));
32285
+ asrjt_Float32__init_1($a, $normalizedExponent, $bitsToRound, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef, 24 - jm_BigInteger_bitLength($ef) | 0)) & 8388607);
32284
32286
  return $a;
32285
32287
  }
32286
32288
  $mainBits = $env.$flags;
32287
32289
  $roundedBits = asrj_Flags_inexact;
32288
32290
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32289
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
32291
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 24 | 0;
32290
32292
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32291
32293
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32292
32294
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32293
- $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)));
32294
- $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)));
32295
+ $towardsZero = asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 23 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)) & 8388607);
32296
+ $awayZero = !jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 24 ? asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 24 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($upBits, 1)) & 8388607) : asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 23 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact($upBits) & 8388607);
32295
32297
  } else {
32296
- if ($ef.$exponent0 > -1075) {
32297
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
32298
+ if ($ef.$exponent0 > -150) {
32299
+ if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 23)
32298
32300
  $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32299
- return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
32301
+ return asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef.$significand, 149 + $ef.$exponent0 | 0)));
32300
32302
  }
32301
32303
  $mainBits = $env.$flags;
32302
32304
  $roundedBits = asrj_Flags_inexact;
@@ -32304,21 +32306,21 @@ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
32304
32306
  $mainBits = $env.$flags;
32305
32307
  $roundedBits = asrj_Flags_underflow;
32306
32308
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32307
- $bitsToRound = -1074 - $ef.$exponent0 | 0;
32309
+ $bitsToRound = -149 - $ef.$exponent0 | 0;
32308
32310
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32309
32311
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32310
- $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32312
+ $towardsZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32311
32313
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32312
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
32313
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32314
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 23)
32315
+ $awayZero = asrjt_Float32__init_0($ef.$sign, -126, jm_BigInteger_intValueExact($upBits) & 8388607);
32314
32316
  else {
32315
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
32317
+ if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 23)
32316
32318
  $rt_throw(jl_AssertionError__init_1());
32317
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
32319
+ $awayZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact($upBits));
32318
32320
  }
32319
32321
  }
32320
- asrjt_Float64$1_$callClinit();
32321
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32322
+ asrjt_Float32$1_$callClinit();
32323
+ switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32322
32324
  case 1:
32323
32325
  break;
32324
32326
  case 2:
@@ -32334,171 +32336,69 @@ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
32334
32336
  return $towardsZero;
32335
32337
  return $awayZero;
32336
32338
  }
32337
- if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
32339
+ if ($env.$mode !== asrj_RoundingMode_away && $awayZero.$bits0 & 1)
32338
32340
  return $towardsZero;
32339
32341
  return $awayZero;
32340
32342
  }
32341
32343
  return $towardsZero;
32342
32344
  };
32343
- var asrjt_Float64_toExactFloat = ($this) => {
32345
+ var asrjt_Float32_toExactFloat = ($this) => {
32344
32346
  let $sign, $exponent, $significand;
32345
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
32347
+ if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isInfinite($this))
32346
32348
  $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32347
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
32349
+ if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isNaN($this))
32348
32350
  $rt_throw(jl_AssertionError__init_($rt_s(1633)));
32349
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
32351
+ if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isZero($this))
32350
32352
  $rt_throw(jl_AssertionError__init_($rt_s(1634)));
32351
- $sign = asrjt_Float64_isSignMinus($this);
32352
- if (asrjt_Float64_isZero($this)) {
32353
+ $sign = asrjt_Float32_isSignMinus($this);
32354
+ if (asrjt_Float32_isZero($this)) {
32353
32355
  $exponent = 0;
32354
32356
  $significand = jm_BigInteger_ZERO;
32355
- } else if (asrjt_Float64_isNormal($this)) {
32356
- $exponent = asrjt_Float64_exponent($this) - 52 | 0;
32357
- $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
32357
+ } else if (asrjt_Float32_isNormal($this)) {
32358
+ $exponent = asrjt_Float32_exponent($this) - 23 | 0;
32359
+ $significand = jm_BigInteger_valueOf(Long_fromInt(($this.$bits0 & 8388607) + 8388608 | 0));
32358
32360
  } else {
32359
- if (!asrjt_Float64_isSubnormal($this)) {
32360
- if (asrjt_Float64_$assertionsDisabled)
32361
+ if (!asrjt_Float32_isSubnormal($this)) {
32362
+ if (asrjt_Float32_$assertionsDisabled)
32361
32363
  return null;
32362
32364
  $rt_throw(jl_AssertionError__init_($rt_s(1635)));
32363
32365
  }
32364
- $exponent = asrjt_Float64_exponent($this) - 51 | 0;
32365
- $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
32366
+ $exponent = asrjt_Float32_exponent($this) - 22 | 0;
32367
+ $significand = jm_BigInteger_valueOf(Long_fromInt($this.$bits0 & 8388607));
32366
32368
  }
32367
32369
  return asrji_ExactFloat__init_($sign, $exponent, $significand);
32368
32370
  };
32369
- var asrjt_Float64_maxPrecision = ($this) => {
32370
- return 60;
32371
- };
32372
- var asrjt_Float64_negate0 = ($this) => {
32373
- return asrjt_Float64_negate($this);
32374
- };
32375
- var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
32376
- return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
32377
- };
32378
- var asrjt_Float64_NegativeInfinity0 = ($this) => {
32379
- return asrjt_Float64_NegativeInfinity;
32380
- };
32381
- var asrjt_Float64_Infinity0 = ($this) => {
32382
- return asrjt_Float64_Infinity;
32383
- };
32384
- var asrjt_Float64_NegativeZero0 = ($this) => {
32385
- return asrjt_Float64_NegativeZero;
32386
- };
32387
- var asrjt_Float64_Zero0 = ($this) => {
32388
- return asrjt_Float64_Zero;
32389
- };
32390
- var asrjt_Float64_NaN0 = ($this) => {
32391
- return asrjt_Float64_NaN;
32392
- };
32393
- var asrjt_Float64__clinit_ = () => {
32394
- asrjt_Float64_$assertionsDisabled = 0;
32395
- asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
32396
- asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
32397
- asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
32398
- asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32399
- asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32371
+ var asrjt_Float32_maxPrecision = ($this) => {
32372
+ return 30;
32400
32373
  };
32401
- var asrjo_Comparisons = $rt_classWithoutFields();
32402
- var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32403
- if ($a.$isZero()) {
32404
- if ($b.$isZero())
32405
- return 0;
32406
- return !$b.$isSignMinus() ? -1 : 1;
32407
- }
32408
- if ($b.$isZero())
32409
- return !$a.$isSignMinus() ? 1 : -1;
32410
- if (!$a.$isInfinite()) {
32411
- if (!$b.$isInfinite())
32412
- return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32413
- return !$b.$isSignMinus() ? -1 : 1;
32414
- }
32415
- if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32416
- return 0;
32417
- return !$a.$isSignMinus() ? -1 : 1;
32374
+ var asrjt_Float32_negate0 = ($this) => {
32375
+ return asrjt_Float32_negate($this);
32418
32376
  };
32419
- var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32420
- if ($a.$isSignMinus() != $b.$isSignMinus()) {
32421
- if ($a.$isSignMinus())
32422
- $b = $a;
32423
- return $b;
32424
- }
32425
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32426
- if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32427
- return $b;
32428
- return $a;
32429
- }
32430
- if ($a.$isInfinite() != $a.$isSignMinus())
32431
- return $b;
32432
- return $a;
32377
+ var asrjt_Float32_fromExactFloat = ($this, var$1, var$2) => {
32378
+ return asrjt_Float32_fromExactFloat0($this, var$1, var$2);
32433
32379
  };
32434
- var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32435
- let var$4;
32436
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32437
- var$4 = $env.$flags;
32438
- $env = asrj_Flags_invalid;
32439
- ju_GenericEnumSet_add(var$4, $env);
32440
- }
32441
- if ($a.$isNaN()) {
32442
- if ($b.$isNaN())
32443
- $b = $b.$NaN();
32444
- } else
32445
- $b = !$b.$isNaN() ? null : $a;
32446
- return $b;
32380
+ var asrjt_Float32_NegativeInfinity0 = ($this) => {
32381
+ return asrjt_Float32_NegativeInfinity;
32447
32382
  };
32448
- var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32449
- let $tmp_0;
32450
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32451
- if ($tmp_0 !== null)
32452
- return $tmp_0;
32453
- return asrjo_Comparisons_nonNaNmin($a, $b);
32383
+ var asrjt_Float32_Infinity0 = ($this) => {
32384
+ return asrjt_Float32_Infinity;
32454
32385
  };
32455
- var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32456
- let $tmp_0;
32457
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32458
- if ($tmp_0 !== null)
32459
- return $tmp_0;
32460
- if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32461
- $a = $b;
32462
- return $a;
32386
+ var asrjt_Float32_NegativeZero0 = ($this) => {
32387
+ return asrjt_Float32_NegativeZero;
32463
32388
  };
32464
- var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32465
- let var$4;
32466
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32467
- var$4 = $env.$flags;
32468
- $env = asrj_Flags_invalid;
32469
- ju_GenericEnumSet_add(var$4, $env);
32470
- }
32471
- if (!$a.$isNaN() && !$b.$isNaN())
32472
- return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32473
- return 0;
32389
+ var asrjt_Float32_Zero0 = ($this) => {
32390
+ return asrjt_Float32_Zero;
32474
32391
  };
32475
- var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32476
- let var$4, var$5;
32477
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32478
- var$4 = $env.$flags;
32479
- var$5 = asrj_Flags_invalid;
32480
- ju_GenericEnumSet_add(var$4, var$5);
32481
- }
32482
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32483
- var$5 = $env.$flags;
32484
- $env = asrj_Flags_invalid;
32485
- ju_GenericEnumSet_add(var$5, $env);
32486
- }
32487
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32392
+ var asrjt_Float32_NaN0 = ($this) => {
32393
+ return asrjt_Float32_NaN;
32488
32394
  };
32489
- var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32490
- let var$4, var$5;
32491
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32492
- var$4 = $env.$flags;
32493
- var$5 = asrj_Flags_invalid;
32494
- ju_GenericEnumSet_add(var$4, var$5);
32495
- }
32496
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32497
- var$5 = $env.$flags;
32498
- $env = asrj_Flags_invalid;
32499
- ju_GenericEnumSet_add(var$5, $env);
32500
- }
32501
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32395
+ var asrjt_Float32__clinit_ = () => {
32396
+ asrjt_Float32_$assertionsDisabled = 0;
32397
+ asrjt_Float32_Zero = asrjt_Float32__init_(0);
32398
+ asrjt_Float32_NegativeZero = asrjt_Float32__init_(-2147483648);
32399
+ asrjt_Float32_NaN = asrjt_Float32__init_(2143289344);
32400
+ asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
32401
+ asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
32502
32402
  };
32503
32403
  var asrjo_Arithmetic = $rt_classWithoutFields();
32504
32404
  var asrjo_Arithmetic_$assertionsDisabled = 0;
@@ -32735,6 +32635,108 @@ var asrjo_Arithmetic_division = ($a, $b, $env) => {
32735
32635
  var asrjo_Arithmetic__clinit_ = () => {
32736
32636
  asrjo_Arithmetic_$assertionsDisabled = 0;
32737
32637
  };
32638
+ var asrjo_Comparisons = $rt_classWithoutFields();
32639
+ var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32640
+ if ($a.$isZero()) {
32641
+ if ($b.$isZero())
32642
+ return 0;
32643
+ return !$b.$isSignMinus() ? -1 : 1;
32644
+ }
32645
+ if ($b.$isZero())
32646
+ return !$a.$isSignMinus() ? 1 : -1;
32647
+ if (!$a.$isInfinite()) {
32648
+ if (!$b.$isInfinite())
32649
+ return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32650
+ return !$b.$isSignMinus() ? -1 : 1;
32651
+ }
32652
+ if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32653
+ return 0;
32654
+ return !$a.$isSignMinus() ? -1 : 1;
32655
+ };
32656
+ var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32657
+ if ($a.$isSignMinus() != $b.$isSignMinus()) {
32658
+ if ($a.$isSignMinus())
32659
+ $b = $a;
32660
+ return $b;
32661
+ }
32662
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
32663
+ if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32664
+ return $b;
32665
+ return $a;
32666
+ }
32667
+ if ($a.$isInfinite() != $a.$isSignMinus())
32668
+ return $b;
32669
+ return $a;
32670
+ };
32671
+ var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32672
+ let var$4;
32673
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32674
+ var$4 = $env.$flags;
32675
+ $env = asrj_Flags_invalid;
32676
+ ju_GenericEnumSet_add(var$4, $env);
32677
+ }
32678
+ if ($a.$isNaN()) {
32679
+ if ($b.$isNaN())
32680
+ $b = $b.$NaN();
32681
+ } else
32682
+ $b = !$b.$isNaN() ? null : $a;
32683
+ return $b;
32684
+ };
32685
+ var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32686
+ let $tmp_0;
32687
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32688
+ if ($tmp_0 !== null)
32689
+ return $tmp_0;
32690
+ return asrjo_Comparisons_nonNaNmin($a, $b);
32691
+ };
32692
+ var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32693
+ let $tmp_0;
32694
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32695
+ if ($tmp_0 !== null)
32696
+ return $tmp_0;
32697
+ if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32698
+ $a = $b;
32699
+ return $a;
32700
+ };
32701
+ var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32702
+ let var$4;
32703
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32704
+ var$4 = $env.$flags;
32705
+ $env = asrj_Flags_invalid;
32706
+ ju_GenericEnumSet_add(var$4, $env);
32707
+ }
32708
+ if (!$a.$isNaN() && !$b.$isNaN())
32709
+ return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32710
+ return 0;
32711
+ };
32712
+ var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32713
+ let var$4, var$5;
32714
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32715
+ var$4 = $env.$flags;
32716
+ var$5 = asrj_Flags_invalid;
32717
+ ju_GenericEnumSet_add(var$4, var$5);
32718
+ }
32719
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32720
+ var$5 = $env.$flags;
32721
+ $env = asrj_Flags_invalid;
32722
+ ju_GenericEnumSet_add(var$5, $env);
32723
+ }
32724
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32725
+ };
32726
+ var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32727
+ let var$4, var$5;
32728
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32729
+ var$4 = $env.$flags;
32730
+ var$5 = asrj_Flags_invalid;
32731
+ ju_GenericEnumSet_add(var$4, var$5);
32732
+ }
32733
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32734
+ var$5 = $env.$flags;
32735
+ $env = asrj_Flags_invalid;
32736
+ ju_GenericEnumSet_add(var$5, $env);
32737
+ }
32738
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32739
+ };
32738
32740
  function jnci_BufferedEncoder$Controller() {
32739
32741
  let a = this;
32740
32742
  jl_Object.call(a);
@@ -32783,6 +32785,42 @@ var asrj_RoundingMode__clinit_ = () => {
32783
32785
  var$3[4] = var$1;
32784
32786
  asrj_RoundingMode_$VALUES = var$2;
32785
32787
  };
32788
+ var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32789
+ var asrj_Flags_inexact = null;
32790
+ var asrj_Flags_underflow = null;
32791
+ var asrj_Flags_overflow = null;
32792
+ var asrj_Flags_divByZero = null;
32793
+ var asrj_Flags_invalid = null;
32794
+ var asrj_Flags_$VALUES = null;
32795
+ var asrj_Flags_values = () => {
32796
+ return asrj_Flags_$VALUES.$clone0();
32797
+ };
32798
+ var asrj_Flags__clinit_ = () => {
32799
+ let var$1, var$2, var$3;
32800
+ var$1 = new asrj_Flags();
32801
+ jl_Enum__init_(var$1, $rt_s(1646), 0);
32802
+ asrj_Flags_inexact = var$1;
32803
+ var$1 = new asrj_Flags();
32804
+ jl_Enum__init_(var$1, $rt_s(1647), 1);
32805
+ asrj_Flags_underflow = var$1;
32806
+ var$1 = new asrj_Flags();
32807
+ jl_Enum__init_(var$1, $rt_s(1648), 2);
32808
+ asrj_Flags_overflow = var$1;
32809
+ var$1 = new asrj_Flags();
32810
+ jl_Enum__init_(var$1, $rt_s(1649), 3);
32811
+ asrj_Flags_divByZero = var$1;
32812
+ var$1 = new asrj_Flags();
32813
+ jl_Enum__init_(var$1, $rt_s(210), 4);
32814
+ asrj_Flags_invalid = var$1;
32815
+ var$2 = $rt_createArray(asrj_Flags, 5);
32816
+ var$3 = var$2.data;
32817
+ var$3[0] = asrj_Flags_inexact;
32818
+ var$3[1] = asrj_Flags_underflow;
32819
+ var$3[2] = asrj_Flags_overflow;
32820
+ var$3[3] = asrj_Flags_divByZero;
32821
+ var$3[4] = var$1;
32822
+ asrj_Flags_$VALUES = var$2;
32823
+ };
32786
32824
  function asrji_ExactFloat() {
32787
32825
  let a = this;
32788
32826
  jl_Object.call(a);
@@ -32869,42 +32907,6 @@ var asrji_ExactFloat_isZero = ($this) => {
32869
32907
  var asrji_ExactFloat__clinit_ = () => {
32870
32908
  asrji_ExactFloat_$assertionsDisabled = 0;
32871
32909
  };
32872
- var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32873
- var asrj_Flags_inexact = null;
32874
- var asrj_Flags_underflow = null;
32875
- var asrj_Flags_overflow = null;
32876
- var asrj_Flags_divByZero = null;
32877
- var asrj_Flags_invalid = null;
32878
- var asrj_Flags_$VALUES = null;
32879
- var asrj_Flags_values = () => {
32880
- return asrj_Flags_$VALUES.$clone0();
32881
- };
32882
- var asrj_Flags__clinit_ = () => {
32883
- let var$1, var$2, var$3;
32884
- var$1 = new asrj_Flags();
32885
- jl_Enum__init_(var$1, $rt_s(1646), 0);
32886
- asrj_Flags_inexact = var$1;
32887
- var$1 = new asrj_Flags();
32888
- jl_Enum__init_(var$1, $rt_s(1647), 1);
32889
- asrj_Flags_underflow = var$1;
32890
- var$1 = new asrj_Flags();
32891
- jl_Enum__init_(var$1, $rt_s(1648), 2);
32892
- asrj_Flags_overflow = var$1;
32893
- var$1 = new asrj_Flags();
32894
- jl_Enum__init_(var$1, $rt_s(1649), 3);
32895
- asrj_Flags_divByZero = var$1;
32896
- var$1 = new asrj_Flags();
32897
- jl_Enum__init_(var$1, $rt_s(210), 4);
32898
- asrj_Flags_invalid = var$1;
32899
- var$2 = $rt_createArray(asrj_Flags, 5);
32900
- var$3 = var$2.data;
32901
- var$3[0] = asrj_Flags_inexact;
32902
- var$3[1] = asrj_Flags_underflow;
32903
- var$3[2] = asrj_Flags_overflow;
32904
- var$3[3] = asrj_Flags_divByZero;
32905
- var$3[4] = var$1;
32906
- asrj_Flags_$VALUES = var$2;
32907
- };
32908
32910
  var ju_EnumSet = $rt_classWithoutFields(ju_AbstractSet);
32909
32911
  function ju_GenericEnumSet() {
32910
32912
  let a = this;
@@ -34094,34 +34096,34 @@ function ju_Hashtable$Entry() {
34094
34096
  var ju_Hashtable$Entry_equalsKey = ($this, $aKey, $hash) => {
34095
34097
  return $this.$hashcode == jl_String_hashCode($aKey) && $this.$key.$equals($aKey) ? 1 : 0;
34096
34098
  };
34097
- var asrjt_Float64$1 = $rt_classWithoutFields();
34098
- var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34099
- var asrjt_Float64$1_$callClinit = () => {
34100
- asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
34101
- asrjt_Float64$1__clinit_();
34099
+ var asrjt_Float32$1 = $rt_classWithoutFields();
34100
+ var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34101
+ var asrjt_Float32$1_$callClinit = () => {
34102
+ asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
34103
+ asrjt_Float32$1__clinit_();
34102
34104
  };
34103
- var asrjt_Float64$1__clinit_ = () => {
34105
+ var asrjt_Float32$1__clinit_ = () => {
34104
34106
  let var$1, var$2;
34105
34107
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
34106
34108
  var$2 = var$1.data;
34107
- asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34109
+ asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34108
34110
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
34109
34111
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
34110
34112
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
34111
34113
  var$2[asrj_RoundingMode_away.$ordinal0] = 4;
34112
34114
  var$2[asrj_RoundingMode_even.$ordinal0] = 5;
34113
34115
  };
34114
- var asrjt_Float32$1 = $rt_classWithoutFields();
34115
- var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34116
- var asrjt_Float32$1_$callClinit = () => {
34117
- asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
34118
- asrjt_Float32$1__clinit_();
34116
+ var asrjt_Float64$1 = $rt_classWithoutFields();
34117
+ var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34118
+ var asrjt_Float64$1_$callClinit = () => {
34119
+ asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
34120
+ asrjt_Float64$1__clinit_();
34119
34121
  };
34120
- var asrjt_Float32$1__clinit_ = () => {
34122
+ var asrjt_Float64$1__clinit_ = () => {
34121
34123
  let var$1, var$2;
34122
34124
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
34123
34125
  var$2 = var$1.data;
34124
- asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34126
+ asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34125
34127
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
34126
34128
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
34127
34129
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
@@ -35271,6 +35273,52 @@ $rt_metadata([
35271
35273
  0,
35272
35274
  0,
35273
35275
  0,
35276
+ asrrh_RegisterFile,
35277
+ 0,
35278
+ jl_Object,
35279
+ [],
35280
+ 0,
35281
+ 3,
35282
+ 0,
35283
+ asrrh_RegisterFile_$callClinit,
35284
+ 0,
35285
+ ju_Arrays,
35286
+ 0,
35287
+ jl_Object,
35288
+ [],
35289
+ 0,
35290
+ 3,
35291
+ 0,
35292
+ 0,
35293
+ 0,
35294
+ juf_ToIntFunction,
35295
+ 0,
35296
+ jl_Object,
35297
+ [],
35298
+ 3,
35299
+ 3,
35300
+ 0,
35301
+ 0,
35302
+ 0,
35303
+ asr_JsRiscV$getRegistersValues$lambda$_25_0,
35304
+ 0,
35305
+ jl_Object,
35306
+ [juf_ToIntFunction],
35307
+ 0,
35308
+ 3,
35309
+ 0,
35310
+ 0,
35311
+ 0,
35312
+ jm_BigInteger,
35313
+ "BigInteger",
35314
+ 14,
35315
+ jl_Number,
35316
+ [jl_Comparable, ji_Serializable],
35317
+ 0,
35318
+ 3,
35319
+ 0,
35320
+ 0,
35321
+ ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35274
35322
  asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35275
35323
  0,
35276
35324
  jl_Object,
@@ -35299,15 +35347,6 @@ $rt_metadata([
35299
35347
  0,
35300
35348
  0,
35301
35349
  0,
35302
- ju_Arrays,
35303
- 0,
35304
- jl_Object,
35305
- [],
35306
- 0,
35307
- 3,
35308
- 0,
35309
- 0,
35310
- 0,
35311
35350
  asr_JsRiscV$getUndoStack$lambda$_26_0,
35312
35351
  0,
35313
35352
  jl_Object,
@@ -35346,43 +35385,6 @@ $rt_metadata([
35346
35385
  0,
35347
35386
  0,
35348
35387
  0,
35349
- asrrh_RegisterFile,
35350
- 0,
35351
- jl_Object,
35352
- [],
35353
- 0,
35354
- 3,
35355
- 0,
35356
- asrrh_RegisterFile_$callClinit,
35357
- 0,
35358
- juf_ToIntFunction,
35359
- 0,
35360
- jl_Object,
35361
- [],
35362
- 3,
35363
- 3,
35364
- 0,
35365
- 0,
35366
- 0,
35367
- asr_JsRiscV$getRegistersValues$lambda$_25_0,
35368
- 0,
35369
- jl_Object,
35370
- [juf_ToIntFunction],
35371
- 0,
35372
- 3,
35373
- 0,
35374
- 0,
35375
- 0,
35376
- jm_BigInteger,
35377
- "BigInteger",
35378
- 14,
35379
- jl_Number,
35380
- [jl_Comparable, ji_Serializable],
35381
- 0,
35382
- 3,
35383
- 0,
35384
- 0,
35385
- ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35386
35388
  asr_JsCompilationResult,
35387
35389
  "JsCompilationResult",
35388
35390
  10,
@@ -35505,24 +35507,16 @@ $rt_metadata([
35505
35507
  0,
35506
35508
  0,
35507
35509
  0,
35508
- asrs_BackStepper,
35509
- 0,
35510
- jl_Object,
35511
- [],
35512
- 0,
35513
- 3,
35514
- 0,
35515
- 0,
35516
- 0,
35517
- asrs_BackStepper$BackstepStack,
35518
- 0,
35519
- jl_Object,
35510
+ asrrh_Register,
35511
+ "Register",
35512
+ 7,
35513
+ ju_Observable,
35520
35514
  [],
35521
35515
  0,
35522
35516
  3,
35523
35517
  0,
35524
35518
  0,
35525
- 0,
35519
+ ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35526
35520
  jl_AutoCloseable,
35527
35521
  0,
35528
35522
  jl_Object,
@@ -35531,9 +35525,7 @@ $rt_metadata([
35531
35525
  3,
35532
35526
  0,
35533
35527
  0,
35534
- 0
35535
- ]);
35536
- $rt_metadata([
35528
+ 0,
35537
35529
  jus_BaseStream,
35538
35530
  0,
35539
35531
  jl_Object,
@@ -35542,7 +35534,9 @@ $rt_metadata([
35542
35534
  3,
35543
35535
  0,
35544
35536
  0,
35545
- 0,
35537
+ 0
35538
+ ]);
35539
+ $rt_metadata([
35546
35540
  jus_Stream,
35547
35541
  0,
35548
35542
  jl_Object,
@@ -35570,16 +35564,24 @@ $rt_metadata([
35570
35564
  0,
35571
35565
  0,
35572
35566
  ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35573
- asrrh_Register,
35574
- "Register",
35575
- 7,
35576
- ju_Observable,
35567
+ asrs_BackStepper,
35568
+ 0,
35569
+ jl_Object,
35577
35570
  [],
35578
35571
  0,
35579
35572
  3,
35580
35573
  0,
35581
35574
  0,
35582
- ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35575
+ 0,
35576
+ asrs_BackStepper$BackstepStack,
35577
+ 0,
35578
+ jl_Object,
35579
+ [],
35580
+ 0,
35581
+ 3,
35582
+ 0,
35583
+ 0,
35584
+ 0,
35583
35585
  asr_JsCompilationResult$_init_$lambda$_0_0,
35584
35586
  0,
35585
35587
  jl_Object,
@@ -37838,24 +37840,6 @@ $rt_metadata([
37838
37840
  0,
37839
37841
  0,
37840
37842
  ["$next1", $rt_wrapFunction1(jusi_StreamOverSpliterator_next), "$estimateSize", $rt_wrapFunction0(jusi_StreamOverSpliterator_estimateSize)],
37841
- jusi_WrappingStreamImpl,
37842
- 0,
37843
- jusi_SimpleStreamImpl,
37844
- [],
37845
- 1,
37846
- 3,
37847
- 0,
37848
- 0,
37849
- 0,
37850
- jusi_MappingStreamImpl,
37851
- 0,
37852
- jusi_WrappingStreamImpl,
37853
- [],
37854
- 0,
37855
- 3,
37856
- 0,
37857
- 0,
37858
- ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37859
37843
  jus_IntStream,
37860
37844
  0,
37861
37845
  jl_Object,
@@ -37883,6 +37867,24 @@ $rt_metadata([
37883
37867
  0,
37884
37868
  0,
37885
37869
  0,
37870
+ jusi_WrappingStreamImpl,
37871
+ 0,
37872
+ jusi_SimpleStreamImpl,
37873
+ [],
37874
+ 1,
37875
+ 3,
37876
+ 0,
37877
+ 0,
37878
+ 0,
37879
+ jusi_MappingStreamImpl,
37880
+ 0,
37881
+ jusi_WrappingStreamImpl,
37882
+ [],
37883
+ 0,
37884
+ 3,
37885
+ 0,
37886
+ 0,
37887
+ ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37886
37888
  jm_Conversion,
37887
37889
  0,
37888
37890
  jl_Object,
@@ -37910,16 +37912,6 @@ $rt_metadata([
37910
37912
  0,
37911
37913
  0,
37912
37914
  ["$hasNext", $rt_wrapFunction0(ju_AbstractList$1_hasNext), "$next", $rt_wrapFunction0(ju_AbstractList$1_next)],
37913
- asrs_Simulator$Reason,
37914
- "Simulator$Reason",
37915
- 3,
37916
- jl_Enum,
37917
- [],
37918
- 12,
37919
- 3,
37920
- 0,
37921
- 0,
37922
- 0,
37923
37915
  asrrh_FloatingPointRegisterFile,
37924
37916
  0,
37925
37917
  jl_Object,
@@ -37965,6 +37957,16 @@ $rt_metadata([
37965
37957
  0,
37966
37958
  0,
37967
37959
  0,
37960
+ asrs_Simulator$Reason,
37961
+ "Simulator$Reason",
37962
+ 3,
37963
+ jl_Enum,
37964
+ [],
37965
+ 12,
37966
+ 3,
37967
+ 0,
37968
+ 0,
37969
+ 0,
37968
37970
  jur_Pattern,
37969
37971
  0,
37970
37972
  jl_Object,
@@ -38104,6 +38106,15 @@ $rt_metadata([
38104
38106
  0,
38105
38107
  0,
38106
38108
  0,
38109
+ jl_NegativeArraySizeException,
38110
+ 0,
38111
+ jl_RuntimeException,
38112
+ [],
38113
+ 0,
38114
+ 3,
38115
+ 0,
38116
+ 0,
38117
+ 0,
38107
38118
  otjc_JSObjects,
38108
38119
  0,
38109
38120
  jl_Object,
@@ -38131,15 +38142,6 @@ $rt_metadata([
38131
38142
  0,
38132
38143
  0,
38133
38144
  0,
38134
- jl_NegativeArraySizeException,
38135
- 0,
38136
- jl_RuntimeException,
38137
- [],
38138
- 0,
38139
- 3,
38140
- 0,
38141
- 0,
38142
- 0,
38143
38145
  ju_Arrays$ArrayAsList,
38144
38146
  0,
38145
38147
  ju_AbstractList,
@@ -40968,7 +40970,7 @@ $rt_metadata([
40968
40970
  0,
40969
40971
  0,
40970
40972
  0,
40971
- asrjt_Float32,
40973
+ asrjt_Float64,
40972
40974
  0,
40973
40975
  asrjt_Floating,
40974
40976
  [],
@@ -40978,37 +40980,37 @@ $rt_metadata([
40978
40980
  0,
40979
40981
  [
40980
40982
  "$isSignMinus",
40981
- $rt_wrapFunction0(asrjt_Float32_isSignMinus),
40983
+ $rt_wrapFunction0(asrjt_Float64_isSignMinus),
40982
40984
  "$isInfinite",
40983
- $rt_wrapFunction0(asrjt_Float32_isInfinite),
40985
+ $rt_wrapFunction0(asrjt_Float64_isInfinite),
40984
40986
  "$isNormal",
40985
- $rt_wrapFunction0(asrjt_Float32_isNormal),
40987
+ $rt_wrapFunction0(asrjt_Float64_isNormal),
40986
40988
  "$isSubnormal",
40987
- $rt_wrapFunction0(asrjt_Float32_isSubnormal),
40989
+ $rt_wrapFunction0(asrjt_Float64_isSubnormal),
40988
40990
  "$isNaN",
40989
- $rt_wrapFunction0(asrjt_Float32_isNaN),
40991
+ $rt_wrapFunction0(asrjt_Float64_isNaN),
40990
40992
  "$isSignalling",
40991
- $rt_wrapFunction0(asrjt_Float32_isSignalling),
40993
+ $rt_wrapFunction0(asrjt_Float64_isSignalling),
40992
40994
  "$isZero",
40993
- $rt_wrapFunction0(asrjt_Float32_isZero),
40995
+ $rt_wrapFunction0(asrjt_Float64_isZero),
40994
40996
  "$toExactFloat",
40995
- $rt_wrapFunction0(asrjt_Float32_toExactFloat),
40997
+ $rt_wrapFunction0(asrjt_Float64_toExactFloat),
40996
40998
  "$maxPrecision",
40997
- $rt_wrapFunction0(asrjt_Float32_maxPrecision),
40999
+ $rt_wrapFunction0(asrjt_Float64_maxPrecision),
40998
41000
  "$negate2",
40999
- $rt_wrapFunction0(asrjt_Float32_negate0),
41001
+ $rt_wrapFunction0(asrjt_Float64_negate0),
41000
41002
  "$fromExactFloat",
41001
- $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
41003
+ $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
41002
41004
  "$NegativeInfinity",
41003
- $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
41005
+ $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
41004
41006
  "$Infinity",
41005
- $rt_wrapFunction0(asrjt_Float32_Infinity0),
41007
+ $rt_wrapFunction0(asrjt_Float64_Infinity0),
41006
41008
  "$NegativeZero",
41007
- $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
41009
+ $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
41008
41010
  "$Zero",
41009
- $rt_wrapFunction0(asrjt_Float32_Zero0),
41011
+ $rt_wrapFunction0(asrjt_Float64_Zero0),
41010
41012
  "$NaN",
41011
- $rt_wrapFunction0(asrjt_Float32_NaN0)
41013
+ $rt_wrapFunction0(asrjt_Float64_NaN0)
41012
41014
  ],
41013
41015
  asrjo_Conversions,
41014
41016
  0,
@@ -41019,7 +41021,7 @@ $rt_metadata([
41019
41021
  0,
41020
41022
  0,
41021
41023
  0,
41022
- asrjt_Float64,
41024
+ asrjt_Float32,
41023
41025
  0,
41024
41026
  asrjt_Floating,
41025
41027
  [],
@@ -41029,39 +41031,39 @@ $rt_metadata([
41029
41031
  0,
41030
41032
  [
41031
41033
  "$isSignMinus",
41032
- $rt_wrapFunction0(asrjt_Float64_isSignMinus),
41034
+ $rt_wrapFunction0(asrjt_Float32_isSignMinus),
41033
41035
  "$isInfinite",
41034
- $rt_wrapFunction0(asrjt_Float64_isInfinite),
41036
+ $rt_wrapFunction0(asrjt_Float32_isInfinite),
41035
41037
  "$isNormal",
41036
- $rt_wrapFunction0(asrjt_Float64_isNormal),
41038
+ $rt_wrapFunction0(asrjt_Float32_isNormal),
41037
41039
  "$isSubnormal",
41038
- $rt_wrapFunction0(asrjt_Float64_isSubnormal),
41040
+ $rt_wrapFunction0(asrjt_Float32_isSubnormal),
41039
41041
  "$isNaN",
41040
- $rt_wrapFunction0(asrjt_Float64_isNaN),
41042
+ $rt_wrapFunction0(asrjt_Float32_isNaN),
41041
41043
  "$isSignalling",
41042
- $rt_wrapFunction0(asrjt_Float64_isSignalling),
41044
+ $rt_wrapFunction0(asrjt_Float32_isSignalling),
41043
41045
  "$isZero",
41044
- $rt_wrapFunction0(asrjt_Float64_isZero),
41046
+ $rt_wrapFunction0(asrjt_Float32_isZero),
41045
41047
  "$toExactFloat",
41046
- $rt_wrapFunction0(asrjt_Float64_toExactFloat),
41048
+ $rt_wrapFunction0(asrjt_Float32_toExactFloat),
41047
41049
  "$maxPrecision",
41048
- $rt_wrapFunction0(asrjt_Float64_maxPrecision),
41050
+ $rt_wrapFunction0(asrjt_Float32_maxPrecision),
41049
41051
  "$negate2",
41050
- $rt_wrapFunction0(asrjt_Float64_negate0),
41052
+ $rt_wrapFunction0(asrjt_Float32_negate0),
41051
41053
  "$fromExactFloat",
41052
- $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
41054
+ $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
41053
41055
  "$NegativeInfinity",
41054
- $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
41056
+ $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
41055
41057
  "$Infinity",
41056
- $rt_wrapFunction0(asrjt_Float64_Infinity0),
41058
+ $rt_wrapFunction0(asrjt_Float32_Infinity0),
41057
41059
  "$NegativeZero",
41058
- $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
41060
+ $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
41059
41061
  "$Zero",
41060
- $rt_wrapFunction0(asrjt_Float64_Zero0),
41062
+ $rt_wrapFunction0(asrjt_Float32_Zero0),
41061
41063
  "$NaN",
41062
- $rt_wrapFunction0(asrjt_Float64_NaN0)
41064
+ $rt_wrapFunction0(asrjt_Float32_NaN0)
41063
41065
  ],
41064
- asrjo_Comparisons,
41066
+ asrjo_Arithmetic,
41065
41067
  0,
41066
41068
  jl_Object,
41067
41069
  [],
@@ -41070,7 +41072,7 @@ $rt_metadata([
41070
41072
  0,
41071
41073
  0,
41072
41074
  0,
41073
- asrjo_Arithmetic,
41075
+ asrjo_Comparisons,
41074
41076
  0,
41075
41077
  jl_Object,
41076
41078
  [],
@@ -41107,15 +41109,6 @@ $rt_metadata([
41107
41109
  0,
41108
41110
  0,
41109
41111
  0,
41110
- asrji_ExactFloat,
41111
- 0,
41112
- jl_Object,
41113
- [jl_Comparable],
41114
- 0,
41115
- 3,
41116
- 0,
41117
- 0,
41118
- 0,
41119
41112
  asrj_Flags,
41120
41113
  "Flags",
41121
41114
  9,
@@ -41126,6 +41119,15 @@ $rt_metadata([
41126
41119
  0,
41127
41120
  0,
41128
41121
  0,
41122
+ asrji_ExactFloat,
41123
+ 0,
41124
+ jl_Object,
41125
+ [jl_Comparable],
41126
+ 0,
41127
+ 3,
41128
+ 0,
41129
+ 0,
41130
+ 0,
41129
41131
  ju_EnumSet,
41130
41132
  0,
41131
41133
  ju_AbstractSet,
@@ -41308,23 +41310,23 @@ $rt_metadata([
41308
41310
  0,
41309
41311
  0,
41310
41312
  0,
41311
- asrjt_Float64$1,
41313
+ asrjt_Float32$1,
41312
41314
  0,
41313
41315
  jl_Object,
41314
41316
  [],
41315
41317
  32,
41316
41318
  0,
41317
41319
  0,
41318
- asrjt_Float64$1_$callClinit,
41320
+ asrjt_Float32$1_$callClinit,
41319
41321
  0,
41320
- asrjt_Float32$1,
41322
+ asrjt_Float64$1,
41321
41323
  0,
41322
41324
  jl_Object,
41323
41325
  [],
41324
41326
  32,
41325
41327
  0,
41326
41328
  0,
41327
- asrjt_Float32$1_$callClinit,
41329
+ asrjt_Float64$1_$callClinit,
41328
41330
  0
41329
41331
  ]);
41330
41332
  $rt_metadata([
@@ -42507,13 +42509,6 @@ $rt_stringPool([
42507
42509
  "0.000000",
42508
42510
  "0E",
42509
42511
  "0E+",
42510
- "BREAKPOINT",
42511
- "EXCEPTION",
42512
- "MAX_STEPS",
42513
- "NORMAL_TERMINATION",
42514
- "CLIFF_TERMINATION",
42515
- "PAUSE",
42516
- "STOP",
42517
42512
  "ft0",
42518
42513
  "ft1",
42519
42514
  "ft2",
@@ -42561,6 +42556,13 @@ $rt_stringPool([
42561
42556
  "Cannot claim, no timer interrupt pending",
42562
42557
  "Cannot claim, no trap pending",
42563
42558
  "trapPC doesn't match current pc",
42559
+ "BREAKPOINT",
42560
+ "EXCEPTION",
42561
+ "MAX_STEPS",
42562
+ "NORMAL_TERMINATION",
42563
+ "CLIFF_TERMINATION",
42564
+ "PAUSE",
42565
+ "STOP",
42564
42566
  "Patter is null",
42565
42567
  "Recursive include of file ",
42566
42568
  "Error reading include file ",
@@ -43088,12 +43090,12 @@ var $rt_jso_marker = Symbol("jsoClass");
43088
43090
  c.setUndoEnabled = $rt_callWithReceiver(asr_JsRiscV_setUndoEnabled$exported$23);
43089
43091
  c.getRegistersValues = $rt_callWithReceiver(asr_JsRiscV_getRegistersValues$exported$6);
43090
43092
  c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$33);
43091
- c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$8);
43093
+ c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$9);
43092
43094
  c.getParsedStatements = $rt_callWithReceiver(asr_JsRiscV_getParsedStatements$exported$21);
43093
43095
  c.getStatementAtSourceLine = $rt_callWithReceiver(asr_JsRiscV_getStatementAtSourceLine$exported$22);
43094
43096
  c.setUndoSize = $rt_callWithReceiver(asr_JsRiscV_setUndoSize$exported$20);
43095
43097
  c.getUndoStack = $rt_callWithReceiver(asr_JsRiscV_getUndoStack$exported$15);
43096
- c.setRegisterValue = $rt_callWithReceiver(asr_JsRiscV_setRegisterValue$exported$9);
43098
+ c.setRegisterValue = $rt_callWithReceiver(asr_JsRiscV_setRegisterValue$exported$8);
43097
43099
  c.getStopReason = $rt_callWithReceiver(asr_JsRiscV_getStopReason$exported$24);
43098
43100
  c.getLabelAtAddress = $rt_callWithReceiver(asr_JsRiscV_getLabelAtAddress$exported$2);
43099
43101
  c.simulate = $rt_callWithReceiver(asr_JsRiscV_simulate$exported$25);
@@ -43254,18 +43256,18 @@ function $rt_export_class_JsInstruction_33() {
43254
43256
  throw new Error("Can't instantiate this class directly");
43255
43257
  }
43256
43258
  $rt_export_class_JsInstruction_33.prototype = asr_JsInstruction.prototype;
43257
- function $rt_export_class_JsRiscVTokenizedLine_73() {
43259
+ function $rt_export_class_JsRiscVTokenizedLine_78() {
43258
43260
  throw new Error("Can't instantiate this class directly");
43259
43261
  }
43260
- $rt_export_class_JsRiscVTokenizedLine_73.prototype = asr_JsRiscVTokenizedLine.prototype;
43261
- function $rt_export_class_JsBackStep_77() {
43262
+ $rt_export_class_JsRiscVTokenizedLine_78.prototype = asr_JsRiscVTokenizedLine.prototype;
43263
+ function $rt_export_class_JsBackStep_81() {
43262
43264
  throw new Error("Can't instantiate this class directly");
43263
43265
  }
43264
- $rt_export_class_JsBackStep_77.prototype = asr_JsBackStep.prototype;
43265
- function $rt_export_class_JsProgramStatement_78() {
43266
+ $rt_export_class_JsBackStep_81.prototype = asr_JsBackStep.prototype;
43267
+ function $rt_export_class_JsProgramStatement_82() {
43266
43268
  throw new Error("Can't instantiate this class directly");
43267
43269
  }
43268
- $rt_export_class_JsProgramStatement_78.prototype = asr_JsProgramStatement.prototype;
43270
+ $rt_export_class_JsProgramStatement_82.prototype = asr_JsProgramStatement.prototype;
43269
43271
  function $rt_export_class_JsCompilationResult_83() {
43270
43272
  throw new Error("Can't instantiate this class directly");
43271
43273
  }
@@ -43392,6 +43394,11 @@ function makeRiscVfromSource(source) {
43392
43394
  function initializeRISCV() {
43393
43395
  asr_JsRiscV_initializeRISCV$exported$0();
43394
43396
  }
43397
+ function bigintToHighLow(value) {
43398
+ const high = Number(value >> 32n & 0xFFFFFFFFn);
43399
+ const low = Number(value & 0xFFFFFFFFn);
43400
+ return [high, low];
43401
+ }
43395
43402
  export {
43396
43403
  BackStepAction,
43397
43404
  ConfirmResult,
@@ -43400,6 +43407,7 @@ export {
43400
43407
  RISCVRegisters,
43401
43408
  RISCV_REGISTERS,
43402
43409
  StopReason,
43410
+ bigintToHighLow,
43403
43411
  registerHandlers,
43404
43412
  unimplementedHandler
43405
43413
  };