@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.js CHANGED
@@ -27,6 +27,7 @@ __export(index_exports, {
27
27
  RISCVRegisters: () => RISCVRegisters,
28
28
  RISCV_REGISTERS: () => RISCV_REGISTERS,
29
29
  StopReason: () => StopReason,
30
+ bigintToHighLow: () => bigintToHighLow,
30
31
  registerHandlers: () => registerHandlers,
31
32
  unimplementedHandler: () => unimplementedHandler
32
33
  });
@@ -2801,7 +2802,16 @@ var asr_JsRiscV_assemble$exported$7 = (var$1) => {
2801
2802
  }
2802
2803
  return var$2;
2803
2804
  };
2804
- var asr_JsRiscV_undo$exported$8 = (var$1) => {
2805
+ var asr_JsRiscV_setRegisterValue$exported$8 = (var$1, var$2, var$3, var$4) => {
2806
+ let var$5, var$6;
2807
+ asr_JsRiscV_$callClinit();
2808
+ var$2 = $rt_str(var$2);
2809
+ var$5 = var$3;
2810
+ var$6 = var$4;
2811
+ var$1;
2812
+ 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))));
2813
+ };
2814
+ var asr_JsRiscV_undo$exported$9 = (var$1) => {
2805
2815
  let var$2, var$3, var$4, $$je;
2806
2816
  asr_JsRiscV_$callClinit();
2807
2817
  var$2 = var$1.$main.$main0.$backStepper;
@@ -2880,13 +2890,6 @@ var asr_JsRiscV_undo$exported$8 = (var$1) => {
2880
2890
  var$2.$engaged = 1;
2881
2891
  }
2882
2892
  };
2883
- var asr_JsRiscV_setRegisterValue$exported$9 = (var$1, var$2, var$3) => {
2884
- asr_JsRiscV_$callClinit();
2885
- var$2 = $rt_str(var$2);
2886
- var$3 = var$3;
2887
- var$1;
2888
- asrrh_RegisterFile_getRegister(var$2).$setValue(jm_BigInteger_longValue(var$3));
2889
- };
2890
2893
  var asr_JsRiscV_getCompiledStatements$exported$10 = (var$1) => {
2891
2894
  let var$2, var$3, var$4, var$5;
2892
2895
  asr_JsRiscV_$callClinit();
@@ -3353,11 +3356,11 @@ var asr_JsRiscV__clinit_ = () => {
3353
3356
  ju_Comparator$NaturalOrder__clinit_();
3354
3357
  asrr_BasicInstructionFormat__clinit_();
3355
3358
  jl_Long__clinit_();
3356
- asrs_Simulator$Reason__clinit_();
3357
3359
  asrrh_FloatingPointRegisterFile__clinit_();
3358
3360
  asrrh_ControlAndStatusRegisterFile__clinit_();
3359
3361
  asrrh_InterruptController__clinit_();
3360
3362
  asrrh_Stack__clinit_();
3363
+ asrs_Simulator$Reason__clinit_();
3361
3364
  asra_Tokenizer__clinit_();
3362
3365
  asrs_Simulator__clinit_();
3363
3366
  asra_Directives__clinit_();
@@ -3374,12 +3377,12 @@ var asr_JsRiscV__clinit_ = () => {
3374
3377
  jnc_CodingErrorAction__clinit_();
3375
3378
  jnc_CoderResult__clinit_();
3376
3379
  jn_ByteOrder__clinit_();
3377
- asrjt_Float32__clinit_();
3378
3380
  asrjt_Float64__clinit_();
3381
+ asrjt_Float32__clinit_();
3379
3382
  asrjo_Arithmetic__clinit_();
3380
3383
  asrj_RoundingMode__clinit_();
3381
- asrji_ExactFloat__clinit_();
3382
3384
  asrj_Flags__clinit_();
3385
+ asrji_ExactFloat__clinit_();
3383
3386
  asrrs_RandomStreams__clinit_();
3384
3387
  otcit_FloatSynthesizer__clinit_();
3385
3388
  jl_Byte__clinit_();
@@ -7106,345 +7109,6 @@ var jl_System_currentTimeMillis = () => {
7106
7109
  return Long_fromNumber((/* @__PURE__ */ new Date()).getTime());
7107
7110
  };
7108
7111
  var jl_CloneNotSupportedException = $rt_classWithoutFields(jl_Exception);
7109
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7110
- var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7111
- let var$2, var$3, var$4, var$5;
7112
- var$1 = var$1;
7113
- asr_JsRiscV_$callClinit();
7114
- var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7115
- var$3 = var$2.data;
7116
- var$4 = 0;
7117
- while (var$4 < asra_TokenList_size(var$1)) {
7118
- var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7119
- var$4 = var$4 + 1 | 0;
7120
- }
7121
- var$5 = new asr_JsRiscVTokenizedLine();
7122
- var$5.$line0 = var$1.$processedLine;
7123
- var$5.$tokens0 = var$2;
7124
- return var$5;
7125
- };
7126
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7127
- var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7128
- asr_JsRiscV_$callClinit();
7129
- return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7130
- };
7131
- function asr_JsRiscVTokenizedLine() {
7132
- let a = this;
7133
- jl_Object.call(a);
7134
- a.$line0 = null;
7135
- a.$tokens0 = null;
7136
- }
7137
- var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7138
- return $rt_ustr(var$1.$line0);
7139
- };
7140
- var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7141
- return otji_JS_wrap(var$1.$tokens0);
7142
- };
7143
- var ju_Arrays = $rt_classWithoutFields();
7144
- var ju_Arrays_copyOf1 = ($array, $length) => {
7145
- let $result, var$4, $sz, $i;
7146
- $array = $array.data;
7147
- $result = $rt_createCharArray($length);
7148
- var$4 = $result.data;
7149
- $sz = jl_Math_min($length, $array.length);
7150
- $i = 0;
7151
- while ($i < $sz) {
7152
- var$4[$i] = $array[$i];
7153
- $i = $i + 1 | 0;
7154
- }
7155
- return $result;
7156
- };
7157
- var ju_Arrays_copyOf0 = ($array, $length) => {
7158
- let $result, var$4, $sz, $i;
7159
- $array = $array.data;
7160
- $result = $rt_createByteArray($length);
7161
- var$4 = $result.data;
7162
- $sz = jl_Math_min($length, $array.length);
7163
- $i = 0;
7164
- while ($i < $sz) {
7165
- var$4[$i] = $array[$i];
7166
- $i = $i + 1 | 0;
7167
- }
7168
- return $result;
7169
- };
7170
- var ju_Arrays_copyOf2 = ($array, $length) => {
7171
- let $result, var$4, $sz, $i;
7172
- $array = $array.data;
7173
- $result = $rt_createIntArray($length);
7174
- var$4 = $result.data;
7175
- $sz = jl_Math_min($length, $array.length);
7176
- $i = 0;
7177
- while ($i < $sz) {
7178
- var$4[$i] = $array[$i];
7179
- $i = $i + 1 | 0;
7180
- }
7181
- return $result;
7182
- };
7183
- var ju_Arrays_copyOf = ($original, $newLength) => {
7184
- let var$3, $result, $sz, $i;
7185
- var$3 = $original.data;
7186
- $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7187
- $sz = jl_Math_min($newLength, var$3.length);
7188
- $i = 0;
7189
- while ($i < $sz) {
7190
- $result.data[$i] = var$3[$i];
7191
- $i = $i + 1 | 0;
7192
- }
7193
- return $result;
7194
- };
7195
- var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7196
- let var$5, var$6, var$7;
7197
- if ($fromIndex > $toIndex) {
7198
- var$5 = new jl_IllegalArgumentException();
7199
- jl_Throwable__init_(var$5);
7200
- $rt_throw(var$5);
7201
- }
7202
- while ($fromIndex < $toIndex) {
7203
- var$6 = $a.data;
7204
- var$7 = $fromIndex + 1 | 0;
7205
- var$6[$fromIndex] = $val;
7206
- $fromIndex = var$7;
7207
- }
7208
- };
7209
- var ju_Arrays_fill = ($a, $val) => {
7210
- ju_Arrays_fill0($a, 0, $a.data.length, $val);
7211
- };
7212
- var ju_Arrays_sort = ($a) => {
7213
- 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;
7214
- var$2 = $a.data.length;
7215
- if (!var$2)
7216
- return;
7217
- $second = $rt_createIntArray(var$2);
7218
- $chunkSize = 1;
7219
- var$5 = $a;
7220
- while ($chunkSize < var$2) {
7221
- $i = 0;
7222
- while (true) {
7223
- var$7 = var$5.data;
7224
- var$8 = var$7.length;
7225
- if ($i >= var$8)
7226
- break;
7227
- var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7228
- $i_0 = $i + (2 * $chunkSize | 0) | 0;
7229
- var$8 = jl_Math_min(var$8, $i_0);
7230
- var$11 = $i;
7231
- var$12 = var$9;
7232
- a: {
7233
- b: {
7234
- while ($i != var$9) {
7235
- if (var$12 == var$8)
7236
- break b;
7237
- var$13 = var$7[$i];
7238
- var$14 = var$7[var$12];
7239
- if (var$13 > var$14) {
7240
- var$15 = $second.data;
7241
- var$16 = var$11 + 1 | 0;
7242
- var$15[var$11] = var$14;
7243
- var$12 = var$12 + 1 | 0;
7244
- } else {
7245
- var$15 = $second.data;
7246
- var$16 = var$11 + 1 | 0;
7247
- var$15[var$11] = var$13;
7248
- $i = $i + 1 | 0;
7249
- }
7250
- var$11 = var$16;
7251
- }
7252
- while (true) {
7253
- if (var$12 >= var$8)
7254
- break a;
7255
- var$15 = $second.data;
7256
- var$17 = var$11 + 1 | 0;
7257
- $i = var$12 + 1 | 0;
7258
- var$15[var$11] = var$7[var$12];
7259
- var$11 = var$17;
7260
- var$12 = $i;
7261
- }
7262
- }
7263
- while (true) {
7264
- if ($i >= var$9)
7265
- break a;
7266
- var$15 = $second.data;
7267
- var$17 = var$11 + 1 | 0;
7268
- var$8 = $i + 1 | 0;
7269
- var$15[var$11] = var$7[$i];
7270
- var$11 = var$17;
7271
- $i = var$8;
7272
- }
7273
- }
7274
- $i = $i_0;
7275
- }
7276
- $chunkSize = $chunkSize * 2 | 0;
7277
- var$15 = var$5;
7278
- var$5 = $second;
7279
- $second = var$15;
7280
- }
7281
- c: {
7282
- if (var$5 !== $a) {
7283
- $i_0 = 0;
7284
- while (true) {
7285
- $a = var$5.data;
7286
- if ($i_0 >= $a.length)
7287
- break c;
7288
- $second.data[$i_0] = $a[$i_0];
7289
- $i_0 = $i_0 + 1 | 0;
7290
- }
7291
- }
7292
- }
7293
- };
7294
- var ju_Arrays_binarySearch = ($a, $key) => {
7295
- let var$3, var$4, var$5, var$6, var$7;
7296
- $a = $a.data;
7297
- var$3 = 0;
7298
- var$4 = $a.length;
7299
- if (var$3 > var$4) {
7300
- var$5 = new jl_IllegalArgumentException();
7301
- jl_Throwable__init_(var$5);
7302
- $rt_throw(var$5);
7303
- }
7304
- var$6 = var$4 - 1 | 0;
7305
- a: {
7306
- while (true) {
7307
- if (var$3 > var$6) {
7308
- var$4 = (-var$3 | 0) - 1 | 0;
7309
- break a;
7310
- }
7311
- var$4 = (var$3 + var$6 | 0) / 2 | 0;
7312
- var$7 = $a[var$4];
7313
- if (var$7 == $key)
7314
- break;
7315
- if ($key >= var$7)
7316
- var$3 = var$4 + 1 | 0;
7317
- else
7318
- var$6 = var$4 - 1 | 0;
7319
- }
7320
- }
7321
- return var$4;
7322
- };
7323
- var ju_Arrays_stream = ($array) => {
7324
- let var$2, var$3, var$4;
7325
- var$2 = $array.data;
7326
- var$3 = new jusi_ArrayStreamImpl();
7327
- var$4 = var$2.length;
7328
- var$3.$array6 = $array;
7329
- var$3.$index1 = 0;
7330
- var$3.$end1 = var$4;
7331
- var$3.$size2 = var$4 - 0 | 0;
7332
- return var$3;
7333
- };
7334
- var asr_JsRiscV$getUndoStack$lambda$_26_0 = $rt_classWithoutFields();
7335
- var asr_JsRiscV$getUndoStack$lambda$_26_0_apply = (var$0, var$1) => {
7336
- let var$2, var$3;
7337
- var$1 = var$1;
7338
- var$2 = new asr_JsBackStep();
7339
- var$3 = var$1.$action;
7340
- var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7341
- var$2.$pc2 = var$1.$pc1;
7342
- var$2.$param10 = var$1.$param1;
7343
- var$2.$param20 = Long_lo(var$1.$param2);
7344
- return var$2;
7345
- };
7346
- var asr_JsRiscV$getUndoStack$lambda$_26_1 = $rt_classWithoutFields();
7347
- var asr_JsRiscV$getUndoStack$lambda$_26_1_apply = (var$0, var$1) => {
7348
- asr_JsRiscV_$callClinit();
7349
- return $rt_createArray(asr_JsBackStep, var$1);
7350
- };
7351
- function asr_JsBackStep() {
7352
- let a = this;
7353
- jl_Object.call(a);
7354
- a.$action0 = 0;
7355
- a.$pc2 = 0;
7356
- a.$param10 = 0;
7357
- a.$param20 = 0;
7358
- }
7359
- var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7360
- return var$1.$pc2;
7361
- };
7362
- var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7363
- return var$1.$param20;
7364
- };
7365
- var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7366
- return var$1.$action0;
7367
- };
7368
- var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7369
- return var$1.$param10;
7370
- };
7371
- function asr_JsProgramStatement() {
7372
- let a = this;
7373
- jl_Object.call(a);
7374
- a.$sourceLine1 = 0;
7375
- a.$address2 = 0;
7376
- a.$binaryStatement0 = 0;
7377
- a.$source3 = null;
7378
- a.$assemblyStatement = null;
7379
- a.$machineStatement0 = null;
7380
- }
7381
- var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7382
- let var$2, var$3, var$4, var$5, var$6;
7383
- $this.$sourceLine1 = $programStatement.$sourceLine0;
7384
- $this.$address2 = $programStatement.$textAddress0;
7385
- $this.$binaryStatement0 = $programStatement.$binaryStatement;
7386
- $this.$source3 = $programStatement.$source;
7387
- var$2 = $programStatement.$basicStatementList;
7388
- var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7389
- var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7390
- var$5 = new jl_StringBuffer();
7391
- jl_AbstractStringBuilder__init_(var$5);
7392
- var$6 = ju_AbstractList_iterator(var$2.$list);
7393
- while (ju_AbstractList$1_hasNext(var$6)) {
7394
- a: {
7395
- var$2 = ju_AbstractList$1_next(var$6);
7396
- switch (var$2.$type3) {
7397
- case 0:
7398
- break;
7399
- case 1:
7400
- if (var$3 == 10) {
7401
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7402
- break a;
7403
- }
7404
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7405
- break a;
7406
- case 2:
7407
- if (var$4 == 10) {
7408
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7409
- break a;
7410
- }
7411
- jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7412
- break a;
7413
- case 3:
7414
- jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7415
- break a;
7416
- default:
7417
- break a;
7418
- }
7419
- jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7420
- }
7421
- }
7422
- $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7423
- $this.$machineStatement0 = $programStatement.$machineStatement;
7424
- };
7425
- var asr_JsProgramStatement__init_ = (var_0) => {
7426
- let var_1 = new asr_JsProgramStatement();
7427
- asr_JsProgramStatement__init_0(var_1, var_0);
7428
- return var_1;
7429
- };
7430
- var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7431
- return var$1.$sourceLine1;
7432
- };
7433
- var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7434
- return $rt_ustr(var$1.$assemblyStatement);
7435
- };
7436
- var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7437
- return $rt_ustr(var$1.$source3);
7438
- };
7439
- var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7440
- return var$1.$address2;
7441
- };
7442
- var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7443
- return var$1.$binaryStatement0;
7444
- };
7445
- var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7446
- return $rt_ustr(var$1.$machineStatement0);
7447
- };
7448
7112
  var asrrh_RegisterFile = $rt_classWithoutFields();
7449
7113
  var asrrh_RegisterFile_instance = null;
7450
7114
  var asrrh_RegisterFile_programCounter = null;
@@ -7452,16 +7116,16 @@ var asrrh_RegisterFile_$callClinit = () => {
7452
7116
  asrrh_RegisterFile_$callClinit = $rt_eraseClinit(asrrh_RegisterFile);
7453
7117
  asrrh_RegisterFile__clinit_();
7454
7118
  };
7455
- var asrrh_RegisterFile_updateRegister = ($num, $val) => {
7119
+ var asrrh_RegisterFile_updateRegister = (var$1, var$2) => {
7456
7120
  let var$3;
7457
7121
  asrrh_RegisterFile_$callClinit();
7458
- if ($num) {
7122
+ if (var$1) {
7459
7123
  if (!asr_Settings_getBackSteppingEnabled(asr_Globals_getSettings()))
7460
- asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7124
+ asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7461
7125
  else {
7462
7126
  var$3 = asr_Globals_program.$backStepper;
7463
- $val = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, $num, $val);
7464
- asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), $num, $val);
7127
+ var$2 = asrrh_RegisterBlock_updateRegister(asrrh_RegisterFile_instance, var$1, var$2);
7128
+ asrs_BackStepper$BackstepStack_push(var$3.$backSteps, asrs_BackStepper$Action_REGISTER_RESTORE, asrs_BackStepper_pc(var$3), var$1, var$2);
7465
7129
  }
7466
7130
  }
7467
7131
  };
@@ -7584,6 +7248,197 @@ var asrrh_RegisterFile__clinit_ = () => {
7584
7248
  asrrh_RegisterFile_instance = var$1;
7585
7249
  asrrh_RegisterFile_programCounter = asrrh_Register__init_($rt_s(243), -1, Long_fromInt(asrrh_Memory_textBaseAddress));
7586
7250
  };
