* Fixed includes.
[cacao.git] / src / vm / jit / intrp / asmpart.c
1 /* src/vm/jit/intrp/asmpart.c - Java-C interface functions for Interpreter
2
3    Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
4    R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
5    C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
6    Institut f. Computersprachen - TU Wien
7
8    This file is part of CACAO.
9
10    This program is free software; you can redistribute it and/or
11    modify it under the terms of the GNU General Public License as
12    published by the Free Software Foundation; either version 2, or (at
13    your option) any later version.
14
15    This program is distributed in the hope that it will be useful, but
16    WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18    General Public License for more details.
19
20    You should have received a copy of the GNU General Public License
21    along with this program; if not, write to the Free Software
22    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
23    02111-1307, USA.
24
25    Contact: cacao@complang.tuwien.ac.at
26
27    Authors: Andreas Krall
28             Reinhard Grafl
29
30    Changes: Joseph Wenninger
31             Christian Thalinger
32             Anton Ertl
33
34    $Id: asmpart.c 3231 2005-09-19 14:09:18Z twisti $
35
36 */
37
38
39 #include "config.h"
40 #include "vm/types.h"
41
42 #include "arch.h"
43
44 #include "vm/jit/asmpart.h"
45
46
47 /* this is required to link cacao with intrp */
48 threadcritnode asm_criticalsections = { NULL, NULL, NULL };
49
50
51 void asm_getclassvalues_atomic(vftbl_t *super, vftbl_t *sub, castinfo *out)
52 {
53         s4 sbv, sdv, sv;
54
55 #if defined(USE_THREADS)
56 #if defined(NATIVE_THREADS)
57         compiler_lock();
58 #else
59         intsDisable();
60 #endif
61 #endif
62
63         sbv = super->baseval;
64         sdv = super->diffval;
65         sv  = sub->baseval;
66
67 #if defined(USE_THREADS)
68 #if defined(NATIVE_THREADS)
69         compiler_unlock();
70 #else
71         intsRestore();
72 #endif
73 #endif
74
75         out->super_baseval = sbv;
76         out->super_diffval = sdv;
77         out->sub_baseval   = sv;
78 }
79
80
81 /*
82  * These are local overrides for various environment variables in Emacs.
83  * Please do not remove this and leave it at the end of the file, where
84  * Emacs will automagically detect them.
85  * ---------------------------------------------------------------------
86  * Local variables:
87  * mode: c
88  * indent-tabs-mode: t
89  * c-basic-offset: 4
90  * tab-width: 4
91  * End:
92  */