src/share/vm/c1/c1_LIR.hpp

changeset 3787
6759698e3140
parent 3592
701a83c86f28
child 3969
1d7922586cf6
     1.1 --- a/src/share/vm/c1/c1_LIR.hpp	Mon May 14 09:36:00 2012 -0700
     1.2 +++ b/src/share/vm/c1/c1_LIR.hpp	Tue May 15 10:10:23 2012 +0200
     1.3 @@ -916,6 +916,8 @@
     1.4        , lir_tan
     1.5        , lir_log
     1.6        , lir_log10
     1.7 +      , lir_exp
     1.8 +      , lir_pow
     1.9        , lir_logic_and
    1.10        , lir_logic_or
    1.11        , lir_logic_xor
    1.12 @@ -1560,7 +1562,11 @@
    1.13    LIR_Opr   _opr1;
    1.14    LIR_Opr   _opr2;
    1.15    BasicType _type;
    1.16 -  LIR_Opr   _tmp;
    1.17 +  LIR_Opr   _tmp1;
    1.18 +  LIR_Opr   _tmp2;
    1.19 +  LIR_Opr   _tmp3;
    1.20 +  LIR_Opr   _tmp4;
    1.21 +  LIR_Opr   _tmp5;
    1.22    LIR_Condition _condition;
    1.23  
    1.24    void verify() const;
    1.25 @@ -1573,7 +1579,11 @@
    1.26      , _type(T_ILLEGAL)
    1.27      , _condition(condition)
    1.28      , _fpu_stack_size(0)
    1.29 -    , _tmp(LIR_OprFact::illegalOpr) {
    1.30 +    , _tmp1(LIR_OprFact::illegalOpr)
    1.31 +    , _tmp2(LIR_OprFact::illegalOpr)
    1.32 +    , _tmp3(LIR_OprFact::illegalOpr)
    1.33 +    , _tmp4(LIR_OprFact::illegalOpr)
    1.34 +    , _tmp5(LIR_OprFact::illegalOpr) {
    1.35      assert(code == lir_cmp, "code check");
    1.36    }
    1.37  
    1.38 @@ -1584,7 +1594,11 @@
    1.39      , _type(type)
    1.40      , _condition(condition)
    1.41      , _fpu_stack_size(0)
    1.42 -    , _tmp(LIR_OprFact::illegalOpr) {
    1.43 +    , _tmp1(LIR_OprFact::illegalOpr)
    1.44 +    , _tmp2(LIR_OprFact::illegalOpr)
    1.45 +    , _tmp3(LIR_OprFact::illegalOpr)
    1.46 +    , _tmp4(LIR_OprFact::illegalOpr)
    1.47 +    , _tmp5(LIR_OprFact::illegalOpr) {
    1.48      assert(code == lir_cmove, "code check");
    1.49      assert(type != T_ILLEGAL, "cmove should have type");
    1.50    }
    1.51 @@ -1597,25 +1611,38 @@
    1.52      , _type(type)
    1.53      , _condition(lir_cond_unknown)
    1.54      , _fpu_stack_size(0)
    1.55 -    , _tmp(LIR_OprFact::illegalOpr) {
    1.56 +    , _tmp1(LIR_OprFact::illegalOpr)
    1.57 +    , _tmp2(LIR_OprFact::illegalOpr)
    1.58 +    , _tmp3(LIR_OprFact::illegalOpr)
    1.59 +    , _tmp4(LIR_OprFact::illegalOpr)
    1.60 +    , _tmp5(LIR_OprFact::illegalOpr) {
    1.61      assert(code != lir_cmp && is_in_range(code, begin_op2, end_op2), "code check");
    1.62    }
    1.63  
    1.64 -  LIR_Op2(LIR_Code code, LIR_Opr opr1, LIR_Opr opr2, LIR_Opr result, LIR_Opr tmp)
    1.65 +  LIR_Op2(LIR_Code code, LIR_Opr opr1, LIR_Opr opr2, LIR_Opr result, LIR_Opr tmp1, LIR_Opr tmp2 = LIR_OprFact::illegalOpr,
    1.66 +          LIR_Opr tmp3 = LIR_OprFact::illegalOpr, LIR_Opr tmp4 = LIR_OprFact::illegalOpr, LIR_Opr tmp5 = LIR_OprFact::illegalOpr)
    1.67      : LIR_Op(code, result, NULL)
    1.68      , _opr1(opr1)
    1.69      , _opr2(opr2)
    1.70      , _type(T_ILLEGAL)
    1.71      , _condition(lir_cond_unknown)
    1.72      , _fpu_stack_size(0)
    1.73 -    , _tmp(tmp) {
    1.74 +    , _tmp1(tmp1)
    1.75 +    , _tmp2(tmp2)
    1.76 +    , _tmp3(tmp3)
    1.77 +    , _tmp4(tmp4)
    1.78 +    , _tmp5(tmp5) {
    1.79      assert(code != lir_cmp && is_in_range(code, begin_op2, end_op2), "code check");
    1.80    }
    1.81  
    1.82    LIR_Opr in_opr1() const                        { return _opr1; }
    1.83    LIR_Opr in_opr2() const                        { return _opr2; }
    1.84    BasicType type()  const                        { return _type; }
    1.85 -  LIR_Opr tmp_opr() const                        { return _tmp; }
    1.86 +  LIR_Opr tmp1_opr() const                       { return _tmp1; }
    1.87 +  LIR_Opr tmp2_opr() const                       { return _tmp2; }
    1.88 +  LIR_Opr tmp3_opr() const                       { return _tmp3; }
    1.89 +  LIR_Opr tmp4_opr() const                       { return _tmp4; }
    1.90 +  LIR_Opr tmp5_opr() const                       { return _tmp5; }
    1.91    LIR_Condition condition() const  {
    1.92      assert(code() == lir_cmp || code() == lir_cmove, "only valid for cmp and cmove"); return _condition;
    1.93    }
    1.94 @@ -2025,6 +2052,8 @@
    1.95    void sin (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_Op2(lir_sin , from, tmp1, to, tmp2)); }
    1.96    void cos (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_Op2(lir_cos , from, tmp1, to, tmp2)); }
    1.97    void tan (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2) { append(new LIR_Op2(lir_tan , from, tmp1, to, tmp2)); }
    1.98 +  void exp (LIR_Opr from, LIR_Opr to, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, LIR_Opr tmp4, LIR_Opr tmp5)                { append(new LIR_Op2(lir_exp , from, tmp1, to, tmp2, tmp3, tmp4, tmp5)); }
    1.99 +  void pow (LIR_Opr arg1, LIR_Opr arg2, LIR_Opr res, LIR_Opr tmp1, LIR_Opr tmp2, LIR_Opr tmp3, LIR_Opr tmp4, LIR_Opr tmp5) { append(new LIR_Op2(lir_pow, arg1, arg2, res, tmp1, tmp2, tmp3, tmp4, tmp5)); }
   1.100  
   1.101    void add (LIR_Opr left, LIR_Opr right, LIR_Opr res)      { append(new LIR_Op2(lir_add, left, right, res)); }
   1.102    void sub (LIR_Opr left, LIR_Opr right, LIR_Opr res, CodeEmitInfo* info = NULL) { append(new LIR_Op2(lir_sub, left, right, res, info)); }

mercurial