@@ -939,11 +939,6 @@ enum LIR_Code {
939939 , lir_alloc_object
940940 , lir_monaddr
941941 , lir_roundfp
942- , lir_sqrt
943- , lir_abs
944- , lir_neg
945- , lir_f2hf
946- , lir_hf2f
947942 , lir_safepoint
948943 , lir_unwind
949944 , lir_load_klass
@@ -960,6 +955,13 @@ enum LIR_Code {
960955 , lir_mul
961956 , lir_div
962957 , lir_rem
958+ , lir_sqrt
959+ , lir_abs
960+ , lir_neg
961+ , lir_tan
962+ , lir_f2hf
963+ , lir_hf2f
964+ , lir_log10
963965 , lir_logic_and
964966 , lir_logic_or
965967 , lir_logic_xor
@@ -1355,7 +1357,6 @@ class LIR_Op1: public LIR_Op {
13551357
13561358 protected:
13571359 LIR_Opr _opr; // input operand
1358- LIR_Opr _tmp;
13591360 BasicType _type; // Operand types
13601361 LIR_PatchCode _patch; // only required with patchin (NEEDS_CLEANUP: do we want a special instruction for patching?)
13611362
@@ -1370,21 +1371,12 @@ class LIR_Op1: public LIR_Op {
13701371 LIR_Op1 (LIR_Code code, LIR_Opr opr, LIR_Opr result = LIR_OprFact::illegalOpr, BasicType type = T_ILLEGAL, LIR_PatchCode patch = lir_patch_none, CodeEmitInfo* info = nullptr )
13711372 : LIR_Op(code, result, info)
13721373 , _opr(opr)
1373- , _tmp(LIR_OprFact::illegalOpr)
1374- , _type(type)
1375- , _patch(patch) { assert (is_in_range (code, begin_op1, end_op1), " code check" ); }
1376-
1377- LIR_Op1 (LIR_Code code, LIR_Opr opr, LIR_Opr result, LIR_Opr tmp, BasicType type = T_ILLEGAL, LIR_PatchCode patch = lir_patch_none, CodeEmitInfo* info = nullptr )
1378- : LIR_Op(code, result, info)
1379- , _opr(opr)
1380- , _tmp(tmp)
13811374 , _type(type)
13821375 , _patch(patch) { assert (is_in_range (code, begin_op1, end_op1), " code check" ); }
13831376
13841377 LIR_Op1 (LIR_Code code, LIR_Opr opr, LIR_Opr result, BasicType type, LIR_PatchCode patch, CodeEmitInfo* info, LIR_MoveKind kind)
13851378 : LIR_Op(code, result, info)
13861379 , _opr(opr)
1387- , _tmp(LIR_OprFact::illegalOpr)
13881380 , _type(type)
13891381 , _patch(patch) {
13901382 assert (code == lir_move, " must be" );
@@ -1394,12 +1386,10 @@ class LIR_Op1: public LIR_Op {
13941386 LIR_Op1 (LIR_Code code, LIR_Opr opr, CodeEmitInfo* info)
13951387 : LIR_Op(code, LIR_OprFact::illegalOpr, info)
13961388 , _opr(opr)
1397- , _tmp(LIR_OprFact::illegalOpr)
13981389 , _type(T_ILLEGAL)
13991390 , _patch(lir_patch_none) { assert (is_in_range (code, begin_op1, end_op1), " code check" ); }
14001391
14011392 LIR_Opr in_opr () const { return _opr; }
1402- LIR_Opr tmp_opr () const { return _tmp; }
14031393 LIR_PatchCode patch_code () const { return _patch; }
14041394 BasicType type () const { return _type; }
14051395
@@ -2282,13 +2272,15 @@ class LIR_List: public CompilationResourceObj {
22822272 void cas_int (LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value,
22832273 LIR_Opr t1, LIR_Opr t2, LIR_Opr result = LIR_OprFact::illegalOpr);
22842274
2285- void abs (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op1 (lir_abs , from, to, tmp )); }
2286- void negate (LIR_Opr from, LIR_Opr to, LIR_Opr tmp = LIR_OprFact::illegalOpr) { append (new LIR_Op1 (lir_neg, from, to, tmp )); }
2287- void sqrt (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op1 (lir_sqrt, from, to, tmp )); }
2275+ void abs (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op2 (lir_abs , from, tmp, to )); }
2276+ void negate (LIR_Opr from, LIR_Opr to, LIR_Opr tmp = LIR_OprFact::illegalOpr) { append (new LIR_Op2 (lir_neg, from, tmp, to )); }
2277+ void sqrt (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op2 (lir_sqrt, from, tmp, to )); }
22882278 void fmad (LIR_Opr from, LIR_Opr from1, LIR_Opr from2, LIR_Opr to) { append (new LIR_Op3 (lir_fmad, from, from1, from2, to)); }
22892279 void fmaf (LIR_Opr from, LIR_Opr from1, LIR_Opr from2, LIR_Opr to) { append (new LIR_Op3 (lir_fmaf, from, from1, from2, to)); }
2290- void f2hf (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op1 (lir_f2hf, from, to, tmp)); }
2291- void hf2f (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op1 (lir_hf2f, from, to, tmp)); }
2280+ void log10 (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op2 (lir_log10, from, LIR_OprFact::illegalOpr, to, tmp)); }
2281+ void tan (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2) { append (new LIR_Op2 (lir_tan , from, tmp1, to, tmp2)); }
2282+ void f2hf (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op2 (lir_f2hf, from, tmp, to)); }
2283+ void hf2f (LIR_Opr from, LIR_Opr to, LIR_Opr tmp) { append (new LIR_Op2 (lir_hf2f, from, tmp, to)); }
22922284
22932285 void add (LIR_Opr left, LIR_Opr right, LIR_Opr res) { append (new LIR_Op2 (lir_add, left, right, res)); }
22942286 void sub (LIR_Opr left, LIR_Opr right, LIR_Opr res, CodeEmitInfo* info = nullptr ) { append (new LIR_Op2 (lir_sub, left, right, res, info)); }
0 commit comments