|
From: <sv...@va...> - 2011-09-25 00:10:17
|
Author: florian
Date: 2011-09-25 01:05:31 +0100 (Sun, 25 Sep 2011)
New Revision: 2208
Log:
Add another slot on the stack frame used in the dispatcher.
It is used by the profiling dispatcher to store the IA between
iterations.
Modified:
trunk/pub/libvex_s390x_common.h
Modified: trunk/pub/libvex_s390x_common.h
===================================================================
--- trunk/pub/libvex_s390x_common.h 2011-09-23 18:03:21 UTC (rev 2207)
+++ trunk/pub/libvex_s390x_common.h 2011-09-25 00:05:31 UTC (rev 2208)
@@ -52,6 +52,9 @@
/*--- Offsets in the stack frame allocated by the dispatcher ---*/
/*--------------------------------------------------------------*/
+/* Where the profiling dispatcher saves the r2 contents. */
+#define S390_OFFSET_SAVED_R2 160+96
+
/* Where client's FPC register is saved. */
#define S390_OFFSET_SAVED_FPC_C 160+88
@@ -67,12 +70,12 @@
/* Size of frame allocated by VG_(run_innerloop)
Need size for
8 FPRs
- + 2 GPRs (SAVED_GSP and SAVED_LR)
+ + 3 GPRs (SAVED_GSP, SAVED_LR, and SAVED_R2)
+ 2 FPCs (SAVED_FPC_C and SAVED_FPC_V).
Additionally, we need a standard frame for helper functions being called
from client code. (See figure 1-16 in zSeries ABI) */
-#define S390_INNERLOOP_FRAME_SIZE ((8+2+2)*8 + 160)
+#define S390_INNERLOOP_FRAME_SIZE ((8+3+2)*8 + 160)
/*--------------------------------------------------------------*/
|