comparison src/share/vm/c1/c1_LIRGenerator.cpp @ 4816:9164b8236699

7131028: Switch statement takes wrong path Summary: Pass correct type to branch in LIRGenerator::do_SwitchRanges() Reviewed-by: kvn, never
author iveresov
date Fri, 20 Jan 2012 15:02:12 -0800
parents 069ab3f976d3
children 701a83c86f28
comparison
equal deleted inserted replaced
4815:53a127075045 4816:9164b8236699
2348 __ cmp(lir_cond_equal, value, high_key); 2348 __ cmp(lir_cond_equal, value, high_key);
2349 __ branch(lir_cond_equal, T_INT, dest); 2349 __ branch(lir_cond_equal, T_INT, dest);
2350 } else { 2350 } else {
2351 LabelObj* L = new LabelObj(); 2351 LabelObj* L = new LabelObj();
2352 __ cmp(lir_cond_less, value, low_key); 2352 __ cmp(lir_cond_less, value, low_key);
2353 __ branch(lir_cond_less, L->label()); 2353 __ branch(lir_cond_less, T_INT, L->label());
2354 __ cmp(lir_cond_lessEqual, value, high_key); 2354 __ cmp(lir_cond_lessEqual, value, high_key);
2355 __ branch(lir_cond_lessEqual, T_INT, dest); 2355 __ branch(lir_cond_lessEqual, T_INT, dest);
2356 __ branch_destination(L->label()); 2356 __ branch_destination(L->label());
2357 } 2357 }
2358 } 2358 }