PERFORCE change 102620 for review
John Birrell
jb at FreeBSD.org
Fri Jul 28 00:58:07 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=102620
Change 102620 by jb at jb_freebsd2 on 2006/07/28 00:57:37
Move the asm code stack offsets into this file so that the asm code
can be included inline in other asm code or in the cpu_snapshot_save
function which is called from C source.
Affected files ...
.. //depot/projects/dtrace/src/sys/sun4v/include/cpu_snapshot.h#3 edit
Differences ...
==== //depot/projects/dtrace/src/sys/sun4v/include/cpu_snapshot.h#3 (text+ko) ====
@@ -6,38 +6,64 @@
#define CPU_SNAPSHOT_BITS 8
#define CPU_SNAPSHOT_SIZE (1 << CPU_SNAPSHOT_BITS)
-#define CPU_SNAPSHOT_COUNT 0x00
-#define CPU_SNAPSHOT_R_I0 0x08
-#define CPU_SNAPSHOT_R_I1 0x10
-#define CPU_SNAPSHOT_R_I2 0x18
-#define CPU_SNAPSHOT_R_I3 0x20
-#define CPU_SNAPSHOT_R_I4 0x28
-#define CPU_SNAPSHOT_R_I5 0x30
-#define CPU_SNAPSHOT_R_I6 0x38
-#define CPU_SNAPSHOT_R_I7 0x40
-#define CPU_SNAPSHOT_R_O0 0x48
-#define CPU_SNAPSHOT_R_O1 0x50
-#define CPU_SNAPSHOT_R_O2 0x58
-#define CPU_SNAPSHOT_R_O3 0x60
-#define CPU_SNAPSHOT_R_O4 0x68
-#define CPU_SNAPSHOT_R_O5 0x70
-#define CPU_SNAPSHOT_R_O6 0x78
-#define CPU_SNAPSHOT_R_O7 0x80
-#define CPU_SNAPSHOT_R_G1 0x88
-#define CPU_SNAPSHOT_R_G2 0x90
-#define CPU_SNAPSHOT_R_G3 0x98
-#define CPU_SNAPSHOT_R_G4 0xa0
-#define CPU_SNAPSHOT_R_G5 0xa8
-#define CPU_SNAPSHOT_R_G6 0xb0
-#define CPU_SNAPSHOT_R_G7 0xb8
-#define CPU_SNAPSHOT_PSTATE 0xc0
-#define CPU_SNAPSHOT_TL 0xc8
-#define CPU_SNAPSHOT_TICK 0xd0
-#define CPU_SNAPSHOT_PIL 0xd8
+#ifdef __ASM__
+
+/* Offsets for registers saved on the stack. */
+#define STACK_G1 SPOFF
+#define STACK_G2 SPOFF + 0x08
+#define STACK_G3 SPOFF + 0x10
+#define STACK_G4 SPOFF + 0x18
+#define STACK_G5 SPOFF + 0x20
+#define STACK_FREEB SPOFF + 0x28
+#define STACK_FREEA SPOFF + 0x30
+#define STACK_FREE9 SPOFF + 0x38
+#define STACK_FREE8 SPOFF + 0x40
+#define STACK_FREE7 SPOFF + 0x48
+#define STACK_FREE6 SPOFF + 0x50
+#define STACK_FREE5 SPOFF + 0x58
+#define STACK_FREE4 SPOFF + 0x60
+#define STACK_FREE3 SPOFF + 0x68
+#define STACK_FREE2 SPOFF + 0x70
+#define STACK_FREE1 SPOFF + 0x78
+#define STACK_SIZE 0x80
+
+/* Offsets into struct cpu_snapshot */
+#define CPU_SNAPSHOT_INDX 0x00
+#define CPU_SNAPSHOT_COUNT 0x08
+#define CPU_SNAPSHOT_R_I0 0x10
+#define CPU_SNAPSHOT_R_I1 0x18
+#define CPU_SNAPSHOT_R_I2 0x20
+#define CPU_SNAPSHOT_R_I3 0x28
+#define CPU_SNAPSHOT_R_I4 0x30
+#define CPU_SNAPSHOT_R_I5 0x38
+#define CPU_SNAPSHOT_R_I6 0x40
+#define CPU_SNAPSHOT_R_I7 0x48
+#define CPU_SNAPSHOT_R_O0 0x50
+#define CPU_SNAPSHOT_R_O1 0x58
+#define CPU_SNAPSHOT_R_O2 0x60
+#define CPU_SNAPSHOT_R_O3 0x68
+#define CPU_SNAPSHOT_R_O4 0x70
+#define CPU_SNAPSHOT_R_O5 0x78
+#define CPU_SNAPSHOT_R_O6 0x80
+#define CPU_SNAPSHOT_R_O7 0x88
+#define CPU_SNAPSHOT_R_G1 0x90
+#define CPU_SNAPSHOT_R_G2 0x98
+#define CPU_SNAPSHOT_R_G3 0xa0
+#define CPU_SNAPSHOT_R_G4 0xa8
+#define CPU_SNAPSHOT_R_G5 0xb0
+#define CPU_SNAPSHOT_R_G6 0xb8
+#define CPU_SNAPSHOT_R_G7 0xc0
+#define CPU_SNAPSHOT_PSTATE 0xc8
+#define CPU_SNAPSHOT_TL 0xd0
+#define CPU_SNAPSHOT_TICK 0xd8
+#define CPU_SNAPSHOT_PIL 0xe0
+#define CPU_SNAPSHOT_SP 0xe8
+#define CPU_SNAPSHOT_PC 0xf0
-#ifndef __ASM__
+#else
struct cpu_snapshot {
+ uint64_t indx;
uint64_t count;
uint64_t r_i0;
uint64_t r_i1;
@@ -66,7 +92,9 @@
uint64_t tl;
uint64_t tick;
uint64_t pil;
- uint64_t pad[4];
+ uint64_t sp;
+ uint64_t pc;
+ uint64_t pad[1];
};
#ifdef CPU_SNAPSHOT_GLOBAL
More information about the p4-projects
mailing list