comparison src/cpu/sparc/vm/assembler_sparc.cpp @ 2258:28bf941f445e

7018378: JSR 292: _bound_int_mh produces wrong result on 64-bit SPARC Reviewed-by: kvn
author twisti
date Mon, 14 Feb 2011 03:21:18 -0800
parents 5577848f5923
children 8033953d67ff
comparison
equal deleted inserted replaced
2257:34457f6ac818 2258:28bf941f445e
2405 movcc(greater, false, xcc, 1, Rresult); 2405 movcc(greater, false, xcc, 1, Rresult);
2406 } 2406 }
2407 #endif 2407 #endif
2408 2408
2409 2409
2410 void MacroAssembler::load_sized_value(Address src, Register dst, 2410 void MacroAssembler::load_sized_value(Address src, Register dst, size_t size_in_bytes, bool is_signed) {
2411 size_t size_in_bytes, bool is_signed) {
2412 switch (size_in_bytes) { 2411 switch (size_in_bytes) {
2413 case 8: ldx(src, dst); break; 2412 case 8: ld_long(src, dst); break;
2414 case 4: ld( src, dst); break; 2413 case 4: ld( src, dst); break;
2415 case 2: is_signed ? ldsh(src, dst) : lduh(src, dst); break; 2414 case 2: is_signed ? ldsh(src, dst) : lduh(src, dst); break;
2416 case 1: is_signed ? ldsb(src, dst) : ldub(src, dst); break; 2415 case 1: is_signed ? ldsb(src, dst) : ldub(src, dst); break;
2417 default: ShouldNotReachHere(); 2416 default: ShouldNotReachHere();
2417 }
2418 }
2419
2420 void MacroAssembler::store_sized_value(Register src, Address dst, size_t size_in_bytes) {
2421 switch (size_in_bytes) {
2422 case 8: st_long(src, dst); break;
2423 case 4: st( src, dst); break;
2424 case 2: sth( src, dst); break;
2425 case 1: stb( src, dst); break;
2426 default: ShouldNotReachHere();
2418 } 2427 }
2419 } 2428 }
2420 2429
2421 2430
2422 void MacroAssembler::float_cmp( bool is_float, int unordered_result, 2431 void MacroAssembler::float_cmp( bool is_float, int unordered_result,