8273416: C2: assert(false) failed: bad AD file after JDK-8252372 with UseSSE={0,1}

Reviewed-by: kvn, roland
This commit is contained in:
Aleksey Shipilev 2021-11-01 12:30:43 +00:00
parent dbf5100dd7
commit 89ade1d7e8
2 changed files with 22 additions and 2 deletions

View File

@ -7203,6 +7203,7 @@ instruct castLL( eRegL dst ) %{
%}
instruct castFF( regF dst ) %{
predicate(UseSSE >= 2);
match(Set dst (CastFF dst));
format %{ "#castFF of $dst" %}
ins_encode( /*empty encoding*/ );
@ -7211,6 +7212,25 @@ instruct castFF( regF dst ) %{
%}
instruct castDD( regD dst ) %{
predicate(UseSSE >= 2);
match(Set dst (CastDD dst));
format %{ "#castDD of $dst" %}
ins_encode( /*empty encoding*/ );
ins_cost(0);
ins_pipe( empty );
%}
instruct castFF_PR( regFPR dst ) %{
predicate(UseSSE < 2);
match(Set dst (CastFF dst));
format %{ "#castFF of $dst" %}
ins_encode( /*empty encoding*/ );
ins_cost(0);
ins_pipe( empty );
%}
instruct castDD_PR( regDPR dst ) %{
predicate(UseSSE < 2);
match(Set dst (CastDD dst));
format %{ "#castDD of $dst" %}
ins_encode( /*empty encoding*/ );

View File

@ -140,7 +140,7 @@ public:
init_class_id(Class_CastFF);
}
virtual int Opcode() const;
virtual uint ideal_reg() const { return Op_RegF; }
virtual uint ideal_reg() const { return in(1)->ideal_reg(); }
};
class CastDDNode: public ConstraintCastNode {
@ -150,7 +150,7 @@ public:
init_class_id(Class_CastDD);
}
virtual int Opcode() const;
virtual uint ideal_reg() const { return Op_RegD; }
virtual uint ideal_reg() const { return in(1)->ideal_reg(); }
};
class CastVVNode: public ConstraintCastNode {