7251
+ var ju_Arrays = $rt_classWithoutFields();
7252
+ var ju_Arrays_copyOf1 = ($array, $length) => {
7253
+ let $result, var$4, $sz, $i;
7254
+ $array = $array.data;
7255
+ $result = $rt_createCharArray($length);
7256
+ var$4 = $result.data;
7257
+ $sz = jl_Math_min($length, $array.length);
7258
+ $i = 0;
7259
+ while ($i < $sz) {
7260
+ var$4[$i] = $array[$i];
7261
+ $i = $i + 1 | 0;
7262
+ }
7263
+ return $result;
7264
+ };
7265
+ var ju_Arrays_copyOf0 = ($array, $length) => {
7266
+ let $result, var$4, $sz, $i;
7267
+ $array = $array.data;
7268
+ $result = $rt_createByteArray($length);
7269
+ var$4 = $result.data;
7270
+ $sz = jl_Math_min($length, $array.length);
7271
+ $i = 0;
7272
+ while ($i < $sz) {
7273
+ var$4[$i] = $array[$i];
7274
+ $i = $i + 1 | 0;
7275
+ }
7276
+ return $result;
7277
+ };
7278
+ var ju_Arrays_copyOf2 = ($array, $length) => {
7279
+ let $result, var$4, $sz, $i;
7280
+ $array = $array.data;
7281
+ $result = $rt_createIntArray($length);
7282
+ var$4 = $result.data;
7283
+ $sz = jl_Math_min($length, $array.length);
7284
+ $i = 0;
7285
+ while ($i < $sz) {
7286
+ var$4[$i] = $array[$i];
7287
+ $i = $i + 1 | 0;
7288
+ }
7289
+ return $result;
7290
+ };
7291
+ var ju_Arrays_copyOf = ($original, $newLength) => {
7292
+ let var$3, $result, $sz, $i;
7293
+ var$3 = $original.data;
7294
+ $result = jlr_Array_newInstance(jl_Class_getComponentType(jl_Object_getClass($original)), $newLength);
7295
+ $sz = jl_Math_min($newLength, var$3.length);
7296
+ $i = 0;
7297
+ while ($i < $sz) {
7298
+ $result.data[$i] = var$3[$i];
7299
+ $i = $i + 1 | 0;
7300
+ }
7301
+ return $result;
7302
+ };
7303
+ var ju_Arrays_fill0 = ($a, $fromIndex, $toIndex, $val) => {
7304
+ let var$5, var$6, var$7;
7305
+ if ($fromIndex > $toIndex) {
7306
+ var$5 = new jl_IllegalArgumentException();
7307
+ jl_Throwable__init_(var$5);
7308
+ $rt_throw(var$5);
7309
+ }
7310
+ while ($fromIndex < $toIndex) {
7311
+ var$6 = $a.data;
7312
+ var$7 = $fromIndex + 1 | 0;
7313
+ var$6[$fromIndex] = $val;
7314
+ $fromIndex = var$7;
7315
+ }
7316
+ };
7317
+ var ju_Arrays_fill = ($a, $val) => {
7318
+ ju_Arrays_fill0($a, 0, $a.data.length, $val);
7319
+ };
7320
+ var ju_Arrays_sort = ($a) => {
7321
+ 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;
7322
+ var$2 = $a.data.length;
7323
+ if (!var$2)
7324
+ return;
7325
+ $second = $rt_createIntArray(var$2);
7326
+ $chunkSize = 1;
7327
+ var$5 = $a;
7328
+ while ($chunkSize < var$2) {
7329
+ $i = 0;
7330
+ while (true) {
7331
+ var$7 = var$5.data;
7332
+ var$8 = var$7.length;
7333
+ if ($i >= var$8)
7334
+ break;
7335
+ var$9 = jl_Math_min(var$8, $i + $chunkSize | 0);
7336
+ $i_0 = $i + (2 * $chunkSize | 0) | 0;
7337
+ var$8 = jl_Math_min(var$8, $i_0);
7338
+ var$11 = $i;
7339
+ var$12 = var$9;
7340
+ a: {
7341
+ b: {
7342
+ while ($i != var$9) {
7343
+ if (var$12 == var$8)
7344
+ break b;
7345
+ var$13 = var$7[$i];
7346
+ var$14 = var$7[var$12];
7347
+ if (var$13 > var$14) {
7348
+ var$15 = $second.data;
7349
+ var$16 = var$11 + 1 | 0;
7350
+ var$15[var$11] = var$14;
7351
+ var$12 = var$12 + 1 | 0;
7352
+ } else {
7353
+ var$15 = $second.data;
7354
+ var$16 = var$11 + 1 | 0;
7355
+ var$15[var$11] = var$13;
7356
+ $i = $i + 1 | 0;
7357
+ }
7358
+ var$11 = var$16;
7359
+ }
7360
+ while (true) {
7361
+ if (var$12 >= var$8)
7362
+ break a;
7363
+ var$15 = $second.data;
7364
+ var$17 = var$11 + 1 | 0;
7365
+ $i = var$12 + 1 | 0;
7366
+ var$15[var$11] = var$7[var$12];
7367
+ var$11 = var$17;
7368
+ var$12 = $i;
7369
+ }
7370
+ }
7371
+ while (true) {
7372
+ if ($i >= var$9)
7373
+ break a;
7374
+ var$15 = $second.data;
7375
+ var$17 = var$11 + 1 | 0;
7376
+ var$8 = $i + 1 | 0;
7377
+ var$15[var$11] = var$7[$i];
7378
+ var$11 = var$17;
7379
+ $i = var$8;
7380
+ }
7381
+ }
7382
+ $i = $i_0;
7383
+ }
7384
+ $chunkSize = $chunkSize * 2 | 0;
7385
+ var$15 = var$5;
7386
+ var$5 = $second;
7387
+ $second = var$15;
7388
+ }
7389
+ c: {
7390
+ if (var$5 !== $a) {
7391
+ $i_0 = 0;
7392
+ while (true) {
7393
+ $a = var$5.data;
7394
+ if ($i_0 >= $a.length)
7395
+ break c;
7396
+ $second.data[$i_0] = $a[$i_0];
7397
+ $i_0 = $i_0 + 1 | 0;
7398
+ }
7399
+ }
7400
+ }
7401
+ };
7402
+ var ju_Arrays_binarySearch = ($a, $key) => {
7403
+ let var$3, var$4, var$5, var$6, var$7;
7404
+ $a = $a.data;
7405
+ var$3 = 0;
7406
+ var$4 = $a.length;
7407
+ if (var$3 > var$4) {
7408
+ var$5 = new jl_IllegalArgumentException();
7409
+ jl_Throwable__init_(var$5);
7410
+ $rt_throw(var$5);
7411
+ }
7412
+ var$6 = var$4 - 1 | 0;
7413
+ a: {
7414
+ while (true) {
7415
+ if (var$3 > var$6) {
7416
+ var$4 = (-var$3 | 0) - 1 | 0;
7417
+ break a;
7418
+ }
7419
+ var$4 = (var$3 + var$6 | 0) / 2 | 0;
7420
+ var$7 = $a[var$4];
7421
+ if (var$7 == $key)
7422
+ break;
7423
+ if ($key >= var$7)
7424
+ var$3 = var$4 + 1 | 0;
7425
+ else
7426
+ var$6 = var$4 - 1 | 0;
7427
+ }
7428
+ }
7429
+ return var$4;
7430
+ };
7431
+ var ju_Arrays_stream = ($array) => {
7432
+ let var$2, var$3, var$4;
7433
+ var$2 = $array.data;
7434
+ var$3 = new jusi_ArrayStreamImpl();
7435
+ var$4 = var$2.length;
7436
+ var$3.$array6 = $array;
7437
+ var$3.$index1 = 0;
7438
+ var$3.$end1 = var$4;
7439
+ var$3.$size2 = var$4 - 0 | 0;
7440
+ return var$3;
7441
+ };
7587
7442
  var juf_ToIntFunction = $rt_classWithoutFields(0);
7588
7443
  var asr_JsRiscV$getRegistersValues$lambda$_25_0 = $rt_classWithoutFields();
7589
7444
  function jm_BigInteger() {
@@ -7958,6 +7813,154 @@ var jm_BigInteger__clinit_ = () => {
7958
7813
  $i = $i + 1 | 0;
7959
7814
  }
7960
7815
  };
7816
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0 = $rt_classWithoutFields();
7817
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_0_apply = (var$0, var$1) => {
7818
+ let var$2, var$3, var$4, var$5;
7819
+ var$1 = var$1;
7820
+ asr_JsRiscV_$callClinit();
7821
+ var$2 = $rt_createArray(asr_JsRiscVToken, asra_TokenList_size(var$1));
7822
+ var$3 = var$2.data;
7823
+ var$4 = 0;
7824
+ while (var$4 < asra_TokenList_size(var$1)) {
7825
+ var$3[var$4] = asr_JsRiscVToken__init_(asra_TokenList_get(var$1, var$4));
7826
+ var$4 = var$4 + 1 | 0;
7827
+ }
7828
+ var$5 = new asr_JsRiscVTokenizedLine();
7829
+ var$5.$line0 = var$1.$processedLine;
7830
+ var$5.$tokens0 = var$2;
7831
+ return var$5;
7832
+ };
7833
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1 = $rt_classWithoutFields();
7834
+ var asr_JsRiscV$getTokenizedLines$lambda$_5_1_apply = (var$0, var$1) => {
7835
+ asr_JsRiscV_$callClinit();
7836
+ return $rt_createArray(asr_JsRiscVTokenizedLine, var$1);
7837
+ };
7838
+ function asr_JsRiscVTokenizedLine() {
7839
+ let a = this;
7840
+ jl_Object.call(a);
7841
+ a.$line0 = null;
7842
+ a.$tokens0 = null;
7843
+ }
7844
+ var asr_JsRiscVTokenizedLine_getLine$exported$0 = (var$1) => {
7845
+ return $rt_ustr(var$1.$line0);
7846
+ };
7847
+ var asr_JsRiscVTokenizedLine_getTokens$exported$1 = (var$1) => {
7848
+ return otji_JS_wrap(var$1.$tokens0);
7849
+ };
7850
+ var asr_JsRiscV$getUndoStack$lambda$_26_0 = $rt_classWithoutFields();
7851
+ var asr_JsRiscV$getUndoStack$lambda$_26_0_apply = (var$0, var$1) => {
7852
+ let var$2, var$3;
7853
+ var$1 = var$1;
7854
+ var$2 = new asr_JsBackStep();
7855
+ var$3 = var$1.$action;
7856
+ var$2.$action0 = var$3 === null ? -1 : var$3.$ordinal0;
7857
+ var$2.$pc2 = var$1.$pc1;
7858
+ var$2.$param10 = var$1.$param1;
7859
+ var$2.$param20 = Long_lo(var$1.$param2);
7860
+ return var$2;
7861
+ };
7862
+ var asr_JsRiscV$getUndoStack$lambda$_26_1 = $rt_classWithoutFields();
7863
+ var asr_JsRiscV$getUndoStack$lambda$_26_1_apply = (var$0, var$1) => {
7864
+ asr_JsRiscV_$callClinit();
7865
+ return $rt_createArray(asr_JsBackStep, var$1);
7866
+ };
7867
+ function asr_JsBackStep() {
7868
+ let a = this;
7869
+ jl_Object.call(a);
7870
+ a.$action0 = 0;
7871
+ a.$pc2 = 0;
7872
+ a.$param10 = 0;
7873
+ a.$param20 = 0;
7874
+ }
7875
+ var asr_JsBackStep_getPc$exported$0 = (var$1) => {
7876
+ return var$1.$pc2;
7877
+ };
7878
+ var asr_JsBackStep_getParam2$exported$1 = (var$1) => {
7879
+ return var$1.$param20;
7880
+ };
7881
+ var asr_JsBackStep_getAction$exported$2 = (var$1) => {
7882
+ return var$1.$action0;
7883
+ };
7884
+ var asr_JsBackStep_getParam1$exported$3 = (var$1) => {
7885
+ return var$1.$param10;
7886
+ };
7887
+ function asr_JsProgramStatement() {
7888
+ let a = this;
7889
+ jl_Object.call(a);
7890
+ a.$sourceLine1 = 0;
7891
+ a.$address2 = 0;
7892
+ a.$binaryStatement0 = 0;
7893
+ a.$source3 = null;
7894
+ a.$assemblyStatement = null;
7895
+ a.$machineStatement0 = null;
7896
+ }
7897
+ var asr_JsProgramStatement__init_0 = ($this, $programStatement) => {
7898
+ let var$2, var$3, var$4, var$5, var$6;
7899
+ $this.$sourceLine1 = $programStatement.$sourceLine0;
7900
+ $this.$address2 = $programStatement.$textAddress0;
7901
+ $this.$binaryStatement0 = $programStatement.$binaryStatement;
7902
+ $this.$source3 = $programStatement.$source;
7903
+ var$2 = $programStatement.$basicStatementList;
7904
+ var$3 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7905
+ var$4 = !asr_Settings_getBooleanSetting(asr_Globals_getSettings(), asr_Settings$Bool_DISPLAY_ADDRESSES_IN_HEX) ? 10 : 16;
7906
+ var$5 = new jl_StringBuffer();
7907
+ jl_AbstractStringBuilder__init_(var$5);
7908
+ var$6 = ju_AbstractList_iterator(var$2.$list);
7909
+ while (ju_AbstractList$1_hasNext(var$6)) {
7910
+ a: {
7911
+ var$2 = ju_AbstractList$1_next(var$6);
7912
+ switch (var$2.$type3) {
7913
+ case 0:
7914
+ break;
7915
+ case 1:
7916
+ if (var$3 == 10) {
7917
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7918
+ break a;
7919
+ }
7920
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7921
+ break a;
7922
+ case 2:
7923
+ if (var$4 == 10) {
7924
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7925
+ break a;
7926
+ }
7927
+ jl_AbstractStringBuilder_append1(var$5, asru_Binary_intToHexString(var$2.$iValue));
7928
+ break a;
7929
+ case 3:
7930
+ jl_AbstractStringBuilder_append(var$5, var$2.$iValue);
7931
+ break a;
7932
+ default:
7933
+ break a;
7934
+ }
7935
+ jl_AbstractStringBuilder_append1(var$5, var$2.$sValue);
7936
+ }
7937
+ }
7938
+ $this.$assemblyStatement = jl_AbstractStringBuilder_toString(var$5);
7939
+ $this.$machineStatement0 = $programStatement.$machineStatement;
7940
+ };
7941
+ var asr_JsProgramStatement__init_ = (var_0) => {
7942
+ let var_1 = new asr_JsProgramStatement();
7943
+ asr_JsProgramStatement__init_0(var_1, var_0);
7944
+ return var_1;
7945
+ };
7946
+ var asr_JsProgramStatement_getSourceLine$exported$0 = (var$1) => {
7947
+ return var$1.$sourceLine1;
7948
+ };
7949
+ var asr_JsProgramStatement_getAssemblyStatement$exported$1 = (var$1) => {
7950
+ return $rt_ustr(var$1.$assemblyStatement);
7951
+ };
7952
+ var asr_JsProgramStatement_getSource$exported$2 = (var$1) => {
7953
+ return $rt_ustr(var$1.$source3);
7954
+ };
7955
+ var asr_JsProgramStatement_getAddress$exported$3 = (var$1) => {
7956
+ return var$1.$address2;
7957
+ };
7958
+ var asr_JsProgramStatement_getBinaryStatement$exported$4 = (var$1) => {
7959
+ return var$1.$binaryStatement0;
7960
+ };
7961
+ var asr_JsProgramStatement_getMachineStatement$exported$5 = (var$1) => {
7962
+ return $rt_ustr(var$1.$machineStatement0);
7963
+ };
7961
7964
  function asr_JsCompilationResult() {
7962
7965
  let a = this;
7963
7966
  jl_Object.call(a);
@@ -8588,125 +8591,100 @@ var asr_RISCVFile_getName = ($this) => {
8588
8591
  return $this.$name2;
8589
8592
  };
8590
8593
  var jl_StringIndexOutOfBoundsException = $rt_classWithoutFields(jl_IndexOutOfBoundsException);
8591
- function asrs_BackStepper() {
8594
+ function asrrh_Register() {
8592
8595
  let a = this;
8593
- jl_Object.call(a);
8594
- a.$engaged = 0;
8595
- a.$backSteps = null;
8596
+ ju_Observable.call(a);
8597
+ a.$name1 = null;
8598
+ a.$number = 0;
8599
+ a.$resetValue0 = Long_ZERO;
8600
+ a.$value2 = Long_ZERO;
8596
8601
  }
8597
- var asrs_BackStepper_pc = ($this) => {
8598
- return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
8602
+ var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8603
+ ju_Observable__init_($this);
8604
+ $this.$name1 = $n;
8605
+ $this.$number = $num;
8606
+ $this.$value2 = $val;
8607
+ $this.$resetValue0 = $val;
8599
8608
  };
8600
- var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value) => {
8601
- asrs_BackStepper$BackstepStack_push($this.$backSteps, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value);
8602
- return $value;
8609
+ var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8610
+ let var_3 = new asrrh_Register();
8611
+ asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8612
+ return var_3;
8603
8613
  };
8604
- var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8605
- if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8606
- asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8614
+ var asrrh_Register_getName = ($this) => {
8615
+ return $this.$name1;
8607
8616
  };
8608
- function asrs_BackStepper$BackstepStack() {
8609
- let a = this;
8610
- jl_Object.call(a);
8611
- a.$capacity = 0;
8612
- a.$size1 = 0;
8613
- a.$top = 0;
8614
- a.$stack = null;
8615
- a.$this$015 = null;
8616
- }
8617
- var asrs_BackStepper$BackstepStack_empty = ($this) => {
8617
+ var asrrh_Register_getValue = ($this) => {
8618
8618
  jl_Object_monitorEnterSync($this);
8619
8619
  try {
8620
- return $this.$size1 ? 0 : 1;
8620
+ asrrh_Register_notifyAnyObservers($this, 0);
8621
+ return $this.$value2;
8621
8622
  } finally {
8622
8623
  jl_Object_monitorExitSync($this);
8623
8624
  }
8624
8625
  };
8625
- var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2) => {
8626
- let var$5, var$6, var$7, $$je;
8626
+ var asrrh_Register_getValueNoNotify = ($this) => {
8627
8627
  jl_Object_monitorEnterSync($this);
8628
8628
  try {
8629
- var$5 = $this.$size1;
8630
- if (!var$5) {
8631
- $this.$top = 0;
8632
- $this.$size1 = var$5 + 1 | 0;
8633
- } else {
8634
- var$6 = $this.$capacity;
8635
- if (var$5 >= var$6)
8636
- $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8637
- else {
8638
- $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8639
- $this.$size1 = var$5 + 1 | 0;
8640
- }
8641
- }
8642
- var$7 = $this.$stack.data[$this.$top];
8643
- var$7.$action = $act;
8644
- var$7.$pc1 = $programCounter;
8645
- a: {
8646
- try {
8647
- asr_Globals_$callClinit();
8648
- var$7.$ps = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
8649
- break a;
8650
- } catch ($$e) {
8651
- $$je = $rt_wrapException($$e);
8652
- if ($$je instanceof jl_Exception) {
8653
- } else {
8654
- throw $$e;
8655
- }
8656
- }
8657
- var$7.$ps = null;
8658
- var$7.$pc1 = -1;
8659
- }
8660
- var$7.$param1 = $parm1;
8661
- var$7.$param2 = $parm2;
8629
+ return $this.$value2;
8662
8630
  } finally {
8663
8631
  jl_Object_monitorExitSync($this);
8664
8632
  }
8665
8633
  };
8666
- var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1) => {
8634
+ var asrrh_Register_getNumber = ($this) => {
8635
+ return $this.$number;
8636
+ };
8637
+ var asrrh_Register_setValue = ($this, $val) => {
8638
+ let $old;
8667
8639
  jl_Object_monitorEnterSync($this);
8668
8640
  try {
8669
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, Long_ZERO);
8641
+ $old = $this.$value2;
8642
+ $this.$value2 = $val;
8643
+ asrrh_Register_notifyAnyObservers($this, 1);
8644
+ return $old;
8670
8645
  } finally {
8671
8646
  jl_Object_monitorExitSync($this);
8672
8647
  }
8673
8648
  };
8674
- var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
8649
+ var asrrh_Register_setValueBackdoor = ($this, $val) => {
8650
+ let $old;
8675
8651
  jl_Object_monitorEnterSync($this);
8676
8652
  try {
8677
- asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, 0, Long_ZERO);
8653
+ $old = $this.$value2;
8654
+ $this.$value2 = $val;
8655
+ return $old;
8678
8656
  } finally {
8679
8657
  jl_Object_monitorExitSync($this);
8680
8658
  }
8681
8659
  };
