2299 switch( n->Opcode() ) { // Handle some opcodes special
2300 case Op_StorePConditional:
2301 case Op_StoreIConditional:
2302 case Op_StoreLConditional:
2303 case Op_CompareAndSwapI:
2304 case Op_CompareAndSwapL:
2305 case Op_CompareAndSwapP:
2306 case Op_CompareAndSwapN: { // Convert trinary to binary-tree
2307 Node *newval = n->in(MemNode::ValueIn );
2308 Node *oldval = n->in(LoadStoreConditionalNode::ExpectedIn);
2309 Node *pair = new BinaryNode( oldval, newval );
2310 n->set_req(MemNode::ValueIn,pair);
2311 n->del_req(LoadStoreConditionalNode::ExpectedIn);
2312 break;
2313 }
2314 case Op_CMoveD: // Convert trinary to binary-tree
2315 case Op_CMoveF:
2316 case Op_CMoveI:
2317 case Op_CMoveL:
2318 case Op_CMoveN:
2319 case Op_CMoveP: {
2320 // Restructure into a binary tree for Matching. It's possible that
2321 // we could move this code up next to the graph reshaping for IfNodes
2322 // or vice-versa, but I do not want to debug this for Ladybird.
2323 // 10/2/2000 CNC.
2324 Node *pair1 = new BinaryNode(n->in(1),n->in(1)->in(1));
2325 n->set_req(1,pair1);
2326 Node *pair2 = new BinaryNode(n->in(2),n->in(3));
2327 n->set_req(2,pair2);
2328 n->del_req(3);
2329 break;
2330 }
2331 case Op_LoopLimit: {
2332 Node *pair1 = new BinaryNode(n->in(1),n->in(2));
2333 n->set_req(1,pair1);
2334 n->set_req(2,n->in(3));
2335 n->del_req(3);
2336 break;
2337 }
2338 case Op_StrEquals: {
2339 Node *pair1 = new BinaryNode(n->in(2),n->in(3));
|
2299 switch( n->Opcode() ) { // Handle some opcodes special
2300 case Op_StorePConditional:
2301 case Op_StoreIConditional:
2302 case Op_StoreLConditional:
2303 case Op_CompareAndSwapI:
2304 case Op_CompareAndSwapL:
2305 case Op_CompareAndSwapP:
2306 case Op_CompareAndSwapN: { // Convert trinary to binary-tree
2307 Node *newval = n->in(MemNode::ValueIn );
2308 Node *oldval = n->in(LoadStoreConditionalNode::ExpectedIn);
2309 Node *pair = new BinaryNode( oldval, newval );
2310 n->set_req(MemNode::ValueIn,pair);
2311 n->del_req(LoadStoreConditionalNode::ExpectedIn);
2312 break;
2313 }
2314 case Op_CMoveD: // Convert trinary to binary-tree
2315 case Op_CMoveF:
2316 case Op_CMoveI:
2317 case Op_CMoveL:
2318 case Op_CMoveN:
2319 case Op_CMoveP:
2320 case Op_CMoveVD: {
2321 // Restructure into a binary tree for Matching. It's possible that
2322 // we could move this code up next to the graph reshaping for IfNodes
2323 // or vice-versa, but I do not want to debug this for Ladybird.
2324 // 10/2/2000 CNC.
2325 Node *pair1 = new BinaryNode(n->in(1),n->in(1)->in(1));
2326 n->set_req(1,pair1);
2327 Node *pair2 = new BinaryNode(n->in(2),n->in(3));
2328 n->set_req(2,pair2);
2329 n->del_req(3);
2330 break;
2331 }
2332 case Op_LoopLimit: {
2333 Node *pair1 = new BinaryNode(n->in(1),n->in(2));
2334 n->set_req(1,pair1);
2335 n->set_req(2,n->in(3));
2336 n->del_req(3);
2337 break;
2338 }
2339 case Op_StrEquals: {
2340 Node *pair1 = new BinaryNode(n->in(2),n->in(3));
|