Mercurial > hg > graal-jvmci-8
comparison src/share/vm/adlc/output_h.cpp @ 293:c3e045194476
6731641: assert(m->adr_type() == mach->adr_type(),"matcher should not change adr type")
Summary: fixed few addP node type and narrow oop type problems.
Reviewed-by: rasbold, never
author | kvn |
---|---|
date | Fri, 01 Aug 2008 10:06:45 -0700 |
parents | d1605aabd0a1 |
children | 4d9884b01ba6 |
comparison
equal
deleted
inserted
replaced
257:40b69ca33f4b | 293:c3e045194476 |
---|---|
1846 } | 1846 } |
1847 // Special hack for ideal CMoveP; ideal type depends on inputs | 1847 // Special hack for ideal CMoveP; ideal type depends on inputs |
1848 fprintf(fp," const Type *bottom_type() const { const Type *t = in(oper_input_base()+%d)->bottom_type(); return (req() <= oper_input_base()+%d) ? t : t->meet(in(oper_input_base()+%d)->bottom_type()); } // CMoveP\n", | 1848 fprintf(fp," const Type *bottom_type() const { const Type *t = in(oper_input_base()+%d)->bottom_type(); return (req() <= oper_input_base()+%d) ? t : t->meet(in(oper_input_base()+%d)->bottom_type()); } // CMoveP\n", |
1849 offset, offset+1, offset+1); | 1849 offset, offset+1, offset+1); |
1850 } | 1850 } |
1851 else if( instr->_matrule && instr->_matrule->_rChild && !strcmp(instr->_matrule->_rChild->_opType,"CMoveN") ) { | |
1852 int offset = 1; | |
1853 // Special special hack to see if the Cmp? has been incorporated in the conditional move | |
1854 MatchNode *rl = instr->_matrule->_rChild->_lChild; | |
1855 if( rl && !strcmp(rl->_opType, "Binary") ) { | |
1856 MatchNode *rlr = rl->_rChild; | |
1857 if (rlr && strncmp(rlr->_opType, "Cmp", 3) == 0) | |
1858 offset = 2; | |
1859 } | |
1860 // Special hack for ideal CMoveN; ideal type depends on inputs | |
1861 fprintf(fp," const Type *bottom_type() const { const Type *t = in(oper_input_base()+%d)->bottom_type(); return (req() <= oper_input_base()+%d) ? t : t->meet(in(oper_input_base()+%d)->bottom_type()); } // CMoveN\n", | |
1862 offset, offset+1, offset+1); | |
1863 } | |
1851 else if( instr->needs_base_oop_edge(_globalNames) ) { | 1864 else if( instr->needs_base_oop_edge(_globalNames) ) { |
1852 // Special hack for ideal AddP. Bottom type is an oop IFF it has a | 1865 // Special hack for ideal AddP. Bottom type is an oop IFF it has a |
1853 // legal base-pointer input. Otherwise it is NOT an oop. | 1866 // legal base-pointer input. Otherwise it is NOT an oop. |
1854 fprintf(fp," const Type *bottom_type() const { return AddPNode::mach_bottom_type(this); } // AddP\n"); | 1867 fprintf(fp," const Type *bottom_type() const { return AddPNode::mach_bottom_type(this); } // AddP\n"); |
1855 } | 1868 } |