8682
- var asrs_BackStepper$BackstepStack_pop = ($this) => {
8683
- let var$1, var$2, $bs, var$4, var$5;
8660
+ var asrrh_Register_resetValue = ($this) => {
8684
8661
  jl_Object_monitorEnterSync($this);
8685
8662
  try {
8686
- var$1 = $this.$stack.data;
8687
- var$2 = $this.$top;
8688
- $bs = var$1[var$2];
8689
- var$4 = $this.$size1;
8690
- if (var$4 == 1)
8691
- $this.$top = -1;
8692
- else {
8693
- var$5 = $this.$capacity;
8694
- $this.$top = ((var$2 + var$5 | 0) - 1 | 0) % var$5 | 0;
8695
- }
8696
- $this.$size1 = var$4 - 1 | 0;
8697
- return $bs;
8663
+ $this.$value2 = $this.$resetValue0;
8698
8664
  } finally {
8699
8665
  jl_Object_monitorExitSync($this);
8700
8666
  }
8701
8667
  };
8702
- var asrs_BackStepper$BackstepStack_peek = ($this) => {
8668
+ var asrrh_Register_changeResetValue = ($this, $reset) => {
8703
8669
  jl_Object_monitorEnterSync($this);
8704
8670
  try {
8705
- return $this.$stack.data[$this.$top];
8671
+ $this.$resetValue0 = $reset;
8706
8672
  } finally {
8707
8673
  jl_Object_monitorExitSync($this);
8708
8674
  }
8709
8675
  };
8676
+ var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8677
+ let var$2, var$3, var$4;
8678
+ var$2 = $this;
8679
+ if (ju_Observable_countObservers(var$2) > 0) {
8680
+ ju_Observable_setChanged(var$2);
8681
+ var$3 = new asrrh_RegisterAccessNotice();
8682
+ var$4 = $this.$name1;
8683
+ asrrh_AccessNotice__init_(var$3, $type);
8684
+ var$3.$registerName = var$4;
8685
+ ju_Observable_notifyObservers(var$2, var$3);
8686
+ }
8687
+ };
8710
8688
  var jl_AutoCloseable = $rt_classWithoutFields(0);
8711
8689
  var jus_BaseStream = $rt_classWithoutFields(0);
8712
8690
  var jus_Stream = $rt_classWithoutFields(0);
@@ -8805,100 +8783,125 @@ var jusi_ArrayStreamImpl_next = ($this, $consumer) => {
8805
8783
  var jusi_ArrayStreamImpl_estimateSize = ($this) => {
8806
8784
  return $this.$size2;
8807
8785
  };
8808
- function asrrh_Register() {
8786
+ function asrs_BackStepper() {
8809
8787
  let a = this;
8810
- ju_Observable.call(a);
8811
- a.$name1 = null;
8812
- a.$number = 0;
8813
- a.$resetValue0 = Long_ZERO;
8814
- a.$value2 = Long_ZERO;
8788
+ jl_Object.call(a);
8789
+ a.$engaged = 0;
8790
+ a.$backSteps = null;
8815
8791
  }
8816
- var asrrh_Register__init_0 = ($this, $n, $num, $val) => {
8817
- ju_Observable__init_($this);
8818
- $this.$name1 = $n;
8819
- $this.$number = $num;
8820
- $this.$value2 = $val;
8821
- $this.$resetValue0 = $val;
8792
+ var asrs_BackStepper_pc = ($this) => {
8793
+ return asrrh_RegisterFile_getProgramCounter() - 4 | 0;
8822
8794
  };
8823
- var asrrh_Register__init_ = (var_0, var_1, var_2) => {
8824
- let var_3 = new asrrh_Register();
8825
- asrrh_Register__init_0(var_3, var_0, var_1, var_2);
8826
- return var_3;
8795
+ var asrs_BackStepper_addFloatingPointRestore = ($this, $register, $value) => {
8796
+ asrs_BackStepper$BackstepStack_push($this.$backSteps, asrs_BackStepper$Action_FLOATING_POINT_REGISTER_RESTORE, asrs_BackStepper_pc($this), $register, $value);
8797
+ return $value;
8827
8798
  };
8828
- var asrrh_Register_getName = ($this) => {
8829
- return $this.$name1;
8799
+ var asrs_BackStepper_addDoNothing = ($this, $pc) => {
8800
+ if (!(!asrs_BackStepper$BackstepStack_empty($this.$backSteps) && asrs_BackStepper$BackstepStack_peek($this.$backSteps).$pc1 == $pc))
8801
+ asrs_BackStepper$BackstepStack_push1($this.$backSteps, asrs_BackStepper$Action_DO_NOTHING, $pc);
8830
8802
  };
8831
- var asrrh_Register_getValue = ($this) => {
8803
+ function asrs_BackStepper$BackstepStack() {
8804
+ let a = this;
8805
+ jl_Object.call(a);
8806
+ a.$capacity = 0;
8807
+ a.$size1 = 0;
8808
+ a.$top = 0;
8809
+ a.$stack = null;
8810
+ a.$this$015 = null;
8811
+ }
8812
+ var asrs_BackStepper$BackstepStack_empty = ($this) => {
8832
8813
  jl_Object_monitorEnterSync($this);
8833
8814
  try {
8834
- asrrh_Register_notifyAnyObservers($this, 0);
8835
- return $this.$value2;
8815
+ return $this.$size1 ? 0 : 1;
8836
8816
  } finally {
8837
8817
  jl_Object_monitorExitSync($this);
8838
8818
  }
8839
8819
  };
8840
- var asrrh_Register_getValueNoNotify = ($this) => {
8820
+ var asrs_BackStepper$BackstepStack_push = ($this, $act, $programCounter, $parm1, $parm2) => {
8821
+ let var$5, var$6, var$7, $$je;
8841
8822
  jl_Object_monitorEnterSync($this);
8842
8823
  try {
8843
- return $this.$value2;
8824
+ var$5 = $this.$size1;
8825
+ if (!var$5) {
8826
+ $this.$top = 0;
8827
+ $this.$size1 = var$5 + 1 | 0;
8828
+ } else {
8829
+ var$6 = $this.$capacity;
8830
+ if (var$5 >= var$6)
8831
+ $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8832
+ else {
8833
+ $this.$top = ($this.$top + 1 | 0) % var$6 | 0;
8834
+ $this.$size1 = var$5 + 1 | 0;
8835
+ }
8836
+ }
8837
+ var$7 = $this.$stack.data[$this.$top];
8838
+ var$7.$action = $act;
8839
+ var$7.$pc1 = $programCounter;
8840
+ a: {
8841
+ try {
8842
+ asr_Globals_$callClinit();
8843
+ var$7.$ps = asrrh_Memory_getStatementNoNotify(asr_Globals_memory, $programCounter);
8844
+ break a;
8845
+ } catch ($$e) {
8846
+ $$je = $rt_wrapException($$e);
8847
+ if ($$je instanceof jl_Exception) {
8848
+ } else {
8849
+ throw $$e;
8850
+ }
8851
+ }
8852
+ var$7.$ps = null;
8853
+ var$7.$pc1 = -1;
8854
+ }
8855
+ var$7.$param1 = $parm1;
8856
+ var$7.$param2 = $parm2;
8844
8857
  } finally {
8845
8858
  jl_Object_monitorExitSync($this);
8846
8859
  }
8847
8860
  };
8848
- var asrrh_Register_getNumber = ($this) => {
8849
- return $this.$number;
8850
- };
8851
- var asrrh_Register_setValue = ($this, $val) => {
8852
- let $old;
8861
+ var asrs_BackStepper$BackstepStack_push0 = ($this, $act, $programCounter, $parm1) => {
8853
8862
  jl_Object_monitorEnterSync($this);
8854
8863
  try {
8855
- $old = $this.$value2;
8856
- $this.$value2 = $val;
8857
- asrrh_Register_notifyAnyObservers($this, 1);
8858
- return $old;
8864
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, $parm1, Long_ZERO);
8859
8865
  } finally {
8860
8866
  jl_Object_monitorExitSync($this);
8861
8867
  }
8862
8868
  };
8863
- var asrrh_Register_setValueBackdoor = ($this, $val) => {
8864
- let $old;
8869
+ var asrs_BackStepper$BackstepStack_push1 = ($this, $act, $programCounter) => {
8865
8870
  jl_Object_monitorEnterSync($this);
8866
8871
  try {
8867
- $old = $this.$value2;
8868
- $this.$value2 = $val;
8869
- return $old;
8872
+ asrs_BackStepper$BackstepStack_push($this, $act, $programCounter, 0, Long_ZERO);
8870
8873
  } finally {
8871
8874
  jl_Object_monitorExitSync($this);
8872
8875
  }
8873
8876
  };
8874
- var asrrh_Register_resetValue = ($this) => {
8877
+ var asrs_BackStepper$BackstepStack_pop = ($this) => {
8878
+ let var$1, var$2, $bs, var$4, var$5;
8875
8879
  jl_Object_monitorEnterSync($this);
8876
8880
  try {
8877
- $this.$value2 = $this.$resetValue0;
8881
+ var$1 = $this.$stack.data;
8882
+ var$2 = $this.$top;
8883
+ $bs = var$1[var$2];
8884
+ var$4 = $this.$size1;
8885
+ if (var$4 == 1)
8886
+ $this.$top = -1;
8887
+ else {
8888
+ var$5 = $this.$capacity;
8889
+ $this.$top = ((var$2 + var$5 | 0) - 1 | 0) % var$5 | 0;
8890
+ }
8891
+ $this.$size1 = var$4 - 1 | 0;
8892
+ return $bs;
8878
8893
  } finally {
8879
8894
  jl_Object_monitorExitSync($this);
8880
8895
  }
8881
8896
  };
8882
- var asrrh_Register_changeResetValue = ($this, $reset) => {
8897
+ var asrs_BackStepper$BackstepStack_peek = ($this) => {
8883
8898
  jl_Object_monitorEnterSync($this);
8884
8899
  try {
8885
- $this.$resetValue0 = $reset;
8900
+ return $this.$stack.data[$this.$top];
8886
8901
  } finally {
8887
8902
  jl_Object_monitorExitSync($this);
8888
8903
  }
8889
8904
  };
8890
- var asrrh_Register_notifyAnyObservers = ($this, $type) => {
8891
- let var$2, var$3, var$4;
8892
- var$2 = $this;
8893
- if (ju_Observable_countObservers(var$2) > 0) {
8894
- ju_Observable_setChanged(var$2);
8895
- var$3 = new asrrh_RegisterAccessNotice();
8896
- var$4 = $this.$name1;
8897
- asrrh_AccessNotice__init_(var$3, $type);
8898
- var$3.$registerName = var$4;
8899
- ju_Observable_notifyObservers(var$2, var$3);
8900
- }
8901
- };
8902
8905
  function asr_JsCompilationResult$_init_$lambda$_0_0() {
8903
8906
  jl_Object.call(this);
8904
8907
  this.$_06 = null;
@@ -13962,6 +13965,22 @@ var jusi_StreamOverSpliterator_next = ($this, $consumer) => {
13962
13965
  var jusi_StreamOverSpliterator_estimateSize = ($this) => {
13963
13966
  return Long_lo(Long_fromInt($this.$spliterator0.$collection.$size()));
13964
13967
  };
13968
+ var jus_IntStream = $rt_classWithoutFields(0);
13969
+ var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13970
+ function jusi_MappingToIntStreamImpl() {
13971
+ let a = this;
13972
+ jusi_SimpleIntStreamImpl.call(a);
13973
+ a.$source1 = null;
13974
+ a.$mapper0 = null;
13975
+ }
13976
+ var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13977
+ let var$2, var$3;
13978
+ var$2 = $this.$source1;
13979
+ var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13980
+ var$3.$_09 = $this;
13981
+ var$3.$_13 = $consumer;
13982
+ return jusi_ArrayStreamImpl_next(var$2, var$3);
13983
+ };
13965
13984
  function jusi_WrappingStreamImpl() {
13966
13985
  jusi_SimpleStreamImpl.call(this);
13967
13986
  this.$sourceStream = null;
@@ -13983,22 +14002,6 @@ var jusi_MappingStreamImpl_wrap = ($this, $consumer) => {
13983
14002
  var$2.$_10 = $consumer;
13984
14003
  return var$2;
13985
14004
  };
13986
- var jus_IntStream = $rt_classWithoutFields(0);
13987
- var jusi_SimpleIntStreamImpl = $rt_classWithoutFields();
13988
- function jusi_MappingToIntStreamImpl() {
13989
- let a = this;
13990
- jusi_SimpleIntStreamImpl.call(a);
13991
- a.$source1 = null;
13992
- a.$mapper0 = null;
13993
- }
13994
- var jusi_MappingToIntStreamImpl_next = ($this, $consumer) => {
13995
- let var$2, var$3;
13996
- var$2 = $this.$source1;
13997
- var$3 = new jusi_MappingToIntStreamImpl$next$lambda$_1_0();
13998
- var$3.$_09 = $this;
13999
- var$3.$_13 = $consumer;
14000
- return jusi_ArrayStreamImpl_next(var$2, var$3);
14001
- };
14002
14005
  var jm_Conversion = $rt_classWithoutFields();
14003
14006
  var jm_Conversion_digitFitInInt = null;
14004
14007
  var jm_Conversion_bigRadices = null;
@@ -14445,52 +14448,6 @@ var ju_AbstractList$1_next = ($this) => {
14445
14448
  $this.$index4 = var$3 + 1 | 0;
14446
14449
  return var$2.$get0(var$3);
14447
14450
  };
14448
- var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14449
- var asrs_Simulator$Reason_BREAKPOINT = null;
14450
- var asrs_Simulator$Reason_EXCEPTION = null;
14451
- var asrs_Simulator$Reason_MAX_STEPS = null;
14452
- var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
14453
- var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
14454
- var asrs_Simulator$Reason_PAUSE = null;
14455
- var asrs_Simulator$Reason_STOP = null;
14456
- var asrs_Simulator$Reason_$VALUES = null;
14457
- var asrs_Simulator$Reason_values = () => {
14458
- return asrs_Simulator$Reason_$VALUES.$clone0();
14459
- };
14460
- var asrs_Simulator$Reason__clinit_ = () => {
14461
- let var$1, var$2, var$3;
14462
- var$1 = new asrs_Simulator$Reason();
14463
- jl_Enum__init_(var$1, $rt_s(1091), 0);
14464
- asrs_Simulator$Reason_BREAKPOINT = var$1;
14465
- var$1 = new asrs_Simulator$Reason();
14466
- jl_Enum__init_(var$1, $rt_s(1092), 1);
14467
- asrs_Simulator$Reason_EXCEPTION = var$1;
14468
- var$1 = new asrs_Simulator$Reason();
14469
- jl_Enum__init_(var$1, $rt_s(1093), 2);
14470
- asrs_Simulator$Reason_MAX_STEPS = var$1;
14471
- var$1 = new asrs_Simulator$Reason();
14472
- jl_Enum__init_(var$1, $rt_s(1094), 3);
14473
- asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14474
- var$1 = new asrs_Simulator$Reason();
14475
- jl_Enum__init_(var$1, $rt_s(1095), 4);
14476
- asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14477
- var$1 = new asrs_Simulator$Reason();
14478
- jl_Enum__init_(var$1, $rt_s(1096), 5);
14479
- asrs_Simulator$Reason_PAUSE = var$1;
14480
- var$1 = new asrs_Simulator$Reason();
14481
- jl_Enum__init_(var$1, $rt_s(1097), 6);
14482
- asrs_Simulator$Reason_STOP = var$1;
14483
- var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14484
- var$3 = var$2.data;
14485
- var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
14486
- var$3[1] = asrs_Simulator$Reason_EXCEPTION;
14487
- var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
14488
- var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
14489
- var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
14490
- var$3[5] = asrs_Simulator$Reason_PAUSE;
14491
- var$3[6] = var$1;
14492
- asrs_Simulator$Reason_$VALUES = var$2;
14493
- };
14494
14451
  var asrrh_FloatingPointRegisterFile = $rt_classWithoutFields();
14495
14452
  var asrrh_FloatingPointRegisterFile_instance = null;
14496
14453
  var asrrh_FloatingPointRegisterFile_setRegisterToFloat = ($reg, $val) => {
@@ -14535,38 +14492,38 @@ var asrrh_FloatingPointRegisterFile__clinit_ = () => {
14535
14492
  var$1 = new asrrh_RegisterBlock();
14536
14493
  var$2 = $rt_createArray(asrrh_Register, 32);
14537
14494
  var$3 = var$2.data;
14538
- var$3[0] = asrrh_Register__init_($rt_s(1098), 0, Long_ZERO);
14539
- var$3[1] = asrrh_Register__init_($rt_s(1099), 1, Long_ZERO);
14540
- var$3[2] = asrrh_Register__init_($rt_s(1100), 2, Long_ZERO);
14541
- var$3[3] = asrrh_Register__init_($rt_s(1101), 3, Long_ZERO);
14542
- var$3[4] = asrrh_Register__init_($rt_s(1102), 4, Long_ZERO);
14543
- var$3[5] = asrrh_Register__init_($rt_s(1103), 5, Long_ZERO);
14544
- var$3[6] = asrrh_Register__init_($rt_s(1104), 6, Long_ZERO);
14545
- var$3[7] = asrrh_Register__init_($rt_s(1105), 7, Long_ZERO);
14546
- var$3[8] = asrrh_Register__init_($rt_s(1106), 8, Long_ZERO);
14547
- var$3[9] = asrrh_Register__init_($rt_s(1107), 9, Long_ZERO);
14495
+ var$3[0] = asrrh_Register__init_($rt_s(1091), 0, Long_ZERO);
14496
+ var$3[1] = asrrh_Register__init_($rt_s(1092), 1, Long_ZERO);
14497
+ var$3[2] = asrrh_Register__init_($rt_s(1093), 2, Long_ZERO);
14498
+ var$3[3] = asrrh_Register__init_($rt_s(1094), 3, Long_ZERO);
14499
+ var$3[4] = asrrh_Register__init_($rt_s(1095), 4, Long_ZERO);
14500
+ var$3[5] = asrrh_Register__init_($rt_s(1096), 5, Long_ZERO);
14501
+ var$3[6] = asrrh_Register__init_($rt_s(1097), 6, Long_ZERO);
14502
+ var$3[7] = asrrh_Register__init_($rt_s(1098), 7, Long_ZERO);
14503
+ var$3[8] = asrrh_Register__init_($rt_s(1099), 8, Long_ZERO);
14504
+ var$3[9] = asrrh_Register__init_($rt_s(1100), 9, Long_ZERO);
14548
14505
  var$3[10] = asrrh_Register__init_($rt_s(1042), 10, Long_ZERO);
14549
14506
  var$3[11] = asrrh_Register__init_($rt_s(1036), 11, Long_ZERO);
14550
- var$3[12] = asrrh_Register__init_($rt_s(1108), 12, Long_ZERO);
14551
- var$3[13] = asrrh_Register__init_($rt_s(1109), 13, Long_ZERO);
14552
- var$3[14] = asrrh_Register__init_($rt_s(1110), 14, Long_ZERO);
14553
- var$3[15] = asrrh_Register__init_($rt_s(1111), 15, Long_ZERO);
14554
- var$3[16] = asrrh_Register__init_($rt_s(1112), 16, Long_ZERO);
14555
- var$3[17] = asrrh_Register__init_($rt_s(1113), 17, Long_ZERO);
14556
- var$3[18] = asrrh_Register__init_($rt_s(1114), 18, Long_ZERO);
14557
- var$3[19] = asrrh_Register__init_($rt_s(1115), 19, Long_ZERO);
14558
- var$3[20] = asrrh_Register__init_($rt_s(1116), 20, Long_ZERO);
14559
- var$3[21] = asrrh_Register__init_($rt_s(1117), 21, Long_ZERO);
14560
- var$3[22] = asrrh_Register__init_($rt_s(1118), 22, Long_ZERO);
14561
- var$3[23] = asrrh_Register__init_($rt_s(1119), 23, Long_ZERO);
14562
- var$3[24] = asrrh_Register__init_($rt_s(1120), 24, Long_ZERO);
14563
- var$3[25] = asrrh_Register__init_($rt_s(1121), 25, Long_ZERO);
14564
- var$3[26] = asrrh_Register__init_($rt_s(1122), 26, Long_ZERO);
14565
- var$3[27] = asrrh_Register__init_($rt_s(1123), 27, Long_ZERO);
14566
- var$3[28] = asrrh_Register__init_($rt_s(1124), 28, Long_ZERO);
14567
- var$3[29] = asrrh_Register__init_($rt_s(1125), 29, Long_ZERO);
14568
- var$3[30] = asrrh_Register__init_($rt_s(1126), 30, Long_ZERO);
14569
- var$3[31] = asrrh_Register__init_($rt_s(1127), 31, Long_ZERO);
14507
+ var$3[12] = asrrh_Register__init_($rt_s(1101), 12, Long_ZERO);
14508
+ var$3[13] = asrrh_Register__init_($rt_s(1102), 13, Long_ZERO);
14509
+ var$3[14] = asrrh_Register__init_($rt_s(1103), 14, Long_ZERO);
14510
+ var$3[15] = asrrh_Register__init_($rt_s(1104), 15, Long_ZERO);
14511
+ var$3[16] = asrrh_Register__init_($rt_s(1105), 16, Long_ZERO);
14512
+ var$3[17] = asrrh_Register__init_($rt_s(1106), 17, Long_ZERO);
14513
+ var$3[18] = asrrh_Register__init_($rt_s(1107), 18, Long_ZERO);
14514
+ var$3[19] = asrrh_Register__init_($rt_s(1108), 19, Long_ZERO);
14515
+ var$3[20] = asrrh_Register__init_($rt_s(1109), 20, Long_ZERO);
14516
+ var$3[21] = asrrh_Register__init_($rt_s(1110), 21, Long_ZERO);
14517
+ var$3[22] = asrrh_Register__init_($rt_s(1111), 22, Long_ZERO);
14518
+ var$3[23] = asrrh_Register__init_($rt_s(1112), 23, Long_ZERO);
14519
+ var$3[24] = asrrh_Register__init_($rt_s(1113), 24, Long_ZERO);
14520
+ var$3[25] = asrrh_Register__init_($rt_s(1114), 25, Long_ZERO);
14521
+ var$3[26] = asrrh_Register__init_($rt_s(1115), 26, Long_ZERO);
14522
+ var$3[27] = asrrh_Register__init_($rt_s(1116), 27, Long_ZERO);
14523
+ var$3[28] = asrrh_Register__init_($rt_s(1117), 28, Long_ZERO);
14524
+ var$3[29] = asrrh_Register__init_($rt_s(1118), 29, Long_ZERO);
14525
+ var$3[30] = asrrh_Register__init_($rt_s(1119), 30, Long_ZERO);
14526
+ var$3[31] = asrrh_Register__init_($rt_s(1120), 31, Long_ZERO);
14570
14527
  asrrh_RegisterBlock__init_(var$1, 102, var$2);
14571
14528
  asrrh_FloatingPointRegisterFile_instance = var$1;
14572
14529
  };
@@ -14634,25 +14591,25 @@ var asrrh_ControlAndStatusRegisterFile__clinit_ = () => {
14634
14591
  var$2[0] = asrrh_MaskedRegister__init_($rt_s(679), 0, Long_ZERO, Long_fromInt(-18));
14635
14592
  var$2[1] = null;
14636
14593
  var$2[2] = null;
14637
- var$2[3] = asrrh_MaskedRegister__init_($rt_s(1128), 3, Long_ZERO, Long_fromInt(-256));
14638
- var$2[4] = asrrh_Register__init_($rt_s(1129), 4, Long_ZERO);
14639
- var$2[5] = asrrh_Register__init_($rt_s(1130), 5, Long_ZERO);
14640
- var$2[6] = asrrh_Register__init_($rt_s(1131), 64, Long_ZERO);
14594
+ var$2[3] = asrrh_MaskedRegister__init_($rt_s(1121), 3, Long_ZERO, Long_fromInt(-256));
14595
+ var$2[4] = asrrh_Register__init_($rt_s(1122), 4, Long_ZERO);
14596
+ var$2[5] = asrrh_Register__init_($rt_s(1123), 5, Long_ZERO);
14597
+ var$2[6] = asrrh_Register__init_($rt_s(1124), 64, Long_ZERO);
14641
14598
  var$2[7] = asrrh_Register__init_($rt_s(680), 65, Long_ZERO);
14642
- var$2[8] = asrrh_Register__init_($rt_s(1132), 66, Long_ZERO);
14643
- var$2[9] = asrrh_Register__init_($rt_s(1133), 67, Long_ZERO);
14644
- var$2[10] = asrrh_Register__init_($rt_s(1134), 68, Long_ZERO);
14645
- var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1135), 3072, 0);
14646
- var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1136), 3073, 0);
14647
- var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1137), 3074, 0);
14599
+ var$2[8] = asrrh_Register__init_($rt_s(1125), 66, Long_ZERO);
14600
+ var$2[9] = asrrh_Register__init_($rt_s(1126), 67, Long_ZERO);
14601
+ var$2[10] = asrrh_Register__init_($rt_s(1127), 68, Long_ZERO);
14602
+ var$2[11] = asrrh_ReadOnlyRegister__init_($rt_s(1128), 3072, 0);
14603
+ var$2[12] = asrrh_ReadOnlyRegister__init_($rt_s(1129), 3073, 0);
14604
+ var$2[13] = asrrh_ReadOnlyRegister__init_($rt_s(1130), 3074, 0);
14648
14605
  var$2[14] = null;
14649
14606
  var$2[15] = null;
14650
14607
  var$2[16] = null;
14651
14608
  var$2[1] = asrrh_LinkedRegister__init_($rt_s(446), 1, var$2[3], Long_fromInt(31));
14652
14609
  var$2[2] = asrrh_LinkedRegister__init_($rt_s(447), 2, var$2[3], Long_fromInt(224));
14653
- var$2[14] = asrrh_LinkedRegister__init_($rt_s(1138), 3200, var$2[11], Long_create(0, 4294967295));
14654
- var$2[15] = asrrh_LinkedRegister__init_($rt_s(1139), 3201, var$2[12], Long_create(0, 4294967295));
14655
- var$2[16] = asrrh_LinkedRegister__init_($rt_s(1140), 3202, var$2[13], Long_create(0, 4294967295));
14610
+ var$2[14] = asrrh_LinkedRegister__init_($rt_s(1131), 3200, var$2[11], Long_create(0, 4294967295));
14611
+ var$2[15] = asrrh_LinkedRegister__init_($rt_s(1132), 3201, var$2[12], Long_create(0, 4294967295));
14612
+ var$2[16] = asrrh_LinkedRegister__init_($rt_s(1133), 3202, var$2[13], Long_create(0, 4294967295));
14656
14613
  asrrh_ControlAndStatusRegisterFile_instance = asrrh_RegisterBlock__init_0(95, $tmp_0);
14657
14614
  };
14658
14615
  var asrrh_InterruptController = $rt_classWithoutFields();
@@ -14758,7 +14715,7 @@ var asrrh_InterruptController_claimExternal = () => {
14758
14715
  a: {
14759
14716
  try {
14760
14717
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_externalPending)
14761
- $rt_throw(jl_AssertionError__init_($rt_s(1141)));
14718
+ $rt_throw(jl_AssertionError__init_($rt_s(1134)));
14762
14719
  asrrh_InterruptController_externalPending = 0;
14763
14720
  var$2 = asrrh_InterruptController_externalValue;
14764
14721
  jl_Object_monitorExitSync(var$1);
@@ -14779,7 +14736,7 @@ var asrrh_InterruptController_claimTimer = () => {
14779
14736
  a: {
14780
14737
  try {
14781
14738
  if (!asrrh_InterruptController_$assertionsDisabled && !asrrh_InterruptController_timerPending)
14782
- $rt_throw(jl_AssertionError__init_($rt_s(1142)));
14739
+ $rt_throw(jl_AssertionError__init_($rt_s(1135)));
14783
14740
  asrrh_InterruptController_timerPending = 0;
14784
14741
  var$2 = asrrh_InterruptController_timerValue;
14785
14742
  jl_Object_monitorExitSync(var$1);
@@ -14801,9 +14758,9 @@ var asrrh_InterruptController_claimTrap = () => {
14801
14758
  try {
14802
14759
  var$2 = asrrh_InterruptController_$assertionsDisabled;
14803
14760
  if (!var$2 && !asrrh_InterruptController_trapPending)
14804
- $rt_throw(jl_AssertionError__init_($rt_s(1143)));
14761
+ $rt_throw(jl_AssertionError__init_($rt_s(1136)));
14805
14762
  if (!var$2 && asrrh_InterruptController_trapPC != (asrrh_RegisterFile_getProgramCounter() - 4 | 0))
14806
- $rt_throw(jl_AssertionError__init_($rt_s(1144)));
14763
+ $rt_throw(jl_AssertionError__init_($rt_s(1137)));
14807
14764
  asrrh_InterruptController_trapPending = 0;
14808
14765
  var$3 = asrrh_InterruptController_trapSE;
14809
14766
  jl_Object_monitorExitSync(var$1);
@@ -14861,6 +14818,52 @@ var jlr_Array_newInstanceImpl = (var$1, var$2) => {
14861
14818
  }
14862
14819
  return $rt_createArray(var$1, var$2);
14863
14820
  };
14821
+ var asrs_Simulator$Reason = $rt_classWithoutFields(jl_Enum);
14822
+ var asrs_Simulator$Reason_BREAKPOINT = null;
14823
+ var asrs_Simulator$Reason_EXCEPTION = null;
14824
+ var asrs_Simulator$Reason_MAX_STEPS = null;
14825
+ var asrs_Simulator$Reason_NORMAL_TERMINATION = null;
14826
+ var asrs_Simulator$Reason_CLIFF_TERMINATION = null;
14827
+ var asrs_Simulator$Reason_PAUSE = null;
14828
+ var asrs_Simulator$Reason_STOP = null;
14829
+ var asrs_Simulator$Reason_$VALUES = null;
14830
+ var asrs_Simulator$Reason_values = () => {
14831
+ return asrs_Simulator$Reason_$VALUES.$clone0();
14832
+ };
14833
+ var asrs_Simulator$Reason__clinit_ = () => {
14834
+ let var$1, var$2, var$3;
14835
+ var$1 = new asrs_Simulator$Reason();
14836
+ jl_Enum__init_(var$1, $rt_s(1138), 0);
14837
+ asrs_Simulator$Reason_BREAKPOINT = var$1;
14838
+ var$1 = new asrs_Simulator$Reason();
14839
+ jl_Enum__init_(var$1, $rt_s(1139), 1);
14840
+ asrs_Simulator$Reason_EXCEPTION = var$1;
14841
+ var$1 = new asrs_Simulator$Reason();
14842
+ jl_Enum__init_(var$1, $rt_s(1140), 2);
14843
+ asrs_Simulator$Reason_MAX_STEPS = var$1;
14844
+ var$1 = new asrs_Simulator$Reason();
14845
+ jl_Enum__init_(var$1, $rt_s(1141), 3);
14846
+ asrs_Simulator$Reason_NORMAL_TERMINATION = var$1;
14847
+ var$1 = new asrs_Simulator$Reason();
14848
+ jl_Enum__init_(var$1, $rt_s(1142), 4);
14849
+ asrs_Simulator$Reason_CLIFF_TERMINATION = var$1;
14850
+ var$1 = new asrs_Simulator$Reason();
14851
+ jl_Enum__init_(var$1, $rt_s(1143), 5);
14852
+ asrs_Simulator$Reason_PAUSE = var$1;
14853
+ var$1 = new asrs_Simulator$Reason();
14854
+ jl_Enum__init_(var$1, $rt_s(1144), 6);
14855
+ asrs_Simulator$Reason_STOP = var$1;
14856
+ var$2 = $rt_createArray(asrs_Simulator$Reason, 7);
14857
+ var$3 = var$2.data;
14858
+ var$3[0] = asrs_Simulator$Reason_BREAKPOINT;
14859
+ var$3[1] = asrs_Simulator$Reason_EXCEPTION;
14860
+ var$3[2] = asrs_Simulator$Reason_MAX_STEPS;
14861
+ var$3[3] = asrs_Simulator$Reason_NORMAL_TERMINATION;
14862
+ var$3[4] = asrs_Simulator$Reason_CLIFF_TERMINATION;
14863
+ var$3[5] = asrs_Simulator$Reason_PAUSE;
14864
+ var$3[6] = var$1;
14865
+ asrs_Simulator$Reason_$VALUES = var$2;
14866
+ };
14864
14867
  function jur_Pattern() {
14865
14868
  let a = this;
14866
14869
  jl_Object.call(a);
@@ -14873,16 +14876,16 @@ function jur_Pattern() {
14873
14876
  a.$consCount = 0;
14874
14877
  a.$start2 = null;
14875
14878
  }
14876
- var jur_Pattern_matcher = ($this, var$1) => {
14879
+ var jur_Pattern_matcher = ($this, $input) => {
14877
14880
  let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
14878
14881
  var$2 = new jur_Matcher();
14879
14882
  var$2.$leftBound0 = -1;
14880
14883
  var$2.$rightBound0 = -1;
14881
14884
  var$2.$pat = $this;
14882
14885
  var$2.$start6 = $this.$start2;
14883
- var$2.$string1 = var$1;
14886
+ var$2.$string1 = $input;
14884
14887
  var$2.$leftBound0 = 0;
14885
- var$3 = var$1.$nativeString.length;
14888
+ var$3 = $input.$nativeString.length;
14886
14889
  var$2.$rightBound0 = var$3;
14887
14890
  var$4 = new jur_MatchResultImpl();
14888
14891
  var$5 = var$2.$leftBound0;
@@ -14899,7 +14902,7 @@ var jur_Pattern_matcher = ($this, var$1) => {
14899
14902
  if (var$7 > 0)
14900
14903
  var$4.$compQuantCounters = $rt_createIntArray(var$7);
14901
14904
  ju_Arrays_fill(var$4.$groupBounds, -1);
14902
- jur_MatchResultImpl_reset(var$4, var$1, var$5, var$3);
14905
+ jur_MatchResultImpl_reset(var$4, $input, var$5, var$3);
14903
14906
  var$2.$matchResult = var$4;
14904
14907
  var$4.$anchoringBounds = 1;
14905
14908
  return var$2;
@@ -16594,6 +16597,7 @@ var jl_Thread__clinit_ = () => {
16594
16597
  };
16595
16598
  var jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException);
16596
16599
  var jl_IllegalMonitorStateException = $rt_classWithoutFields(jl_RuntimeException);
16600
+ var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
16597
16601
  var otjc_JSObjects = $rt_classWithoutFields();
16598
16602
  var otji_JSWrapper$Helper = $rt_classWithoutFields();
16599
16603
  var otji_JSWrapper$Helper_hashCodes = null;
@@ -16629,7 +16633,6 @@ var otji_JSWrapper$Helper__clinit_ = () => {
16629
16633
  otji_JSWrapper$Helper_numberFinalizationRegistry = var$1;
16630
16634
  };
16631
16635
  var otjc_JSUndefined = $rt_classWithoutFields();
16632
- var jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException);
16633
16636
  function ju_Arrays$ArrayAsList() {
16634
16637
  ju_AbstractList.call(this);
16635
16638
  this.$array3 = null;
@@ -24672,10 +24675,10 @@ var asrs_Simulator$SimThread_handleTrap = ($this, $se, $pc) => {
24672
24675
  if (!$utvec && $se.$cause < 0)
24673
24676
  $rt_throw(jl_AssertionError__init_($rt_s(1514)));
24674
24677
  a: {
24675
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1132), Long_fromInt($se.$cause));
24678
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($se.$cause));
24676
24679
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24677
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1133), Long_fromInt($se.$value5));
24678
- $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1130)) & -4;
24680
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($se.$value5));
24681
+ $base = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123)) & -4;
24679
24682
  $exceptionHandler = null;
24680
24683
  if (!(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1))
24681
24684
  var$6 = $exceptionHandler;
@@ -24711,12 +24714,12 @@ var asrs_Simulator$SimThread_handleInterrupt = ($this, $value, $cause, $pc) => {
24711
24714
  if (!$mode && !($cause & -2147483648))
24712
24715
  $rt_throw(jl_AssertionError__init_($rt_s(1515)));
24713
24716
  $code = $cause & 2147483647;
24714
- if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1129)) & 1 << $code))
24717
+ if (!$mode && !(asrrh_ControlAndStatusRegisterFile_getValue($rt_s(679)) & 1 && asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1122)) & 1 << $code))
24715
24718
  $rt_throw(jl_AssertionError__init_($rt_s(1516)));
24716
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1132), Long_fromInt($cause));
24719
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1125), Long_fromInt($cause));
24717
24720
  asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(680), Long_fromInt($pc));
