[aarch64-port-dev ] RFR: SEGV in PRODUCT build with NotifySimulator

Edward Nevill edward.nevill at linaro.org
Mon Jul 15 05:03:26 PDT 2013


Hi,

The following patch fixes a problem where I get SIGSEGV in a PRODUCT 
build of the BUILTIN_SIM version.

The problem is caused by the incorrect calculation of the return 
address offset when PRODUCT is true.

Please review and commit,

Thanks,
Ed.

--- CUT HERE ---
# HG changeset patch
# User Edward Nevill edward.nevill at linaro.org
# Date 1373889427 -3600
# Node ID 86a3cf294c78c44d9fdd84cefe3b00d31751d184
# Parent  2fceb893cf2a37d8c2a3a815820addd9666d917e
Fix SEGV in PRODUCT build when NotifySim true.

diff -r 2fceb893cf2a -r 86a3cf294c78 
src/cpu/aarch64/vm/stubRoutines_aarch64.hpp
--- a/src/cpu/aarch64/vm/stubRoutines_aarch64.hpp	Wed Jul 10 13:19:59 
2013 +0100
+++ b/src/cpu/aarch64/vm/stubRoutines_aarch64.hpp	Mon Jul 15 12:57:07 
2013 +0100
@@ -37,7 +37,8 @@
 // latter address is sued by the stack unwind code when doign an
 // exception return.
 static bool    returns_to_call_stub(address return_pc)   {
-  return return_pc == _call_stub_return_address + (NotifySimulator ? 
-4 : 0);
+  return return_pc == _call_stub_return_address +
+		(NotifySimulator ? PRODUCT_ONLY(0) NOT_PRODUCT(-4) : 0);
 }
 
 enum platform_dependent_constants {
--- CUT HERE ---





More information about the aarch64-port-dev mailing list