@@ -307,6 +307,51 @@ trait TreeDeconstructor {
307
307
(NoIdentifiers , NoVariables , Seq (t1, t2), NoTypes , NoFlags ,
308
308
(_, _, es, _, _) => t.FPEquals (es(0 ), es(1 )))
309
309
},
310
+ classOf [s.FPAdd ] -> { expr =>
311
+ val s .FPAdd (rm, t1, t2) = expr : @ unchecked
312
+ (NoIdentifiers , NoVariables , Seq (rm, t1, t2), NoTypes , NoFlags ,
313
+ (_, _, es, _, _) => t.FPAdd (es(0 ), es(1 ), es(2 )))
314
+ },
315
+ classOf [s.FPSub ] -> { expr =>
316
+ val s .FPSub (rm, t1, t2) = expr : @ unchecked
317
+ (NoIdentifiers , NoVariables , Seq (rm, t1, t2), NoTypes , NoFlags ,
318
+ (_, _, es, _, _) => t.FPSub (es(0 ), es(1 ), es(2 )))
319
+ },
320
+ classOf [s.FPMul ] -> { expr =>
321
+ val s .FPMul (rm, t1, t2) = expr : @ unchecked
322
+ (NoIdentifiers , NoVariables , Seq (rm, t1, t2), NoTypes , NoFlags ,
323
+ (_, _, es, _, _) => t.FPMul (es(0 ), es(1 ), es(2 )))
324
+ },
325
+ classOf [s.FPDiv ] -> { expr =>
326
+ val s .FPDiv (rm, t1, t2) = expr : @ unchecked
327
+ (NoIdentifiers , NoVariables , Seq (rm, t1, t2), NoTypes , NoFlags ,
328
+ (_, _, es, _, _) => t.FPDiv (es(0 ), es(1 ), es(2 )))
329
+ },
330
+ classOf [s.FPCast ] -> { expr =>
331
+ val s .FPCast (eb, sb, rm, e) = expr : @ unchecked
332
+ (NoIdentifiers , NoVariables , Seq (rm, e), NoTypes , NoFlags ,
333
+ (_, _, es, _, _) => t.FPCast (eb, sb, es(0 ), es(1 )))
334
+ },
335
+ classOf [s.RoundTowardZero .type ] -> { expr =>
336
+ (NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags ,
337
+ (_, _, _, _, _) => t.RoundTowardZero )
338
+ },
339
+ classOf [s.RoundTowardNegative .type ] -> { expr =>
340
+ (NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags ,
341
+ (_, _, _, _, _) => t.RoundTowardNegative )
342
+ },
343
+ classOf [s.RoundTowardPositive .type ] -> { expr =>
344
+ (NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags ,
345
+ (_, _, _, _, _) => t.RoundTowardPositive )
346
+ },
347
+ classOf [s.RoundNearestTiesToAway .type ] -> { expr =>
348
+ (NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags ,
349
+ (_, _, _, _, _) => t.RoundNearestTiesToAway )
350
+ },
351
+ classOf [s.RoundNearestTiesToEven .type ] -> { expr =>
352
+ (NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags ,
353
+ (_, _, _, _, _) => t.RoundNearestTiesToEven )
354
+ },
310
355
classOf [s.Tuple ] -> { expr =>
311
356
val s .Tuple (args) = expr : @ unchecked
312
357
(NoIdentifiers , NoVariables , args, NoTypes , NoFlags ,
@@ -473,7 +518,10 @@ trait TreeDeconstructor {
473
518
(NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags ,
474
519
(_, _, _, _, _) => t.FPType (exponent, significand))
475
520
},
476
-
521
+ classOf [s.RoundingMode .type ] -> { tpe =>
522
+ (NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags ,
523
+ (_, _, _, _, _) => t.RoundingMode )
524
+ },
477
525
// @nv: can't use `s.Untyped.getClass` as it is not yet created at this point
478
526
scala.reflect.classTag[s.Untyped .type ].runtimeClass -> { _ =>
479
527
(NoIdentifiers , NoVariables , NoExpressions , NoTypes , NoFlags , (_, _, _, _, _) => t.Untyped )
0 commit comments