24718
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1133), Long_fromInt($value));
24719
- $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1130));
24721
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1126), Long_fromInt($value));
24722
+ $utvec = asrrh_ControlAndStatusRegisterFile_getValue($rt_s(1123));
24720
24723
  $base = $utvec & -4;
24721
24724
  if (($utvec & 3) == 2)
24722
24725
  $base = $base + (4 * $code | 0) | 0;
@@ -24796,8 +24799,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24796
24799
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
24797
24800
  return;
24798
24801
  }
24799
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
24800
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
24802
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
24803
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
24801
24804
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
24802
24805
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
24803
24806
  $se = asrrh_InterruptController_lock;
@@ -24988,8 +24991,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
24988
24991
  jl_Object_monitorExit($se);
24989
24992
  $rt_throw($instruction);
24990
24993
  }
24991
- if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134))))
24992
- asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1134), $cycle);
24994
+ if (Long_ne($cycle, asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127))))
24995
+ asrrh_ControlAndStatusRegisterFile_updateRegister($rt_s(1127), $cycle);
24993
24996
  var$14 = $this.$maxSteps;
24994
24997
  if (var$14 > 0) {
24995
24998
  $steps = $steps + 1 | 0;
@@ -25110,12 +25113,12 @@ var asrs_Simulator$SimThread_run = ($this) => {
25110
25113
  $waiting = 1;
25111
25114
  }
25112
25115
  v: {
25113
- $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1135));
25114
- $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1137));
25116
+ $cycle = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1128));
25117
+ $instret = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1130));
25115
25118
  $time = jl_System_currentTimeMillis();
25116
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1135), Long_add($cycle, Long_fromInt(1)));
25117
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1137), Long_add($instret, Long_fromInt(1)));
25118
- asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1136), $time);
25119
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1128), Long_add($cycle, Long_fromInt(1)));
25120
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1130), Long_add($instret, Long_fromInt(1)));
25121
+ asrrh_ControlAndStatusRegisterFile_updateRegisterBackdoor($rt_s(1129), $time);
25119
25122
  if (!$ebreak) {
25120
25123
  var$1 = $this.$breakPoints;
25121
25124
  if (var$1 === null)
@@ -25138,8 +25141,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
25138
25141
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
25139
25142
  return;
25140
25143
  }
