12825ac47817cec603c74d7224981560299c1a3basewardj
27bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj/*--------------------------------------------------------------------*/
3752f90673ebbb6b2f55fc5e46606dea371313713sewardj/*--- begin                                           genoffsets.c ---*/
47bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj/*--------------------------------------------------------------------*/
57bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj
67bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj/*
7752f90673ebbb6b2f55fc5e46606dea371313713sewardj   This file is part of Valgrind, a dynamic binary instrumentation
8752f90673ebbb6b2f55fc5e46606dea371313713sewardj   framework.
97bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj
1089ae8477745fd2a15453557d729a50e627325ee2sewardj   Copyright (C) 2004-2013 OpenWorks LLP
11752f90673ebbb6b2f55fc5e46606dea371313713sewardj      info@open-works.net
127bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj
13752f90673ebbb6b2f55fc5e46606dea371313713sewardj   This program is free software; you can redistribute it and/or
14752f90673ebbb6b2f55fc5e46606dea371313713sewardj   modify it under the terms of the GNU General Public License as
15752f90673ebbb6b2f55fc5e46606dea371313713sewardj   published by the Free Software Foundation; either version 2 of the
16752f90673ebbb6b2f55fc5e46606dea371313713sewardj   License, or (at your option) any later version.
177bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj
18752f90673ebbb6b2f55fc5e46606dea371313713sewardj   This program is distributed in the hope that it will be useful, but
19752f90673ebbb6b2f55fc5e46606dea371313713sewardj   WITHOUT ANY WARRANTY; without even the implied warranty of
20752f90673ebbb6b2f55fc5e46606dea371313713sewardj   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21752f90673ebbb6b2f55fc5e46606dea371313713sewardj   General Public License for more details.
22752f90673ebbb6b2f55fc5e46606dea371313713sewardj
23752f90673ebbb6b2f55fc5e46606dea371313713sewardj   You should have received a copy of the GNU General Public License
24752f90673ebbb6b2f55fc5e46606dea371313713sewardj   along with this program; if not, write to the Free Software
25752f90673ebbb6b2f55fc5e46606dea371313713sewardj   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
267bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj   02110-1301, USA.
277bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj
28752f90673ebbb6b2f55fc5e46606dea371313713sewardj   The GNU General Public License is contained in the file COPYING.
297bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj
307bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj   Neither the names of the U.S. Department of Energy nor the
317bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj   University of California nor the names of its contributors may be
327bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj   used to endorse or promote products derived from this software
337bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj   without prior written permission.
347bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj*/
357bd6ffe203f3aa9e7b25f7eae40a9b9cf48710cfsewardj
362825ac47817cec603c74d7224981560299c1a3basewardj#include <stdio.h>
372825ac47817cec603c74d7224981560299c1a3basewardj
38ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj/* A program which, when compiled to assembly, exposes various guest
39ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   state offsets.  The program isn't executed, since that breaks
40d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj   cross-compilation.
41d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj
42d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj   It does rely on the assumption that 'my_offsetof(Ty,Field)' is
43d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj   folded to a constant at a compile time, which seems a bit dodgy
44d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj   to me.  On gcc4 it is possible to use __builtin_offsetof, which
45d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj   sounds safer, but that doesn't exist on older gccs.  Oh Well.
46d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj*/
472825ac47817cec603c74d7224981560299c1a3basewardj
482825ac47817cec603c74d7224981560299c1a3basewardj#include "../pub/libvex_basictypes.h"
492825ac47817cec603c74d7224981560299c1a3basewardj#include "../pub/libvex_guest_x86.h"
508137b5baebea1d3e145ecc2ad56b871988aae167sewardj#include "../pub/libvex_guest_amd64.h"
51ed623dbefb52ca3211490d656abc999a129df060cerion#include "../pub/libvex_guest_ppc32.h"
52d953ebb9b04cbad6891676df597bf0c542b1ec89cerion#include "../pub/libvex_guest_ppc64.h"
536c299f3acab617581ea504e45fbb6cab24c2b29fsewardj#include "../pub/libvex_guest_arm.h"
54bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj#include "../pub/libvex_guest_arm64.h"
552019a976f07ff418dde2dfc7cc74667ef66d7764sewardj#include "../pub/libvex_guest_s390x.h"
56d0e5fe765fb79e5495206f8d0969133178b871f2sewardj#include "../pub/libvex_guest_mips32.h"
57b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj#include "../pub/libvex_guest_mips64.h"
580de80192f57cd132b31b233c65734de04939ce65sewardj#include "../pub/libvex_guest_tilegx.h"
592825ac47817cec603c74d7224981560299c1a3basewardj
60ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj#define VG_STRINGIFZ(__str)  #__str
61ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj#define VG_STRINGIFY(__str)  VG_STRINGIFZ(__str)
62ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj
63d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj#define my_offsetof(__type,__field) (&((__type*)0)->__field)
64d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj
65d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj/* This forces gcc to evaluate the my_offsetof call at compile time,
66ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   and then emits it in the assembly, along with the nonsense string
67ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   "xyzzy", for easy greppability.  Once this file is compiled to
68ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   assembly, the lines containing "xyzzy" are grepped out and sed-ed
69ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   to produce the final result.  See the Makefile rule for
70ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   pub/libvex_guest_offsets.h. */
71ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj#define GENOFFSET(_structUppercase,_structLowercase,_fieldname)  \
72ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   __asm__ __volatile__ ( \
73ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj      "\n#define OFFSET_" \
74ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj      VG_STRINGIFY(_structLowercase) "_" \
75ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj      VG_STRINGIFY(_fieldname) \
76ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj      " xyzzy%0\n" : /*out*/ \
77ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj                   : /*in*/ "n" \
78d2dc14a515b7d1b8ede72c6c8db5e04395576769sewardj         (my_offsetof(VexGuest##_structUppercase##State, \
79ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj          guest_##_fieldname)) \
80ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   )
81ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj
82ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardjvoid foo ( void );
83ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj__attribute__((noinline))
84ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardjvoid foo ( void )
852825ac47817cec603c74d7224981560299c1a3basewardj{
86ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   // x86
87ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,EAX);
88ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,EBX);
89ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,ECX);
90ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,EDX);
91ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,ESI);
92ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,EDI);
93ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,EBP);
94ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,ESP);
95ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,EIP);
96ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,CS);
97ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,DS);
98ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,ES);
99ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,FS);
100ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,GS);
101ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(X86,x86,SS);
102ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj
103ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   // amd64
104ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RAX);
105ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RBX);
106ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RCX);
107ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RDX);
108ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RSI);
109ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RDI);
110ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RSP);
111ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RBP);
112ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R8);
113ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R9);
114ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R10);
115ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R11);
116ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R12);
117ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R13);
118ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R14);
119ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,R15);
120ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(AMD64,amd64,RIP);
121ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj
122ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   // ppc32
123ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR0);
124445dbefd81807d22c2d2bb318c5334e163fac33bsewardj   GENOFFSET(PPC32,ppc32,GPR1);
125ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR2);
126ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR3);
127ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR4);
128ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR5);
129ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR6);
130ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR7);
131ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR8);
132ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR9);
133ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,GPR10);
134ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,CIA);
135ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC32,ppc32,CR0_0);
136ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj
137ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   // ppc64
138ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR0);
139445dbefd81807d22c2d2bb318c5334e163fac33bsewardj   GENOFFSET(PPC64,ppc64,GPR1);
140ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR2);
141ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR3);
142ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR4);
143ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR5);
144ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR6);
145ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR7);
146ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR8);
147ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR9);
148ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,GPR10);
149ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,CIA);
150ba69ffbb2336c0082c1c5fbb59af8c361155f92bsewardj   GENOFFSET(PPC64,ppc64,CR0_0);
1516c299f3acab617581ea504e45fbb6cab24c2b29fsewardj
1526c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   // arm
1536c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   GENOFFSET(ARM,arm,R0);
1546c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   GENOFFSET(ARM,arm,R1);
1556c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   GENOFFSET(ARM,arm,R2);
1566c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   GENOFFSET(ARM,arm,R3);
1576c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   GENOFFSET(ARM,arm,R4);
1586c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   GENOFFSET(ARM,arm,R5);
1596c299f3acab617581ea504e45fbb6cab24c2b29fsewardj   GENOFFSET(ARM,arm,R7);
160445dbefd81807d22c2d2bb318c5334e163fac33bsewardj   GENOFFSET(ARM,arm,R13);
161445dbefd81807d22c2d2bb318c5334e163fac33bsewardj   GENOFFSET(ARM,arm,R14);
162d266447c09a99122cbc220edee5ac936eee7a0ddsewardj   GENOFFSET(ARM,arm,R15T);
1632019a976f07ff418dde2dfc7cc74667ef66d7764sewardj
164bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   // arm64
165bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X0);
166bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X1);
167bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X2);
168bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X3);
169bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X4);
170bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X5);
171bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X6);
172bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X7);
173bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,X8);
174606878860623daa234c68fff81aade73059aaafbsewardj   GENOFFSET(ARM64,arm64,XSP);
175bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj   GENOFFSET(ARM64,arm64,PC);
176bbcf188f6ae64a44fb31414eb9e1a738b4befcc0sewardj
1772019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   // s390x
1782019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,r2);
1792019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,r3);
1802019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,r4);
1812019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,r5);
1822019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,r6);
1832019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,r7);
1842019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,r15);
1852019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,IA);
1862019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,SYSNO);
1872019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,IP_AT_SYSCALL);
1882019a976f07ff418dde2dfc7cc74667ef66d7764sewardj   GENOFFSET(S390X,s390x,fpc);
189ad43b3aab3af108802ea091bc58d12903ec002a8florian   GENOFFSET(S390X,s390x,CC_OP);
190ad43b3aab3af108802ea091bc58d12903ec002a8florian   GENOFFSET(S390X,s390x,CC_DEP1);
191ad43b3aab3af108802ea091bc58d12903ec002a8florian   GENOFFSET(S390X,s390x,CC_DEP2);
192ad43b3aab3af108802ea091bc58d12903ec002a8florian   GENOFFSET(S390X,s390x,CC_NDEP);
193d0e5fe765fb79e5495206f8d0969133178b871f2sewardj
194d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   // MIPS32
195d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r0);
196d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r1);
197d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r2);
198d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r3);
199d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r4);
200d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r5);
201d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r6);
202d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r7);
203d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r8);
204d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r9);
205d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r10);
206d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r11);
207d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r12);
208d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r13);
209d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r14);
210d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r15);
211d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r15);
212d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r17);
213d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r18);
214d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r19);
215d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r20);
216d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r21);
217d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r22);
218d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r23);
219d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r24);
220d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r25);
221d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r26);
222d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r27);
223d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r28);
224d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r29);
225d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r30);
226d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,r31);
227d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,PC);
228d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,HI);
229d0e5fe765fb79e5495206f8d0969133178b871f2sewardj   GENOFFSET(MIPS32,mips32,LO);
230b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj
231b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   // MIPS64
232b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r0);
233b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r1);
234b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r2);
235b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r3);
236b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r4);
237b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r5);
238b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r6);
239b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r7);
240b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r8);
241b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r9);
242b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r10);
243b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r11);
244b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r12);
245b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r13);
246b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r14);
247b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r15);
248b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r15);
249b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r17);
250b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r18);
251b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r19);
252b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r20);
253b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r21);
254b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r22);
255b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r23);
256b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r24);
257b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r25);
258b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r26);
259b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r27);
260b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r28);
261b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r29);
262b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r30);
263b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,r31);
264b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,PC);
265b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,HI);
266b92a95406aca7bba15ecc9b5828a16fdbbdc8778petarj   GENOFFSET(MIPS64,mips64,LO);
2670de80192f57cd132b31b233c65734de04939ce65sewardj
2680de80192f57cd132b31b233c65734de04939ce65sewardj   // Tilegx
2690de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r0);
2700de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r1);
2710de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r2);
2720de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r3);
2730de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r4);
2740de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r5);
2750de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r6);
2760de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r7);
2770de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r8);
2780de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r9);
2790de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r10);
2800de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r11);
2810de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r12);
2820de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r13);
2830de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r14);
2840de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r15);
2850de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r16);
2860de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r17);
2870de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r18);
2880de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r19);
2890de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r20);
2900de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r21);
2910de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r22);
2920de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r23);
2930de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r24);
2940de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r25);
2950de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r26);
2960de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r27);
2970de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r28);
2980de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r29);
2990de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r30);
3000de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r31);
3010de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r32);
3020de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r33);
3030de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r34);
3040de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r35);
3050de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r36);
3060de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r37);
3070de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r38);
3080de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r39);
3090de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r40);
3100de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r41);
3110de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r42);
3120de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r43);
3130de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r44);
3140de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r45);
3150de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r46);
3160de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r47);
3170de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r48);
3180de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r49);
3190de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r50);
3200de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r51);
3210de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r52);
3220de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r53);
3230de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r54);
3240de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,r55);
3250de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,pc);
3260de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,EMNOTE);
3270de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,CMSTART);
3280de80192f57cd132b31b233c65734de04939ce65sewardj   GENOFFSET(TILEGX,tilegx,NRADDR);
3292825ac47817cec603c74d7224981560299c1a3basewardj}
330752f90673ebbb6b2f55fc5e46606dea371313713sewardj
331752f90673ebbb6b2f55fc5e46606dea371313713sewardj/*--------------------------------------------------------------------*/
332752f90673ebbb6b2f55fc5e46606dea371313713sewardj/*--- end                                             genoffsets.c ---*/
333752f90673ebbb6b2f55fc5e46606dea371313713sewardj/*--------------------------------------------------------------------*/
334