Updated copyright string
[dyninst.git] / dyninstAPI_RT / src / RTsigill-x86.S
1 /*
2  * Copyright (c) 1996 Barton P. Miller
3  * 
4  * We provide the Paradyn Parallel Performance Tools (below
5  * described as "Paradyn") on an AS IS basis, and do not warrant its
6  * validity or performance.  We reserve the right to update, modify,
7  * or discontinue this software at any time.  We shall have no
8  * obligation to supply such updates or modifications or any other
9  * form of support to you.
10  * 
11  * This license is for research uses.  For such uses, there is no
12  * charge. We define "research use" to mean you may freely use it
13  * inside your organization for whatever purposes you see fit. But you
14  * may not re-distribute Paradyn or parts of Paradyn, in any form
15  * source or binary (including derivatives), electronic or otherwise,
16  * to any other organization or entity without our permission.
17  * 
18  * (for other uses, please contact us at paradyn@cs.wisc.edu)
19  * 
20  * All warranties, including without limitation, any warranty of
21  * merchantability or fitness for a particular purpose, are hereby
22  * excluded.
23  * 
24  * By your use of Paradyn, you understand and agree that we (or any
25  * other person or entity with proprietary rights in Paradyn) are
26  * under no obligation to provide either maintenance services,
27  * update services, notices of latent defects, or correction of
28  * defects for Paradyn.
29  * 
30  * Even if advised of the possibility of such damages, under no
31  * circumstances shall we (or any other person or entity with
32  * proprietary rights in the software licensed hereunder) be liable
33  * to you or any third party for direct, indirect, or consequential
34  * damages of any character regardless of type of action, including,
35  * without limitation, loss of profits, loss of use, loss of good
36  * will, or computer failure or malfunction.  You agree to indemnify
37  * us (and any other person or entity with proprietary rights in the
38  * software licensed hereunder) for any and all liability it may
39  * incur to third parties resulting from your use of Paradyn.
40  */
41
42 /*
43    DYNINSTsigill:
44         
45    DYNINSTsigill executes an illegal instruction, causing SIGILL to be
46    sent to the calling process.  It is only needed for
47    detach-on-the-fly, where detached mutatees stop to wait for the
48    mutator or paradynd to reattach by sending themselves SIGILL.
49
50    A detached mutatee that stops itself with SIGSTOP will not be
51    noticed by the mutator or paradynd.  It must send SIGILL to be
52    noticed.
53     
54    There are two ways to send SIGILL to yourself: call kill() or
55    execute an illegal instruction.
56
57    We chose to use illegal instructions. The SIGILL handler has a
58    simpler implementation if SIGILL is caused by an illegal
59    instruction.  We do not use kill() to send SIGILL.
60
61    The test suite calls this function through the dynamic loader to
62    avoid duplication of code in the test suite and additional makefile
63    complexity.
64     
65    3000 bytes of source code for 3 bytes of object code.
66 */
67
68     .text
69     .globl DYNINSTsigill
70
71 DYNINSTsigill:
72     ud2
73     ret