25141
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
25142
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
25144
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
25145
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
25143
25146
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
25144
25147
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
25145
25148
  $se = asrrh_InterruptController_lock;
@@ -25175,8 +25178,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
25175
25178
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
25176
25179
  return;
25177
25180
  }
25178
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
25179
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
25181
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
25182
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
25180
25183
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
25181
25184
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
25182
25185
  $se = asrrh_InterruptController_lock;
@@ -25214,8 +25217,8 @@ var asrs_Simulator$SimThread_run = ($this) => {
25214
25217
  asrs_Simulator$SimThread_stopExecution($this, 0, $this.$constructReturnReason);
25215
25218
  return;
25216
25219
  }
25217
- $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1134));
25218
- $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1129));
25220
+ $uip = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1127));
25221
+ $uie = asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(1122));
25219
25222
  $IE = Long_eq(Long_and(asrrh_ControlAndStatusRegisterFile_getValueNoNotify($rt_s(679)), Long_fromInt(1)), Long_ZERO) ? 0 : 1;
25220
25223
  $this.$pc0 = asrrh_RegisterFile_getProgramCounter();
25221
25224
  $se = asrrh_InterruptController_lock;
@@ -31892,121 +31895,121 @@ var asrjt_Floating = $rt_classWithoutFields();
31892
31895
  var asrjt_Floating_isFinite = ($this) => {
31893
31896
  return !$this.$isZero() && !$this.$isNormal() && !$this.$isSubnormal() ? 0 : 1;
31894
31897
  };
31895
- function asrjt_Float32() {
31898
+ function asrjt_Float64() {
31896
31899
  asrjt_Floating.call(this);
31897
- this.$bits0 = 0;
31900
+ this.$bits1 = Long_ZERO;
31898
31901
  }
31899
- var asrjt_Float32_Zero = null;
31900
- var asrjt_Float32_NegativeZero = null;
31901
- var asrjt_Float32_NaN = null;
31902
- var asrjt_Float32_Infinity = null;
31903
- var asrjt_Float32_NegativeInfinity = null;
31904
- var asrjt_Float32_$assertionsDisabled = 0;
31905
- var asrjt_Float32__init_2 = ($this, $bits) => {
31906
- $this.$bits0 = $bits;
31902
+ var asrjt_Float64_Zero = null;
31903
+ var asrjt_Float64_NegativeZero = null;
31904
+ var asrjt_Float64_NaN = null;
31905
+ var asrjt_Float64_Infinity = null;
31906
+ var asrjt_Float64_NegativeInfinity = null;
31907
+ var asrjt_Float64_$assertionsDisabled = 0;
31908
+ var asrjt_Float64__init_1 = ($this, $bits) => {
31909
+ $this.$bits1 = $bits;
31907
31910
  };
31908
- var asrjt_Float32__init_ = (var_0) => {
31909
- let var_1 = new asrjt_Float32();
31910
- asrjt_Float32__init_2(var_1, var_0);
31911
+ var asrjt_Float64__init_ = (var_0) => {
31912
+ let var_1 = new asrjt_Float64();
31913
+ asrjt_Float64__init_1(var_1, var_0);
31911
31914
  return var_1;
31912
31915
  };
31913
- var asrjt_Float32__init_1 = ($this, $sign, $exponent, $significand) => {
31914
- asrjt_Float32__init_2($this, (!$sign ? 0 : -2147483648) | (($exponent + 127 | 0) & 255) << 23 | $significand & 8388607);
31916
+ var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
31917
+ 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))));
31915
31918
  };
31916
- var asrjt_Float32__init_0 = (var_0, var_1, var_2) => {
31917
- let var_3 = new asrjt_Float32();
31918
- asrjt_Float32__init_1(var_3, var_0, var_1, var_2);
31919
+ var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
31920
+ let var_3 = new asrjt_Float64();
31921
+ asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
31919
31922
  return var_3;
31920
31923
  };
31921
- var asrjt_Float32_exponent = ($this) => {
31922
- return (($this.$bits0 >>> 23 | 0) & 255) - 127 | 0;
31924
+ var asrjt_Float64_exponent = ($this) => {
31925
+ return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
31923
31926
  };
31924
- var asrjt_Float32_negate = ($this) => {
31925
- return asrjt_Float32__init_($this.$bits0 ^ -2147483648);
31927
+ var asrjt_Float64_negate = ($this) => {
31928
+ return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
31926
31929
  };
31927
- var asrjt_Float32_isSignMinus = ($this) => {
31928
- return ($this.$bits0 >>> 31 | 0) != 1 ? 0 : 1;
31930
+ var asrjt_Float64_isSignMinus = ($this) => {
31931
+ return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
31929
31932
  };
31930
- var asrjt_Float32_isInfinite = ($this) => {
31931
- return asrjt_Float32_exponent($this) == 128 && !($this.$bits0 & 8388607) ? 1 : 0;
31933
+ var asrjt_Float64_isInfinite = ($this) => {
31934
+ return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
31932
31935
  };
31933
- var asrjt_Float32_isNormal = ($this) => {
31934
- return asrjt_Float32_exponent($this) != -127 && asrjt_Float32_exponent($this) != 128 ? 1 : 0;
31936
+ var asrjt_Float64_isNormal = ($this) => {
31937
+ return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
31935
31938
  };
31936
- var asrjt_Float32_isSubnormal = ($this) => {
31937
- return asrjt_Float32_exponent($this) == -127 && !asrjt_Float32_isZero($this) ? 1 : 0;
31939
+ var asrjt_Float64_isSubnormal = ($this) => {
31940
+ return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
31938
31941
  };
31939
- var asrjt_Float32_isNaN = ($this) => {
31940
- return asrjt_Float32_exponent($this) == 128 && !asrjt_Float32_isInfinite($this) ? 1 : 0;
31942
+ var asrjt_Float64_isNaN = ($this) => {
31943
+ return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
31941
31944
  };
31942
- var asrjt_Float32_isSignalling = ($this) => {
31943
- if (!asrjt_Float32_isNaN($this))
31945
+ var asrjt_Float64_isSignalling = ($this) => {
31946
+ if (!asrjt_Float64_isNaN($this))
31944
31947
  return 0;
31945
- return $this.$bits0 & 4194304 ? 0 : 1;
31948
+ return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
31946
31949
  };
31947
- var asrjt_Float32_isZero = ($this) => {
31950
+ var asrjt_Float64_isZero = ($this) => {
31948
31951
  let var$1;
31949
- var$1 = $this.$bits0;
31950
- return var$1 && var$1 != -2147483648 ? 0 : 1;
31952
+ var$1 = $this.$bits1;
31953
+ return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
31951
31954
  };
31952
- var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
31955
+ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
31953
31956
  let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
31954
31957
  if (asrji_ExactFloat_isZero($ef))
31955
- return !$ef.$sign ? asrjt_Float32_Zero : asrjt_Float32_NegativeZero;
31958
+ return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
31956
31959
  $ef = asrji_ExactFloat_normalize($ef);
31957
31960
  $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
31958
- if ($normalizedExponent > -126) {
31959
- if ($normalizedExponent > 128) {
31961
+ if ($normalizedExponent > -1022) {
31962
+ if ($normalizedExponent > 1024) {
31960
31963
  $mainBits = $env.$flags;
31961
31964
  $roundedBits = asrj_Flags_overflow;
31962
31965
  ju_GenericEnumSet_add($mainBits, $roundedBits);
31963
31966
  $mainBits = $env.$flags;
31964
31967
  $roundedBits = asrj_Flags_inexact;
31965
31968
  ju_GenericEnumSet_add($mainBits, $roundedBits);
31966
- asrjt_Float32$1_$callClinit();
31967
- switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31969
+ asrjt_Float64$1_$callClinit();
31970
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
31968
31971
  case 1:
31969
31972
  break;
31970
31973
  case 2:
31971
31974
  case 3:
31972
31975
  $normalizedExponent = $ef.$sign;
31973
31976
  if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
31974
- return asrjt_Float32__init_0($normalizedExponent, 127, -1);
31975
- return !$normalizedExponent ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
31977
+ return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
31978
+ return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31976
31979
  case 4:
31977
31980
  case 5:
31978
- return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
31981
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31979
31982
  default:
31980
- if (!asrjt_Float32_$assertionsDisabled)
31983
+ if (!asrjt_Float64_$assertionsDisabled)
31981
31984
  $rt_throw(jl_AssertionError__init_($rt_s(1629)));
31982
- return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
31985
+ return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
31983
31986
  }
31984
- return asrjt_Float32__init_0($ef.$sign, 127, -1);
31987
+ return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
31985
31988
  }
31986
- if (jm_BigInteger_bitLength($ef.$significand) <= 24) {
31987
- if (!asrjt_Float32_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -127)
31989
+ if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
31990
+ if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
31988
31991
  $rt_throw(jl_AssertionError__init_($rt_s(1630)));
31989
- $a = new asrjt_Float32();
31992
+ $a = new asrjt_Float64();
31990
31993
  $normalizedExponent = $ef.$sign;
31991
31994
  $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
31992
31995
  $ef = $ef.$significand;
31993
- asrjt_Float32__init_1($a, $normalizedExponent, $bitsToRound, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef, 24 - jm_BigInteger_bitLength($ef) | 0)) & 8388607);
31996
+ 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)));
31994
31997
  return $a;
31995
31998
  }
31996
31999
  $mainBits = $env.$flags;
31997
32000
  $roundedBits = asrj_Flags_inexact;
31998
32001
  ju_GenericEnumSet_add($mainBits, $roundedBits);
31999
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 24 | 0;
32002
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
32000
32003
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32001
32004
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32002
32005
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32003
- $towardsZero = asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 23 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)) & 8388607);
32004
- $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);
32006
+ $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)));
32007
+ $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)));
32005
32008
  } else {
32006
- if ($ef.$exponent0 > -150) {
32007
- if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 23)
32009
+ if ($ef.$exponent0 > -1075) {
32010
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
32008
32011
  $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32009
- return asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef.$significand, 149 + $ef.$exponent0 | 0)));
32012
+ return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
32010
32013
  }
32011
32014
  $mainBits = $env.$flags;
32012
32015
  $roundedBits = asrj_Flags_inexact;
@@ -32014,21 +32017,21 @@ var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
32014
32017
  $mainBits = $env.$flags;
32015
32018
  $roundedBits = asrj_Flags_underflow;
32016
32019
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32017
- $bitsToRound = -149 - $ef.$exponent0 | 0;
32020
+ $bitsToRound = -1074 - $ef.$exponent0 | 0;
32018
32021
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32019
32022
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32020
- $towardsZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32023
+ $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32021
32024
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32022
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 23)
32023
- $awayZero = asrjt_Float32__init_0($ef.$sign, -126, jm_BigInteger_intValueExact($upBits) & 8388607);
32025
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
32026
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32024
32027
  else {
32025
- if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 23)
32028
+ if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
32026
32029
  $rt_throw(jl_AssertionError__init_1());
32027
- $awayZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact($upBits));
32030
+ $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
32028
32031
  }
32029
32032
  }
32030
- asrjt_Float32$1_$callClinit();
32031
- switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32033
+ asrjt_Float64$1_$callClinit();
32034
+ switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32032
32035
  case 1:
32033
32036
  break;
32034
32037
  case 2:
@@ -32044,69 +32047,69 @@ var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
32044
32047
  return $towardsZero;
32045
32048
  return $awayZero;
32046
32049
  }
32047
- if ($env.$mode !== asrj_RoundingMode_away && $awayZero.$bits0 & 1)
32050
+ if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
32048
32051
  return $towardsZero;
32049
32052
  return $awayZero;
32050
32053
  }
32051
32054
  return $towardsZero;
32052
32055
  };
32053
- var asrjt_Float32_toExactFloat = ($this) => {
32056
+ var asrjt_Float64_toExactFloat = ($this) => {
32054
32057
  let $sign, $exponent, $significand;
32055
- if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isInfinite($this))
32058
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
32056
32059
  $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32057
- if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isNaN($this))
32060
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
32058
32061
  $rt_throw(jl_AssertionError__init_($rt_s(1633)));
32059
- if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isZero($this))
32062
+ if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
32060
32063
  $rt_throw(jl_AssertionError__init_($rt_s(1634)));
