Mercurial > hg > graal-jvmci-8
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) { |