comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 23646:16aa1f621ec6 jdk8u76-b11

8148353: [linux-sparc] Crash in libawt.so on Linux SPARC Summary: gcc expects clean 32 bit int in 64 bit register on function entry Reviewed-by: kvn, dlong
author roland
date Mon, 29 Feb 2016 16:08:11 +0100
parents 318cc6fdae90
children b5f3a471e646
comparison
equal deleted inserted replaced
23645:6875c2bf2dcb 23646:16aa1f621ec6
1324 // stack to reg 1324 // stack to reg
1325 __ ld(FP, reg2offset(src.first()) + STACK_BIAS, dst.first()->as_Register()); 1325 __ ld(FP, reg2offset(src.first()) + STACK_BIAS, dst.first()->as_Register());
1326 } 1326 }
1327 } else if (dst.first()->is_stack()) { 1327 } else if (dst.first()->is_stack()) {
1328 // reg to stack 1328 // reg to stack
1329 __ st_ptr(src.first()->as_Register(), SP, reg2offset(dst.first()) + STACK_BIAS); 1329 // Some compilers (gcc) expect a clean 32 bit value on function entry
1330 __ signx(src.first()->as_Register(), L5);
1331 __ st_ptr(L5, SP, reg2offset(dst.first()) + STACK_BIAS);
1330 } else { 1332 } else {
1331 __ mov(src.first()->as_Register(), dst.first()->as_Register()); 1333 // Some compilers (gcc) expect a clean 32 bit value on function entry
1334 __ signx(src.first()->as_Register(), dst.first()->as_Register());
1332 } 1335 }
1333 } 1336 }
1334 1337
1335 1338
1336 static void move_ptr(MacroAssembler* masm, VMRegPair src, VMRegPair dst) { 1339 static void move_ptr(MacroAssembler* masm, VMRegPair src, VMRegPair dst) {