32061
- $sign = asrjt_Float32_isSignMinus($this);
32062
- if (asrjt_Float32_isZero($this)) {
32064
+ $sign = asrjt_Float64_isSignMinus($this);
32065
+ if (asrjt_Float64_isZero($this)) {
32063
32066
  $exponent = 0;
32064
32067
  $significand = jm_BigInteger_ZERO;
32065
- } else if (asrjt_Float32_isNormal($this)) {
32066
- $exponent = asrjt_Float32_exponent($this) - 23 | 0;
32067
- $significand = jm_BigInteger_valueOf(Long_fromInt(($this.$bits0 & 8388607) + 8388608 | 0));
32068
+ } else if (asrjt_Float64_isNormal($this)) {
32069
+ $exponent = asrjt_Float64_exponent($this) - 52 | 0;
32070
+ $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
32068
32071
  } else {
32069
- if (!asrjt_Float32_isSubnormal($this)) {
32070
- if (asrjt_Float32_$assertionsDisabled)
32072
+ if (!asrjt_Float64_isSubnormal($this)) {
32073
+ if (asrjt_Float64_$assertionsDisabled)
32071
32074
  return null;
32072
32075
  $rt_throw(jl_AssertionError__init_($rt_s(1635)));
32073
32076
  }
32074
- $exponent = asrjt_Float32_exponent($this) - 22 | 0;
32075
- $significand = jm_BigInteger_valueOf(Long_fromInt($this.$bits0 & 8388607));
32077
+ $exponent = asrjt_Float64_exponent($this) - 51 | 0;
32078
+ $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
32076
32079
  }
32077
32080
  return asrji_ExactFloat__init_($sign, $exponent, $significand);
32078
32081
  };
32079
- var asrjt_Float32_maxPrecision = ($this) => {
32080
- return 30;
32082
+ var asrjt_Float64_maxPrecision = ($this) => {
32083
+ return 60;
32081
32084
  };
32082
- var asrjt_Float32_negate0 = ($this) => {
32083
- return asrjt_Float32_negate($this);
32085
+ var asrjt_Float64_negate0 = ($this) => {
32086
+ return asrjt_Float64_negate($this);
32084
32087
  };
32085
- var asrjt_Float32_fromExactFloat = ($this, var$1, var$2) => {
32086
- return asrjt_Float32_fromExactFloat0($this, var$1, var$2);
32088
+ var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
32089
+ return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
32087
32090
  };
32088
- var asrjt_Float32_NegativeInfinity0 = ($this) => {
32089
- return asrjt_Float32_NegativeInfinity;
32091
+ var asrjt_Float64_NegativeInfinity0 = ($this) => {
32092
+ return asrjt_Float64_NegativeInfinity;
32090
32093
  };
32091
- var asrjt_Float32_Infinity0 = ($this) => {
32092
- return asrjt_Float32_Infinity;
32094
+ var asrjt_Float64_Infinity0 = ($this) => {
32095
+ return asrjt_Float64_Infinity;
32093
32096
  };
32094
- var asrjt_Float32_NegativeZero0 = ($this) => {
32095
- return asrjt_Float32_NegativeZero;
32097
+ var asrjt_Float64_NegativeZero0 = ($this) => {
32098
+ return asrjt_Float64_NegativeZero;
32096
32099
  };
32097
- var asrjt_Float32_Zero0 = ($this) => {
32098
- return asrjt_Float32_Zero;
32100
+ var asrjt_Float64_Zero0 = ($this) => {
32101
+ return asrjt_Float64_Zero;
32099
32102
  };
32100
- var asrjt_Float32_NaN0 = ($this) => {
32101
- return asrjt_Float32_NaN;
32103
+ var asrjt_Float64_NaN0 = ($this) => {
32104
+ return asrjt_Float64_NaN;
32102
32105
  };
32103
- var asrjt_Float32__clinit_ = () => {
32104
- asrjt_Float32_$assertionsDisabled = 0;
32105
- asrjt_Float32_Zero = asrjt_Float32__init_(0);
32106
- asrjt_Float32_NegativeZero = asrjt_Float32__init_(-2147483648);
32107
- asrjt_Float32_NaN = asrjt_Float32__init_(2143289344);
32108
- asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
32109
- asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
32106
+ var asrjt_Float64__clinit_ = () => {
32107
+ asrjt_Float64_$assertionsDisabled = 0;
32108
+ asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
32109
+ asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
32110
+ asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
32111
+ asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32112
+ asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32110
32113
  };
32111
32114
  var asrjo_Conversions = $rt_classWithoutFields();
32112
32115
  var asrjo_Conversions_convertToIntegral = ($f, $max, $min, $env, $quiet) => {
@@ -32216,121 +32219,121 @@ var asrjo_Conversions_convertFromInt = ($i, $env, $helper) => {
32216
32219
  var$4.$significand = $i;
32217
32220
  return $helper.$fromExactFloat(var$4, $env);
32218
32221
  };
32219
- function asrjt_Float64() {
32222
+ function asrjt_Float32() {
32220
32223
  asrjt_Floating.call(this);
32221
- this.$bits1 = Long_ZERO;
32224
+ this.$bits0 = 0;
32222
32225
  }
32223
- var asrjt_Float64_Zero = null;
32224
- var asrjt_Float64_NegativeZero = null;
32225
- var asrjt_Float64_NaN = null;
32226
- var asrjt_Float64_Infinity = null;
32227
- var asrjt_Float64_NegativeInfinity = null;
32228
- var asrjt_Float64_$assertionsDisabled = 0;
32229
- var asrjt_Float64__init_1 = ($this, $bits) => {
32230
- $this.$bits1 = $bits;
32226
+ var asrjt_Float32_Zero = null;
32227
+ var asrjt_Float32_NegativeZero = null;
32228
+ var asrjt_Float32_NaN = null;
32229
+ var asrjt_Float32_Infinity = null;
32230
+ var asrjt_Float32_NegativeInfinity = null;
32231
+ var asrjt_Float32_$assertionsDisabled = 0;
32232
+ var asrjt_Float32__init_2 = ($this, $bits) => {
32233
+ $this.$bits0 = $bits;
32231
32234
  };
32232
- var asrjt_Float64__init_ = (var_0) => {
32233
- let var_1 = new asrjt_Float64();
32234
- asrjt_Float64__init_1(var_1, var_0);
32235
+ var asrjt_Float32__init_ = (var_0) => {
32236
+ let var_1 = new asrjt_Float32();
32237
+ asrjt_Float32__init_2(var_1, var_0);
32235
32238
  return var_1;
32236
32239
  };
32237
- var asrjt_Float64__init_2 = ($this, $sign, $exponent, $significand) => {
32238
- 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))));
32240
+ var asrjt_Float32__init_1 = ($this, $sign, $exponent, $significand) => {
32241
+ asrjt_Float32__init_2($this, (!$sign ? 0 : -2147483648) | (($exponent + 127 | 0) & 255) << 23 | $significand & 8388607);
32239
32242
  };
32240
- var asrjt_Float64__init_0 = (var_0, var_1, var_2) => {
32241
- let var_3 = new asrjt_Float64();
32242
- asrjt_Float64__init_2(var_3, var_0, var_1, var_2);
32243
+ var asrjt_Float32__init_0 = (var_0, var_1, var_2) => {
32244
+ let var_3 = new asrjt_Float32();
32245
+ asrjt_Float32__init_1(var_3, var_0, var_1, var_2);
32243
32246
  return var_3;
32244
32247
  };
32245
- var asrjt_Float64_exponent = ($this) => {
32246
- return (Long_lo(Long_shru($this.$bits1, 52)) & 2047) - 1023 | 0;
32248
+ var asrjt_Float32_exponent = ($this) => {
32249
+ return (($this.$bits0 >>> 23 | 0) & 255) - 127 | 0;
32247
32250
  };
32248
- var asrjt_Float64_negate = ($this) => {
32249
- return asrjt_Float64__init_(Long_xor($this.$bits1, Long_create(0, 2147483648)));
32251
+ var asrjt_Float32_negate = ($this) => {
32252
+ return asrjt_Float32__init_($this.$bits0 ^ -2147483648);
32250
32253
  };
32251
- var asrjt_Float64_isSignMinus = ($this) => {
32252
- return Long_ne(Long_shru($this.$bits1, 63), Long_fromInt(1)) ? 0 : 1;
32254
+ var asrjt_Float32_isSignMinus = ($this) => {
32255
+ return ($this.$bits0 >>> 31 | 0) != 1 ? 0 : 1;
32253
32256
  };
32254
- var asrjt_Float64_isInfinite = ($this) => {
32255
- return asrjt_Float64_exponent($this) == 1024 && Long_eq(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_ZERO) ? 1 : 0;
32257
+ var asrjt_Float32_isInfinite = ($this) => {
32258
+ return asrjt_Float32_exponent($this) == 128 && !($this.$bits0 & 8388607) ? 1 : 0;
32256
32259
  };
32257
- var asrjt_Float64_isNormal = ($this) => {
32258
- return asrjt_Float64_exponent($this) != -1023 && asrjt_Float64_exponent($this) != 1024 ? 1 : 0;
32260
+ var asrjt_Float32_isNormal = ($this) => {
32261
+ return asrjt_Float32_exponent($this) != -127 && asrjt_Float32_exponent($this) != 128 ? 1 : 0;
32259
32262
  };
32260
- var asrjt_Float64_isSubnormal = ($this) => {
32261
- return asrjt_Float64_exponent($this) == -1023 && !asrjt_Float64_isZero($this) ? 1 : 0;
32263
+ var asrjt_Float32_isSubnormal = ($this) => {
32264
+ return asrjt_Float32_exponent($this) == -127 && !asrjt_Float32_isZero($this) ? 1 : 0;
32262
32265
  };
32263
- var asrjt_Float64_isNaN = ($this) => {
32264
- return asrjt_Float64_exponent($this) == 1024 && !asrjt_Float64_isInfinite($this) ? 1 : 0;
32266
+ var asrjt_Float32_isNaN = ($this) => {
32267
+ return asrjt_Float32_exponent($this) == 128 && !asrjt_Float32_isInfinite($this) ? 1 : 0;
32265
32268
  };
32266
- var asrjt_Float64_isSignalling = ($this) => {
32267
- if (!asrjt_Float64_isNaN($this))
32269
+ var asrjt_Float32_isSignalling = ($this) => {
32270
+ if (!asrjt_Float32_isNaN($this))
32268
32271
  return 0;
32269
- return Long_ne(Long_and($this.$bits1, Long_create(0, 524288)), Long_ZERO) ? 0 : 1;
32272
+ return $this.$bits0 & 4194304 ? 0 : 1;
32270
32273
  };
32271
- var asrjt_Float64_isZero = ($this) => {
32274
+ var asrjt_Float32_isZero = ($this) => {
32272
32275
  let var$1;
32273
- var$1 = $this.$bits1;
32274
- return Long_ne(var$1, Long_ZERO) && Long_ne(var$1, Long_create(0, 2147483648)) ? 0 : 1;
32276
+ var$1 = $this.$bits0;
32277
+ return var$1 && var$1 != -2147483648 ? 0 : 1;
32275
32278
  };
32276
- var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
32279
+ var asrjt_Float32_fromExactFloat0 = ($this, $ef, $env) => {
32277
32280
  let $normalizedExponent, $mainBits, $roundedBits, $a, $bitsToRound, $upBits, $towardsZero, $awayZero;
32278
32281
  if (asrji_ExactFloat_isZero($ef))
32279
- return !$ef.$sign ? asrjt_Float64_Zero : asrjt_Float64_NegativeZero;
32282
+ return !$ef.$sign ? asrjt_Float32_Zero : asrjt_Float32_NegativeZero;
32280
32283
  $ef = asrji_ExactFloat_normalize($ef);
32281
32284
  $normalizedExponent = $ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0;
32282
- if ($normalizedExponent > -1022) {
32283
- if ($normalizedExponent > 1024) {
32285
+ if ($normalizedExponent > -126) {
32286
+ if ($normalizedExponent > 128) {
32284
32287
  $mainBits = $env.$flags;
32285
32288
  $roundedBits = asrj_Flags_overflow;
32286
32289
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32287
32290
  $mainBits = $env.$flags;
32288
32291
  $roundedBits = asrj_Flags_inexact;
32289
32292
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32290
- asrjt_Float64$1_$callClinit();
32291
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32293
+ asrjt_Float32$1_$callClinit();
32294
+ switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32292
32295
  case 1:
32293
32296
  break;
32294
32297
  case 2:
32295
32298
  case 3:
32296
32299
  $normalizedExponent = $ef.$sign;
32297
32300
  if ($normalizedExponent == ($env.$mode !== asrj_RoundingMode_max ? 0 : 1))
32298
- return asrjt_Float64__init_0($normalizedExponent, 1023, Long_fromInt(-1));
32299
- return !$normalizedExponent ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32301
+ return asrjt_Float32__init_0($normalizedExponent, 127, -1);
32302
+ return !$normalizedExponent ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
32300
32303
  case 4:
32301
32304
  case 5:
32302
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32305
+ return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
32303
32306
  default:
32304
- if (!asrjt_Float64_$assertionsDisabled)
32307
+ if (!asrjt_Float32_$assertionsDisabled)
32305
32308
  $rt_throw(jl_AssertionError__init_($rt_s(1629)));
32306
- return !$ef.$sign ? asrjt_Float64_Infinity : asrjt_Float64_NegativeInfinity;
32309
+ return !$ef.$sign ? asrjt_Float32_Infinity : asrjt_Float32_NegativeInfinity;
32307
32310
  }
32308
- return asrjt_Float64__init_0($ef.$sign, 1023, Long_fromInt(-1));
32311
+ return asrjt_Float32__init_0($ef.$sign, 127, -1);
32309
32312
  }
32310
- if (jm_BigInteger_bitLength($ef.$significand) <= 53) {
32311
- if (!asrjt_Float64_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -1023)
32313
+ if (jm_BigInteger_bitLength($ef.$significand) <= 24) {
32314
+ if (!asrjt_Float32_$assertionsDisabled && (($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0) <= -127)
32312
32315
  $rt_throw(jl_AssertionError__init_($rt_s(1630)));
32313
- $a = new asrjt_Float64();
32316
+ $a = new asrjt_Float32();
32314
32317
  $normalizedExponent = $ef.$sign;
32315
32318
  $bitsToRound = ($ef.$exponent0 + jm_BigInteger_bitLength($ef.$significand) | 0) - 1 | 0;
32316
32319
  $ef = $ef.$significand;
32317
- 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)));
32320
+ asrjt_Float32__init_1($a, $normalizedExponent, $bitsToRound, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef, 24 - jm_BigInteger_bitLength($ef) | 0)) & 8388607);
32318
32321
  return $a;
32319
32322
  }
32320
32323
  $mainBits = $env.$flags;
32321
32324
  $roundedBits = asrj_Flags_inexact;
32322
32325
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32323
- $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 53 | 0;
32326
+ $bitsToRound = jm_BigInteger_bitLength($ef.$significand) - 24 | 0;
32324
32327
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32325
32328
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32326
32329
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32327
- $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)));
32328
- $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)));
32330
+ $towardsZero = asrjt_Float32__init_0($ef.$sign, ($ef.$exponent0 + 23 | 0) + $bitsToRound | 0, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)) & 8388607);
32331
+ $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);
32329
32332
  } else {
32330
- if ($ef.$exponent0 > -1075) {
32331
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 52)
32333
+ if ($ef.$exponent0 > -150) {
32334
+ if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($ef.$significand) > 23)
32332
32335
  $rt_throw(jl_AssertionError__init_($rt_s(1631)));
32333
- return asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftLeft($ef.$significand, 1074 + $ef.$exponent0 | 0)));
32336
+ return asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftLeft($ef.$significand, 149 + $ef.$exponent0 | 0)));
32334
32337
  }
32335
32338
  $mainBits = $env.$flags;
32336
32339
  $roundedBits = asrj_Flags_inexact;
@@ -32338,21 +32341,21 @@ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
32338
32341
  $mainBits = $env.$flags;
32339
32342
  $roundedBits = asrj_Flags_underflow;
32340
32343
  ju_GenericEnumSet_add($mainBits, $roundedBits);
32341
- $bitsToRound = -1074 - $ef.$exponent0 | 0;
32344
+ $bitsToRound = -149 - $ef.$exponent0 | 0;
32342
32345
  $mainBits = jm_BigInteger_shiftLeft(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), $bitsToRound);
32343
32346
  $roundedBits = jm_BigInteger_subtract($ef.$significand, $mainBits);
32344
- $towardsZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32347
+ $towardsZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound)));
32345
32348
  $upBits = jm_BigInteger_add(jm_BigInteger_shiftRight($ef.$significand, $bitsToRound), jm_BigInteger_valueOf(Long_fromInt(1)));
32346
- if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 52)
32347
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1022, Long_and(jm_BigInteger_longValueExact($upBits), Long_create(4294967295, 1048575)));
32349
+ if (!jm_BigInteger_testBit($upBits, 0) && jm_BigInteger_bitLength($upBits) > 23)
32350
+ $awayZero = asrjt_Float32__init_0($ef.$sign, -126, jm_BigInteger_intValueExact($upBits) & 8388607);
32348
32351
  else {
32349
- if (!asrjt_Float64_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 52)
32352
+ if (!asrjt_Float32_$assertionsDisabled && jm_BigInteger_bitLength($upBits) > 23)
32350
32353
  $rt_throw(jl_AssertionError__init_1());
32351
- $awayZero = asrjt_Float64__init_0($ef.$sign, -1023, jm_BigInteger_longValueExact($upBits));
32354
+ $awayZero = asrjt_Float32__init_0($ef.$sign, -127, jm_BigInteger_intValueExact($upBits));
32352
32355
  }
32353
32356
  }
32354
- asrjt_Float64$1_$callClinit();
32355
- switch (asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32357
+ asrjt_Float32$1_$callClinit();
32358
+ switch (asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode.data[jl_Enum_ordinal($env.$mode)]) {
32356
32359
  case 1:
32357
32360
  break;
32358
32361
  case 2:
@@ -32368,171 +32371,69 @@ var asrjt_Float64_fromExactFloat0 = ($this, $ef, $env) => {
32368
32371
  return $towardsZero;
32369
32372
  return $awayZero;
32370
32373
  }
32371
- if ($env.$mode !== asrj_RoundingMode_away && Long_ne(Long_and($awayZero.$bits1, Long_fromInt(1)), Long_ZERO))
32374
+ if ($env.$mode !== asrj_RoundingMode_away && $awayZero.$bits0 & 1)
32372
32375
  return $towardsZero;
32373
32376
  return $awayZero;
32374
32377
  }
32375
32378
  return $towardsZero;
32376
32379
  };
32377
- var asrjt_Float64_toExactFloat = ($this) => {
32380
+ var asrjt_Float32_toExactFloat = ($this) => {
32378
32381
  let $sign, $exponent, $significand;
32379
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isInfinite($this))
32382
+ if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isInfinite($this))
32380
32383
  $rt_throw(jl_AssertionError__init_($rt_s(1632)));
32381
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isNaN($this))
32384
+ if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isNaN($this))
32382
32385
  $rt_throw(jl_AssertionError__init_($rt_s(1633)));
32383
- if (!asrjt_Float64_$assertionsDisabled && asrjt_Float64_isZero($this))
32386
+ if (!asrjt_Float32_$assertionsDisabled && asrjt_Float32_isZero($this))
32384
32387
  $rt_throw(jl_AssertionError__init_($rt_s(1634)));
32385
- $sign = asrjt_Float64_isSignMinus($this);
32386
- if (asrjt_Float64_isZero($this)) {
32388
+ $sign = asrjt_Float32_isSignMinus($this);
32389
+ if (asrjt_Float32_isZero($this)) {
32387
32390
  $exponent = 0;
32388
32391
  $significand = jm_BigInteger_ZERO;
32389
- } else if (asrjt_Float64_isNormal($this)) {
32390
- $exponent = asrjt_Float64_exponent($this) - 52 | 0;
32391
- $significand = jm_BigInteger_valueOf(Long_add(Long_and($this.$bits1, Long_create(4294967295, 1048575)), Long_create(0, 1048576)));
32392
+ } else if (asrjt_Float32_isNormal($this)) {
32393
+ $exponent = asrjt_Float32_exponent($this) - 23 | 0;
32394
+ $significand = jm_BigInteger_valueOf(Long_fromInt(($this.$bits0 & 8388607) + 8388608 | 0));
32392
32395
  } else {
32393
- if (!asrjt_Float64_isSubnormal($this)) {
32394
- if (asrjt_Float64_$assertionsDisabled)
32396
+ if (!asrjt_Float32_isSubnormal($this)) {
32397
+ if (asrjt_Float32_$assertionsDisabled)
32395
32398
  return null;
32396
32399
  $rt_throw(jl_AssertionError__init_($rt_s(1635)));
32397
32400
  }
32398
- $exponent = asrjt_Float64_exponent($this) - 51 | 0;
32399
- $significand = jm_BigInteger_valueOf(Long_and($this.$bits1, Long_create(4294967295, 1048575)));
32401
+ $exponent = asrjt_Float32_exponent($this) - 22 | 0;
32402
+ $significand = jm_BigInteger_valueOf(Long_fromInt($this.$bits0 & 8388607));
32400
32403
  }
32401
32404
  return asrji_ExactFloat__init_($sign, $exponent, $significand);
32402
32405
  };
32403
- var asrjt_Float64_maxPrecision = ($this) => {
32404
- return 60;
32405
- };
32406
- var asrjt_Float64_negate0 = ($this) => {
32407
- return asrjt_Float64_negate($this);
32408
- };
32409
- var asrjt_Float64_fromExactFloat = ($this, var$1, var$2) => {
32410
- return asrjt_Float64_fromExactFloat0($this, var$1, var$2);
32411
- };
32412
- var asrjt_Float64_NegativeInfinity0 = ($this) => {
32413
- return asrjt_Float64_NegativeInfinity;
32414
- };
32415
- var asrjt_Float64_Infinity0 = ($this) => {
32416
- return asrjt_Float64_Infinity;
32417
- };
32418
- var asrjt_Float64_NegativeZero0 = ($this) => {
32419
- return asrjt_Float64_NegativeZero;
32420
- };
32421
- var asrjt_Float64_Zero0 = ($this) => {
32422
- return asrjt_Float64_Zero;
32423
- };
32424
- var asrjt_Float64_NaN0 = ($this) => {
32425
- return asrjt_Float64_NaN;
32426
- };
32427
- var asrjt_Float64__clinit_ = () => {
32428
- asrjt_Float64_$assertionsDisabled = 0;
32429
- asrjt_Float64_Zero = asrjt_Float64__init_(Long_ZERO);
32430
- asrjt_Float64_NegativeZero = asrjt_Float64__init_(Long_create(0, 2147483648));
32431
- asrjt_Float64_NaN = asrjt_Float64__init_(Long_create(0, 2146959360));
32432
- asrjt_Float64_Infinity = asrjt_Float64__init_(Long_create(0, 2146435072));
32433
- asrjt_Float64_NegativeInfinity = asrjt_Float64__init_(Long_create(0, 4293918720));
32406
+ var asrjt_Float32_maxPrecision = ($this) => {
32407
+ return 30;
32434
32408
  };
32435
- var asrjo_Comparisons = $rt_classWithoutFields();
32436
- var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32437
- if ($a.$isZero()) {
32438
- if ($b.$isZero())
32439
- return 0;
32440
- return !$b.$isSignMinus() ? -1 : 1;
32441
- }
32442
- if ($b.$isZero())
32443
- return !$a.$isSignMinus() ? 1 : -1;
32444
- if (!$a.$isInfinite()) {
32445
- if (!$b.$isInfinite())
32446
- return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32447
- return !$b.$isSignMinus() ? -1 : 1;
32448
- }
32449
- if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32450
- return 0;
32451
- return !$a.$isSignMinus() ? -1 : 1;
32409
+ var asrjt_Float32_negate0 = ($this) => {
32410
+ return asrjt_Float32_negate($this);
32452
32411
  };
32453
- var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32454
- if ($a.$isSignMinus() != $b.$isSignMinus()) {
32455
- if ($a.$isSignMinus())
32456
- $b = $a;
32457
- return $b;
32458
- }
32459
- if (!$a.$isInfinite() && !$b.$isInfinite()) {
32460
- if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32461
- return $b;
32462
- return $a;
32463
- }
32464
- if ($a.$isInfinite() != $a.$isSignMinus())
32465
- return $b;
32466
- return $a;
32412
+ var asrjt_Float32_fromExactFloat = ($this, var$1, var$2) => {
32413
+ return asrjt_Float32_fromExactFloat0($this, var$1, var$2);
32467
32414
  };
32468
- var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32469
- let var$4;
32470
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32471
- var$4 = $env.$flags;
32472
- $env = asrj_Flags_invalid;
32473
- ju_GenericEnumSet_add(var$4, $env);
32474
- }
32475
- if ($a.$isNaN()) {
32476
- if ($b.$isNaN())
32477
- $b = $b.$NaN();
32478
- } else
32479
- $b = !$b.$isNaN() ? null : $a;
32480
- return $b;
32415
+ var asrjt_Float32_NegativeInfinity0 = ($this) => {
32416
+ return asrjt_Float32_NegativeInfinity;
32481
32417
  };
32482
- var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32483
- let $tmp_0;
32484
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32485
- if ($tmp_0 !== null)
32486
- return $tmp_0;
32487
- return asrjo_Comparisons_nonNaNmin($a, $b);
32418
+ var asrjt_Float32_Infinity0 = ($this) => {
32419
+ return asrjt_Float32_Infinity;
32488
32420
  };
32489
- var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32490
- let $tmp_0;
32491
- $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32492
- if ($tmp_0 !== null)
32493
- return $tmp_0;
32494
- if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32495
- $a = $b;
32496
- return $a;
32421
+ var asrjt_Float32_NegativeZero0 = ($this) => {
32422
+ return asrjt_Float32_NegativeZero;
32497
32423
  };
32498
- var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32499
- let var$4;
32500
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32501
- var$4 = $env.$flags;
32502
- $env = asrj_Flags_invalid;
32503
- ju_GenericEnumSet_add(var$4, $env);
32504
- }
32505
- if (!$a.$isNaN() && !$b.$isNaN())
32506
- return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32507
- return 0;
32424
+ var asrjt_Float32_Zero0 = ($this) => {
32425
+ return asrjt_Float32_Zero;
32508
32426
  };
32509
- var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32510
- let var$4, var$5;
32511
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32512
- var$4 = $env.$flags;
32513
- var$5 = asrj_Flags_invalid;
32514
- ju_GenericEnumSet_add(var$4, var$5);
32515
- }
32516
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32517
- var$5 = $env.$flags;
32518
- $env = asrj_Flags_invalid;
32519
- ju_GenericEnumSet_add(var$5, $env);
32520
- }
32521
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32427
+ var asrjt_Float32_NaN0 = ($this) => {
32428
+ return asrjt_Float32_NaN;
32522
32429
  };
32523
- var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32524
- let var$4, var$5;
32525
- if (!(!$a.$isNaN() && !$b.$isNaN())) {
32526
- var$4 = $env.$flags;
32527
- var$5 = asrj_Flags_invalid;
32528
- ju_GenericEnumSet_add(var$4, var$5);
32529
- }
32530
- if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32531
- var$5 = $env.$flags;
32532
- $env = asrj_Flags_invalid;
32533
- ju_GenericEnumSet_add(var$5, $env);
32534
- }
32535
- return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32430
+ var asrjt_Float32__clinit_ = () => {
32431
+ asrjt_Float32_$assertionsDisabled = 0;
32432
+ asrjt_Float32_Zero = asrjt_Float32__init_(0);
32433
+ asrjt_Float32_NegativeZero = asrjt_Float32__init_(-2147483648);
32434
+ asrjt_Float32_NaN = asrjt_Float32__init_(2143289344);
32435
+ asrjt_Float32_Infinity = asrjt_Float32__init_(2139095040);
32436
+ asrjt_Float32_NegativeInfinity = asrjt_Float32__init_(-8388608);
32536
32437
  };
32537
32438
  var asrjo_Arithmetic = $rt_classWithoutFields();
32538
32439
  var asrjo_Arithmetic_$assertionsDisabled = 0;
@@ -32769,6 +32670,108 @@ var asrjo_Arithmetic_division = ($a, $b, $env) => {
32769
32670
  var asrjo_Arithmetic__clinit_ = () => {
32770
32671
  asrjo_Arithmetic_$assertionsDisabled = 0;
32771
32672
  };
32673
+ var asrjo_Comparisons = $rt_classWithoutFields();
32674
+ var asrjo_Comparisons_compareNoNAN = ($a, $b) => {
32675
+ if ($a.$isZero()) {
32676
+ if ($b.$isZero())
32677
+ return 0;
32678
+ return !$b.$isSignMinus() ? -1 : 1;
32679
+ }
32680
+ if ($b.$isZero())
32681
+ return !$a.$isSignMinus() ? 1 : -1;
32682
+ if (!$a.$isInfinite()) {
32683
+ if (!$b.$isInfinite())
32684
+ return asrji_ExactFloat_compareTo($a.$toExactFloat(), $b.$toExactFloat());
32685
+ return !$b.$isSignMinus() ? -1 : 1;
32686
+ }
32687
+ if ($b.$isInfinite() && $a.$isSignMinus() == $b.$isSignMinus())
32688
+ return 0;
32689
+ return !$a.$isSignMinus() ? -1 : 1;
32690
+ };
32691
+ var asrjo_Comparisons_nonNaNmin = ($a, $b) => {
32692
+ if ($a.$isSignMinus() != $b.$isSignMinus()) {
32693
+ if ($a.$isSignMinus())
32694
+ $b = $a;
32695
+ return $b;
32696
+ }
32697
+ if (!$a.$isInfinite() && !$b.$isInfinite()) {
32698
+ if (asrjo_Comparisons_compareNoNAN($a, $b) > 0)
32699
+ return $b;
32700
+ return $a;
32701
+ }
32702
+ if ($a.$isInfinite() != $a.$isSignMinus())
32703
+ return $b;
32704
+ return $a;
32705
+ };
32706
+ var asrjo_Comparisons_handleNaNNumber = ($a, $b, $env) => {
32707
+ let var$4;
32708
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32709
+ var$4 = $env.$flags;
32710
+ $env = asrj_Flags_invalid;
32711
+ ju_GenericEnumSet_add(var$4, $env);
32712
+ }
32713
+ if ($a.$isNaN()) {
32714
+ if ($b.$isNaN())
32715
+ $b = $b.$NaN();
32716
+ } else
32717
+ $b = !$b.$isNaN() ? null : $a;
32718
+ return $b;
32719
+ };
32720
+ var asrjo_Comparisons_minimumNumber = ($a, $b, $env) => {
32721
+ let $tmp_0;
32722
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32723
+ if ($tmp_0 !== null)
32724
+ return $tmp_0;
32725
+ return asrjo_Comparisons_nonNaNmin($a, $b);
32726
+ };
32727
+ var asrjo_Comparisons_maximumNumber = ($a, $b, $env) => {
32728
+ let $tmp_0;
32729
+ $tmp_0 = asrjo_Comparisons_handleNaNNumber($a, $b, $env);
32730
+ if ($tmp_0 !== null)
32731
+ return $tmp_0;
32732
+ if ($a === asrjo_Comparisons_nonNaNmin($a, $b))
32733
+ $a = $b;
32734
+ return $a;
32735
+ };
32736
+ var asrjo_Comparisons_compareQuietEqual = ($a, $b, $env) => {
32737
+ let var$4;
32738
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32739
+ var$4 = $env.$flags;
32740
+ $env = asrj_Flags_invalid;
32741
+ ju_GenericEnumSet_add(var$4, $env);
32742
+ }
32743
+ if (!$a.$isNaN() && !$b.$isNaN())
32744
+ return asrjo_Comparisons_compareNoNAN($a, $b) ? 0 : 1;
32745
+ return 0;
32746
+ };
32747
+ var asrjo_Comparisons_compareSignalingLessThan = ($a, $b, $env) => {
32748
+ let var$4, var$5;
32749
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32750
+ var$4 = $env.$flags;
32751
+ var$5 = asrj_Flags_invalid;
32752
+ ju_GenericEnumSet_add(var$4, var$5);
32753
+ }
32754
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32755
+ var$5 = $env.$flags;
32756
+ $env = asrj_Flags_invalid;
32757
+ ju_GenericEnumSet_add(var$5, $env);
32758
+ }
32759
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) >= 0 ? 0 : 1 : 0;
32760
+ };
32761
+ var asrjo_Comparisons_compareSignalingLessThanEqual = ($a, $b, $env) => {
32762
+ let var$4, var$5;
32763
+ if (!(!$a.$isNaN() && !$b.$isNaN())) {
32764
+ var$4 = $env.$flags;
32765
+ var$5 = asrj_Flags_invalid;
32766
+ ju_GenericEnumSet_add(var$4, var$5);
32767
+ }
32768
+ if (!(!$a.$isSignalling() && !$b.$isSignalling())) {
32769
+ var$5 = $env.$flags;
32770
+ $env = asrj_Flags_invalid;
32771
+ ju_GenericEnumSet_add(var$5, $env);
32772
+ }
32773
+ return !$a.$isNaN() && !$b.$isNaN() ? asrjo_Comparisons_compareNoNAN($a, $b) > 0 ? 0 : 1 : 0;
32774
+ };
32772
32775
  function jnci_BufferedEncoder$Controller() {
32773
32776
  let a = this;
32774
32777
  jl_Object.call(a);
@@ -32817,6 +32820,42 @@ var asrj_RoundingMode__clinit_ = () => {
32817
32820
  var$3[4] = var$1;
32818
32821
  asrj_RoundingMode_$VALUES = var$2;
32819
32822
  };
32823
+ var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32824
+ var asrj_Flags_inexact = null;
32825
+ var asrj_Flags_underflow = null;
32826
+ var asrj_Flags_overflow = null;
32827
+ var asrj_Flags_divByZero = null;
32828
+ var asrj_Flags_invalid = null;
32829
+ var asrj_Flags_$VALUES = null;
32830
+ var asrj_Flags_values = () => {
32831
+ return asrj_Flags_$VALUES.$clone0();
32832
+ };
32833
+ var asrj_Flags__clinit_ = () => {
32834
+ let var$1, var$2, var$3;
32835
+ var$1 = new asrj_Flags();
32836
+ jl_Enum__init_(var$1, $rt_s(1646), 0);
32837
+ asrj_Flags_inexact = var$1;
32838
+ var$1 = new asrj_Flags();
32839
+ jl_Enum__init_(var$1, $rt_s(1647), 1);
32840
+ asrj_Flags_underflow = var$1;
32841
+ var$1 = new asrj_Flags();
32842
+ jl_Enum__init_(var$1, $rt_s(1648), 2);
32843
+ asrj_Flags_overflow = var$1;
32844
+ var$1 = new asrj_Flags();
32845
+ jl_Enum__init_(var$1, $rt_s(1649), 3);
32846
+ asrj_Flags_divByZero = var$1;
32847
+ var$1 = new asrj_Flags();
32848
+ jl_Enum__init_(var$1, $rt_s(210), 4);
32849
+ asrj_Flags_invalid = var$1;
32850
+ var$2 = $rt_createArray(asrj_Flags, 5);
32851
+ var$3 = var$2.data;
32852
+ var$3[0] = asrj_Flags_inexact;
32853
+ var$3[1] = asrj_Flags_underflow;
32854
+ var$3[2] = asrj_Flags_overflow;
32855
+ var$3[3] = asrj_Flags_divByZero;
32856
+ var$3[4] = var$1;
32857
+ asrj_Flags_$VALUES = var$2;
32858
+ };
32820
32859
  function asrji_ExactFloat() {
32821
32860
  let a = this;
32822
32861
  jl_Object.call(a);
@@ -32903,42 +32942,6 @@ var asrji_ExactFloat_isZero = ($this) => {
32903
32942
  var asrji_ExactFloat__clinit_ = () => {
32904
32943
  asrji_ExactFloat_$assertionsDisabled = 0;
32905
32944
  };
32906
- var asrj_Flags = $rt_classWithoutFields(jl_Enum);
32907
- var asrj_Flags_inexact = null;
32908
- var asrj_Flags_underflow = null;
32909
- var asrj_Flags_overflow = null;
32910
- var asrj_Flags_divByZero = null;
32911
- var asrj_Flags_invalid = null;
32912
- var asrj_Flags_$VALUES = null;
32913
- var asrj_Flags_values = () => {
32914
- return asrj_Flags_$VALUES.$clone0();
32915
- };
32916
- var asrj_Flags__clinit_ = () => {
32917
- let var$1, var$2, var$3;
32918
- var$1 = new asrj_Flags();
32919
- jl_Enum__init_(var$1, $rt_s(1646), 0);
32920
- asrj_Flags_inexact = var$1;
32921
- var$1 = new asrj_Flags();
32922
- jl_Enum__init_(var$1, $rt_s(1647), 1);
32923
- asrj_Flags_underflow = var$1;
32924
- var$1 = new asrj_Flags();
32925
- jl_Enum__init_(var$1, $rt_s(1648), 2);
32926
- asrj_Flags_overflow = var$1;
32927
- var$1 = new asrj_Flags();
32928
- jl_Enum__init_(var$1, $rt_s(1649), 3);
32929
- asrj_Flags_divByZero = var$1;
32930
- var$1 = new asrj_Flags();
32931
- jl_Enum__init_(var$1, $rt_s(210), 4);
32932
- asrj_Flags_invalid = var$1;
32933
- var$2 = $rt_createArray(asrj_Flags, 5);
32934
- var$3 = var$2.data;
32935
- var$3[0] = asrj_Flags_inexact;
32936
- var$3[1] = asrj_Flags_underflow;
32937
- var$3[2] = asrj_Flags_overflow;
32938
- var$3[3] = asrj_Flags_divByZero;
32939
- var$3[4] = var$1;
32940
- asrj_Flags_$VALUES = var$2;
32941
- };
32942
32945
  var ju_EnumSet = $rt_classWithoutFields(ju_AbstractSet);
32943
32946
  function ju_GenericEnumSet() {
32944
32947
  let a = this;
@@ -34128,34 +34131,34 @@ function ju_Hashtable$Entry() {
34128
34131
  var ju_Hashtable$Entry_equalsKey = ($this, $aKey, $hash) => {
34129
34132
  return $this.$hashcode == jl_String_hashCode($aKey) && $this.$key.$equals($aKey) ? 1 : 0;
34130
34133
  };
34131
- var asrjt_Float64$1 = $rt_classWithoutFields();
34132
- var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34133
- var asrjt_Float64$1_$callClinit = () => {
34134
- asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
34135
- asrjt_Float64$1__clinit_();
34134
+ var asrjt_Float32$1 = $rt_classWithoutFields();
34135
+ var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34136
+ var asrjt_Float32$1_$callClinit = () => {
34137
+ asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
34138
+ asrjt_Float32$1__clinit_();
34136
34139
  };
34137
- var asrjt_Float64$1__clinit_ = () => {
34140
+ var asrjt_Float32$1__clinit_ = () => {
34138
34141
  let var$1, var$2;
34139
34142
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
34140
34143
  var$2 = var$1.data;
34141
- asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34144
+ asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34142
34145
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
34143
34146
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
34144
34147
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
34145
34148
  var$2[asrj_RoundingMode_away.$ordinal0] = 4;
34146
34149
  var$2[asrj_RoundingMode_even.$ordinal0] = 5;
34147
34150
  };
34148
- var asrjt_Float32$1 = $rt_classWithoutFields();
34149
- var asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34150
- var asrjt_Float32$1_$callClinit = () => {
34151
- asrjt_Float32$1_$callClinit = $rt_eraseClinit(asrjt_Float32$1);
34152
- asrjt_Float32$1__clinit_();
34151
+ var asrjt_Float64$1 = $rt_classWithoutFields();
34152
+ var asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = null;
34153
+ var asrjt_Float64$1_$callClinit = () => {
34154
+ asrjt_Float64$1_$callClinit = $rt_eraseClinit(asrjt_Float64$1);
34155
+ asrjt_Float64$1__clinit_();
34153
34156
  };
34154
- var asrjt_Float32$1__clinit_ = () => {
34157
+ var asrjt_Float64$1__clinit_ = () => {
34155
34158
  let var$1, var$2;
34156
34159
  var$1 = $rt_createIntArray(asrj_RoundingMode_values().data.length);
34157
34160
  var$2 = var$1.data;
34158
- asrjt_Float32$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34161
+ asrjt_Float64$1_$SwitchMap$app$specy$rars$jsoftfloat$RoundingMode = var$1;
34159
34162
  var$2[asrj_RoundingMode_zero.$ordinal0] = 1;
34160
34163
  var$2[asrj_RoundingMode_min.$ordinal0] = 2;
34161
34164
  var$2[asrj_RoundingMode_max.$ordinal0] = 3;
@@ -35305,6 +35308,52 @@ $rt_metadata([
35305
35308
  0,
35306
35309
  0,
35307
35310
  0,
35311
+ asrrh_RegisterFile,
35312
+ 0,
35313
+ jl_Object,
35314
+ [],
35315
+ 0,
35316
+ 3,
35317
+ 0,
35318
+ asrrh_RegisterFile_$callClinit,
35319
+ 0,
35320
+ ju_Arrays,
35321
+ 0,
35322
+ jl_Object,
35323
+ [],
35324
+ 0,
35325
+ 3,
35326
+ 0,
35327
+ 0,
35328
+ 0,
35329
+ juf_ToIntFunction,
35330
+ 0,
35331
+ jl_Object,
35332
+ [],
35333
+ 3,
35334
+ 3,
35335
+ 0,
35336
+ 0,
35337
+ 0,
35338
+ asr_JsRiscV$getRegistersValues$lambda$_25_0,
35339
+ 0,
35340
+ jl_Object,
35341
+ [juf_ToIntFunction],
35342
+ 0,
35343
+ 3,
35344
+ 0,
35345
+ 0,
35346
+ 0,
35347
+ jm_BigInteger,
35348
+ "BigInteger",
35349
+ 14,
35350
+ jl_Number,
35351
+ [jl_Comparable, ji_Serializable],
35352
+ 0,
35353
+ 3,
35354
+ 0,
35355
+ 0,
35356
+ ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35308
35357
  asr_JsRiscV$getTokenizedLines$lambda$_5_0,
35309
35358
  0,
35310
35359
  jl_Object,
@@ -35333,15 +35382,6 @@ $rt_metadata([
35333
35382
  0,
35334
35383
  0,
35335
35384
  0,
35336
- ju_Arrays,
35337
- 0,
35338
- jl_Object,
35339
- [],
35340
- 0,
35341
- 3,
35342
- 0,
35343
- 0,
35344
- 0,
35345
35385
  asr_JsRiscV$getUndoStack$lambda$_26_0,
35346
35386
  0,
35347
35387
  jl_Object,
@@ -35380,43 +35420,6 @@ $rt_metadata([
35380
35420
  0,
35381
35421
  0,
35382
35422
  0,
35383
- asrrh_RegisterFile,
35384
- 0,
35385
- jl_Object,
35386
- [],
35387
- 0,
35388
- 3,
35389
- 0,
35390
- asrrh_RegisterFile_$callClinit,
35391
- 0,
35392
- juf_ToIntFunction,
35393
- 0,
35394
- jl_Object,
35395
- [],
35396
- 3,
35397
- 3,
35398
- 0,
35399
- 0,
35400
- 0,
35401
- asr_JsRiscV$getRegistersValues$lambda$_25_0,
35402
- 0,
35403
- jl_Object,
35404
- [juf_ToIntFunction],
35405
- 0,
35406
- 3,
35407
- 0,
35408
- 0,
35409
- 0,
35410
- jm_BigInteger,
35411
- "BigInteger",
35412
- 14,
35413
- jl_Number,
35414
- [jl_Comparable, ji_Serializable],
35415
- 0,
35416
- 3,
35417
- 0,
35418
- 0,
35419
- ["$equals", $rt_wrapFunction1(jm_BigInteger_equals), "$toString", $rt_wrapFunction0(jm_BigInteger_toString)],
35420
35423
  asr_JsCompilationResult,
35421
35424
  "JsCompilationResult",
35422
35425
  10,
@@ -35539,24 +35542,16 @@ $rt_metadata([
35539
35542
  0,
35540
35543
  0,
35541
35544
  0,
35542
- asrs_BackStepper,
35543
- 0,
35544
- jl_Object,
35545
- [],
35546
- 0,
35547
- 3,
35548
- 0,
35549
- 0,
35550
- 0,
35551
- asrs_BackStepper$BackstepStack,
35552
- 0,
35553
- jl_Object,
35545
+ asrrh_Register,
35546
+ "Register",
35547
+ 7,
35548
+ ju_Observable,
35554
35549
  [],
35555
35550
  0,
35556
35551
  3,
35557
35552
  0,
35558
35553
  0,
35559
- 0,
35554
+ ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35560
35555
  jl_AutoCloseable,
35561
35556
  0,
35562
35557
  jl_Object,
@@ -35565,9 +35560,7 @@ $rt_metadata([
35565
35560
  3,
35566
35561
  0,
35567
35562
  0,
35568
- 0
35569
- ]);
35570
- $rt_metadata([
35563
+ 0,
35571
35564
  jus_BaseStream,
35572
35565
  0,
35573
35566
  jl_Object,
@@ -35576,7 +35569,9 @@ $rt_metadata([
35576
35569
  3,
35577
35570
  0,
35578
35571
  0,
35579
- 0,
35572
+ 0
35573
+ ]);
35574
+ $rt_metadata([
35580
35575
  jus_Stream,
35581
35576
  0,
35582
35577
  jl_Object,
@@ -35604,16 +35599,24 @@ $rt_metadata([
35604
35599
  0,
35605
35600
  0,
35606
35601
  ["$next1", $rt_wrapFunction1(jusi_ArrayStreamImpl_next), "$estimateSize", $rt_wrapFunction0(jusi_ArrayStreamImpl_estimateSize)],
35607
- asrrh_Register,
35608
- "Register",
35609
- 7,
35610
- ju_Observable,
35602
+ asrs_BackStepper,
35603
+ 0,
35604
+ jl_Object,
35611
35605
  [],
35612
35606
  0,
35613
35607
  3,
35614
35608
  0,
35615
35609
  0,
35616
- ["$getValue", $rt_wrapFunction0(asrrh_Register_getValue), "$getValueNoNotify", $rt_wrapFunction0(asrrh_Register_getValueNoNotify), "$setValue", $rt_wrapFunction1(asrrh_Register_setValue), "$resetValue", $rt_wrapFunction0(asrrh_Register_resetValue)],
35610
+ 0,
35611
+ asrs_BackStepper$BackstepStack,
35612
+ 0,
35613
+ jl_Object,
35614
+ [],
35615
+ 0,
35616
+ 3,
35617
+ 0,
35618
+ 0,
35619
+ 0,
35617
35620
  asr_JsCompilationResult$_init_$lambda$_0_0,
35618
35621
  0,
35619
35622
  jl_Object,
@@ -37872,24 +37875,6 @@ $rt_metadata([
37872
37875
  0,
37873
37876
  0,
37874
37877
  ["$next1", $rt_wrapFunction1(jusi_StreamOverSpliterator_next), "$estimateSize", $rt_wrapFunction0(jusi_StreamOverSpliterator_estimateSize)],
37875
- jusi_WrappingStreamImpl,
37876
- 0,
37877
- jusi_SimpleStreamImpl,
37878
- [],
37879
- 1,
37880
- 3,
37881
- 0,
37882
- 0,
37883
- 0,
37884
- jusi_MappingStreamImpl,
37885
- 0,
37886
- jusi_WrappingStreamImpl,
37887
- [],
37888
- 0,
37889
- 3,
37890
- 0,
37891
- 0,
37892
- ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37893
37878
  jus_IntStream,
37894
37879
  0,
37895
37880
  jl_Object,
@@ -37917,6 +37902,24 @@ $rt_metadata([
37917
37902
  0,
37918
37903
  0,
37919
37904
  0,
37905
+ jusi_WrappingStreamImpl,
37906
+ 0,
37907
+ jusi_SimpleStreamImpl,
37908
+ [],
37909
+ 1,
37910
+ 3,
37911
+ 0,
37912
+ 0,
37913
+ 0,
37914
+ jusi_MappingStreamImpl,
37915
+ 0,
37916
+ jusi_WrappingStreamImpl,
37917
+ [],
37918
+ 0,
37919
+ 3,
37920
+ 0,
37921
+ 0,
37922
+ ["$wrap3", $rt_wrapFunction1(jusi_MappingStreamImpl_wrap)],
37920
37923
  jm_Conversion,
37921
37924
  0,
37922
37925
  jl_Object,
@@ -37944,16 +37947,6 @@ $rt_metadata([
37944
37947
  0,
37945
37948
  0,
37946
37949
  ["$hasNext", $rt_wrapFunction0(ju_AbstractList$1_hasNext), "$next", $rt_wrapFunction0(ju_AbstractList$1_next)],
37947
- asrs_Simulator$Reason,
37948
- "Simulator$Reason",
37949
- 3,
37950
- jl_Enum,
37951
- [],
37952
- 12,
37953
- 3,
37954
- 0,
37955
- 0,
37956
- 0,
37957
37950
  asrrh_FloatingPointRegisterFile,
37958
37951
  0,
37959
37952
  jl_Object,
@@ -37999,6 +37992,16 @@ $rt_metadata([
37999
37992
  0,
38000
37993
  0,
38001
37994
  0,
37995
+ asrs_Simulator$Reason,
37996
+ "Simulator$Reason",
37997
+ 3,
37998
+ jl_Enum,
37999
+ [],
38000
+ 12,
38001
+ 3,
38002
+ 0,
38003
+ 0,
38004
+ 0,
38002
38005
  jur_Pattern,
38003
38006
  0,
38004
38007
  jl_Object,
@@ -38138,6 +38141,15 @@ $rt_metadata([
38138
38141
  0,
38139
38142
  0,
38140
38143
  0,
38144
+ jl_NegativeArraySizeException,
38145
+ 0,
38146
+ jl_RuntimeException,
38147
+ [],
38148
+ 0,
38149
+ 3,
38150
+ 0,
38151
+ 0,
38152
+ 0,
38141
38153
  otjc_JSObjects,
38142
38154
  0,
38143
38155
  jl_Object,
@@ -38165,15 +38177,6 @@ $rt_metadata([
38165
38177
  0,
38166
38178
  0,
38167
38179
  0,
38168
- jl_NegativeArraySizeException,
38169
- 0,
38170
- jl_RuntimeException,
38171
- [],
38172
- 0,
38173
- 3,
38174
- 0,
38175
- 0,
38176
- 0,
38177
38180
  ju_Arrays$ArrayAsList,
38178
38181
  0,
38179
38182
  ju_AbstractList,
@@ -41002,7 +41005,7 @@ $rt_metadata([
41002
41005
  0,
41003
41006
  0,
41004
41007
  0,
41005
- asrjt_Float32,
41008
+ asrjt_Float64,
41006
41009
  0,
41007
41010
  asrjt_Floating,
41008
41011
  [],
@@ -41012,37 +41015,37 @@ $rt_metadata([
41012
41015
  0,
41013
41016
  [
41014
41017
  "$isSignMinus",
41015
- $rt_wrapFunction0(asrjt_Float32_isSignMinus),
41018
+ $rt_wrapFunction0(asrjt_Float64_isSignMinus),
41016
41019
  "$isInfinite",
41017
- $rt_wrapFunction0(asrjt_Float32_isInfinite),
41020
+ $rt_wrapFunction0(asrjt_Float64_isInfinite),
41018
41021
  "$isNormal",
41019
- $rt_wrapFunction0(asrjt_Float32_isNormal),
41022
+ $rt_wrapFunction0(asrjt_Float64_isNormal),
41020
41023
  "$isSubnormal",
41021
- $rt_wrapFunction0(asrjt_Float32_isSubnormal),
41024
+ $rt_wrapFunction0(asrjt_Float64_isSubnormal),
41022
41025
  "$isNaN",
41023
- $rt_wrapFunction0(asrjt_Float32_isNaN),
41026
+ $rt_wrapFunction0(asrjt_Float64_isNaN),
41024
41027
  "$isSignalling",
41025
- $rt_wrapFunction0(asrjt_Float32_isSignalling),
41028
+ $rt_wrapFunction0(asrjt_Float64_isSignalling),
41026
41029
  "$isZero",
41027
- $rt_wrapFunction0(asrjt_Float32_isZero),
41030
+ $rt_wrapFunction0(asrjt_Float64_isZero),
41028
41031
  "$toExactFloat",
41029
- $rt_wrapFunction0(asrjt_Float32_toExactFloat),
41032
+ $rt_wrapFunction0(asrjt_Float64_toExactFloat),
41030
41033
  "$maxPrecision",
41031
- $rt_wrapFunction0(asrjt_Float32_maxPrecision),
41034
+ $rt_wrapFunction0(asrjt_Float64_maxPrecision),
41032
41035
  "$negate2",
41033
- $rt_wrapFunction0(asrjt_Float32_negate0),
41036
+ $rt_wrapFunction0(asrjt_Float64_negate0),
41034
41037
  "$fromExactFloat",
41035
- $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
41038
+ $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
41036
41039
  "$NegativeInfinity",
41037
- $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
41040
+ $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
41038
41041
  "$Infinity",
41039
- $rt_wrapFunction0(asrjt_Float32_Infinity0),
41042
+ $rt_wrapFunction0(asrjt_Float64_Infinity0),
41040
41043
  "$NegativeZero",
41041
- $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
41044
+ $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
41042
41045
  "$Zero",
41043
- $rt_wrapFunction0(asrjt_Float32_Zero0),
41046
+ $rt_wrapFunction0(asrjt_Float64_Zero0),
41044
41047
  "$NaN",
41045
- $rt_wrapFunction0(asrjt_Float32_NaN0)
41048
+ $rt_wrapFunction0(asrjt_Float64_NaN0)
41046
41049
  ],
41047
41050
  asrjo_Conversions,
41048
41051
  0,
@@ -41053,7 +41056,7 @@ $rt_metadata([
41053
41056
  0,
41054
41057
  0,
41055
41058
  0,
41056
- asrjt_Float64,
41059
+ asrjt_Float32,
41057
41060
  0,
41058
41061
  asrjt_Floating,
41059
41062
  [],
@@ -41063,39 +41066,39 @@ $rt_metadata([
41063
41066
  0,
41064
41067
  [
41065
41068
  "$isSignMinus",
41066
- $rt_wrapFunction0(asrjt_Float64_isSignMinus),
41069
+ $rt_wrapFunction0(asrjt_Float32_isSignMinus),
41067
41070
  "$isInfinite",
41068
- $rt_wrapFunction0(asrjt_Float64_isInfinite),
41071
+ $rt_wrapFunction0(asrjt_Float32_isInfinite),
41069
41072
  "$isNormal",
41070
- $rt_wrapFunction0(asrjt_Float64_isNormal),
41073
+ $rt_wrapFunction0(asrjt_Float32_isNormal),
41071
41074
  "$isSubnormal",
41072
- $rt_wrapFunction0(asrjt_Float64_isSubnormal),
41075
+ $rt_wrapFunction0(asrjt_Float32_isSubnormal),
41073
41076
  "$isNaN",
41074
- $rt_wrapFunction0(asrjt_Float64_isNaN),
41077
+ $rt_wrapFunction0(asrjt_Float32_isNaN),
41075
41078
  "$isSignalling",
41076
- $rt_wrapFunction0(asrjt_Float64_isSignalling),
41079
+ $rt_wrapFunction0(asrjt_Float32_isSignalling),
41077
41080
  "$isZero",
41078
- $rt_wrapFunction0(asrjt_Float64_isZero),
41081
+ $rt_wrapFunction0(asrjt_Float32_isZero),
41079
41082
  "$toExactFloat",
41080
- $rt_wrapFunction0(asrjt_Float64_toExactFloat),
41083
+ $rt_wrapFunction0(asrjt_Float32_toExactFloat),
41081
41084
  "$maxPrecision",
41082
- $rt_wrapFunction0(asrjt_Float64_maxPrecision),
41085
+ $rt_wrapFunction0(asrjt_Float32_maxPrecision),
41083
41086
  "$negate2",
41084
- $rt_wrapFunction0(asrjt_Float64_negate0),
41087
+ $rt_wrapFunction0(asrjt_Float32_negate0),
41085
41088
  "$fromExactFloat",
41086
- $rt_wrapFunction2(asrjt_Float64_fromExactFloat),
41089
+ $rt_wrapFunction2(asrjt_Float32_fromExactFloat),
41087
41090
  "$NegativeInfinity",
41088
- $rt_wrapFunction0(asrjt_Float64_NegativeInfinity0),
41091
+ $rt_wrapFunction0(asrjt_Float32_NegativeInfinity0),
41089
41092
  "$Infinity",
41090
- $rt_wrapFunction0(asrjt_Float64_Infinity0),
41093
+ $rt_wrapFunction0(asrjt_Float32_Infinity0),
41091
41094
  "$NegativeZero",
41092
- $rt_wrapFunction0(asrjt_Float64_NegativeZero0),
41095
+ $rt_wrapFunction0(asrjt_Float32_NegativeZero0),
41093
41096
  "$Zero",
41094
- $rt_wrapFunction0(asrjt_Float64_Zero0),
41097
+ $rt_wrapFunction0(asrjt_Float32_Zero0),
41095
41098
  "$NaN",
41096
- $rt_wrapFunction0(asrjt_Float64_NaN0)
41099
+ $rt_wrapFunction0(asrjt_Float32_NaN0)
41097
41100
  ],
41098
- asrjo_Comparisons,
41101
+ asrjo_Arithmetic,
41099
41102
  0,
41100
41103
  jl_Object,
41101
41104
  [],
@@ -41104,7 +41107,7 @@ $rt_metadata([
41104
41107
  0,
41105
41108
  0,
41106
41109
  0,
41107
- asrjo_Arithmetic,
41110
+ asrjo_Comparisons,
41108
41111
  0,
41109
41112
  jl_Object,
41110
41113
  [],
@@ -41141,15 +41144,6 @@ $rt_metadata([
41141
41144
  0,
41142
41145
  0,
41143
41146
  0,
41144
- asrji_ExactFloat,
41145
- 0,
41146
- jl_Object,
41147
- [jl_Comparable],
41148
- 0,
41149
- 3,
41150
- 0,
41151
- 0,
41152
- 0,
41153
41147
  asrj_Flags,
41154
41148
  "Flags",
41155
41149
  9,
@@ -41160,6 +41154,15 @@ $rt_metadata([
41160
41154
  0,
41161
41155
  0,
41162
41156
  0,
41157
+ asrji_ExactFloat,
41158
+ 0,
41159
+ jl_Object,
41160
+ [jl_Comparable],
41161
+ 0,
41162
+ 3,
41163
+ 0,
41164
+ 0,
41165
+ 0,
41163
41166
  ju_EnumSet,
41164
41167
  0,
41165
41168
  ju_AbstractSet,
@@ -41342,23 +41345,23 @@ $rt_metadata([
41342
41345
  0,
41343
41346
  0,
41344
41347
  0,
41345
- asrjt_Float64$1,
41348
+ asrjt_Float32$1,
41346
41349
  0,
41347
41350
  jl_Object,
41348
41351
  [],
41349
41352
  32,
41350
41353
  0,
41351
41354
  0,
41352
- asrjt_Float64$1_$callClinit,
41355
+ asrjt_Float32$1_$callClinit,
41353
41356
  0,
41354
- asrjt_Float32$1,
41357
+ asrjt_Float64$1,
41355
41358
  0,
41356
41359
  jl_Object,
41357
41360
  [],
41358
41361
  32,
41359
41362
  0,
41360
41363
  0,
41361
- asrjt_Float32$1_$callClinit,
41364
+ asrjt_Float64$1_$callClinit,
41362
41365
  0
41363
41366
  ]);
41364
41367
  $rt_metadata([
@@ -42541,13 +42544,6 @@ $rt_stringPool([
42541
42544
  "0.000000",
42542
42545
  "0E",
42543
42546
  "0E+",
42544
- "BREAKPOINT",
42545
- "EXCEPTION",
42546
- "MAX_STEPS",
42547
- "NORMAL_TERMINATION",
42548
- "CLIFF_TERMINATION",
42549
- "PAUSE",
42550
- "STOP",
42551
42547
  "ft0",
42552
42548
  "ft1",
42553
42549
  "ft2",
@@ -42595,6 +42591,13 @@ $rt_stringPool([
42595
42591
  "Cannot claim, no timer interrupt pending",
42596
42592
  "Cannot claim, no trap pending",
42597
42593
  "trapPC doesn't match current pc",
42594
+ "BREAKPOINT",
42595
+ "EXCEPTION",
42596
+ "MAX_STEPS",
42597
+ "NORMAL_TERMINATION",
42598
+ "CLIFF_TERMINATION",
42599
+ "PAUSE",
42600
+ "STOP",
42598
42601
  "Patter is null",
42599
42602
  "Recursive include of file ",
42600
42603
  "Error reading include file ",
@@ -43122,12 +43125,12 @@ var $rt_jso_marker = Symbol("jsoClass");
43122
43125
  c.setUndoEnabled = $rt_callWithReceiver(asr_JsRiscV_setUndoEnabled$exported$23);
43123
43126
  c.getRegistersValues = $rt_callWithReceiver(asr_JsRiscV_getRegistersValues$exported$6);
43124
43127
  c.readMemoryBytes = $rt_callWithReceiver(asr_JsRiscV_readMemoryBytes$exported$33);
43125
- c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$8);
43128
+ c.undo = $rt_callWithReceiver(asr_JsRiscV_undo$exported$9);
43126
43129
  c.getParsedStatements = $rt_callWithReceiver(asr_JsRiscV_getParsedStatements$exported$21);
43127
43130
  c.getStatementAtSourceLine = $rt_callWithReceiver(asr_JsRiscV_getStatementAtSourceLine$exported$22);
43128
43131
  c.setUndoSize = $rt_callWithReceiver(asr_JsRiscV_setUndoSize$exported$20);
43129
43132
  c.getUndoStack = $rt_callWithReceiver(asr_JsRiscV_getUndoStack$exported$15);
43130
- c.setRegisterValue = $rt_callWithReceiver(asr_JsRiscV_setRegisterValue$exported$9);
43133
+ c.setRegisterValue = $rt_callWithReceiver(asr_JsRiscV_setRegisterValue$exported$8);
43131
43134
  c.getStopReason = $rt_callWithReceiver(asr_JsRiscV_getStopReason$exported$24);
43132
43135
  c.getLabelAtAddress = $rt_callWithReceiver(asr_JsRiscV_getLabelAtAddress$exported$2);
43133
43136
  c.simulate = $rt_callWithReceiver(asr_JsRiscV_simulate$exported$25);
@@ -43288,18 +43291,18 @@ function $rt_export_class_JsInstruction_33() {
43288
43291
  throw new Error("Can't instantiate this class directly");
43289
43292
  }
43290
43293
  $rt_export_class_JsInstruction_33.prototype = asr_JsInstruction.prototype;
43291
- function $rt_export_class_JsRiscVTokenizedLine_73() {
43294
+ function $rt_export_class_JsRiscVTokenizedLine_78() {
43292
43295
  throw new Error("Can't instantiate this class directly");
43293
43296
  }
43294
- $rt_export_class_JsRiscVTokenizedLine_73.prototype = asr_JsRiscVTokenizedLine.prototype;
43295
- function $rt_export_class_JsBackStep_77() {
43297
+ $rt_export_class_JsRiscVTokenizedLine_78.prototype = asr_JsRiscVTokenizedLine.prototype;
43298
+ function $rt_export_class_JsBackStep_81() {
43296
43299
  throw new Error("Can't instantiate this class directly");
43297
43300
  }
43298
- $rt_export_class_JsBackStep_77.prototype = asr_JsBackStep.prototype;
43299
- function $rt_export_class_JsProgramStatement_78() {
43301
+ $rt_export_class_JsBackStep_81.prototype = asr_JsBackStep.prototype;
43302
+ function $rt_export_class_JsProgramStatement_82() {
43300
43303
  throw new Error("Can't instantiate this class directly");
43301
43304
  }
43302
- $rt_export_class_JsProgramStatement_78.prototype = asr_JsProgramStatement.prototype;
43305
+ $rt_export_class_JsProgramStatement_82.prototype = asr_JsProgramStatement.prototype;
43303
43306
  function $rt_export_class_JsCompilationResult_83() {
43304
43307
  throw new Error("Can't instantiate this class directly");
43305
43308
  }
@@ -43426,6 +43429,11 @@ function makeRiscVfromSource(source) {
43426
43429
  function initializeRISCV() {
43427
43430
  asr_JsRiscV_initializeRISCV$exported$0();
43428
43431
  }
43432
+ function bigintToHighLow(value) {
43433
+ const high = Number(value >> 32n & 0xFFFFFFFFn);
43434
+ const low = Number(value & 0xFFFFFFFFn);
43435
+ return [high, low];
43436
+ }
43429
43437
  // Annotate the CommonJS export names for ESM import in node:
43430
43438
  0 && (module.exports = {
43431
43439
  BackStepAction,
@@ -43435,6 +43443,7 @@ function initializeRISCV() {
43435
43443
  RISCVRegisters,
43436
43444
  RISCV_REGISTERS,
43437
43445
  StopReason,
43446
+ bigintToHighLow,
43438
43447
  registerHandlers,
43439
43448
  unimplementedHandler
43440
43449
  });