Mercurial > hg > octave-lyh
annotate liboctave/sun-utils.h @ 14819:67b6b47a22f6
doc: Clarify docstrings for canonicalize_file_name, make_absolute_filename
* syscalls.cc (canonicalize_file_name): Clarify docstring.
* utils.cc (make_absolute_filename): Clarify docstring.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Fri, 29 Jun 2012 13:38:28 -0700 |
parents | 72c96de7a403 |
children |
rev | line source |
---|---|
3 | 1 /* |
2 | |
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
3 Copyright (C) 1993-2012 John W. Eaton |
3 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
7016 | 9 Free Software Foundation; either version 3 of the License, or (at your |
10 option) any later version. | |
3 | 11 |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
19 <http://www.gnu.org/licenses/>. | |
3 | 20 |
21 */ | |
22 | |
382 | 23 #if !defined (octave_sun_utils_h) |
24 #define octave_sun_utils_h 1 | |
25 | |
1359 | 26 // This is only needed to dereference pointers to doubles if mixing |
9179
5be2e6696772
use access_double and assign_double on sparc only
Carsten Clark <tantumquantum+gnuoctave@gmail.com>
parents:
7017
diff
changeset
|
27 // GCC and Sun SPARC f77/cc compiled code. See the GCC manual (where the |
1359 | 28 // function access_double() is described) and the Sun f77 manual, |
29 // which explains that doubles are not always aligned on 8 byte | |
30 // boundaries. | |
3 | 31 |
9179
5be2e6696772
use access_double and assign_double on sparc only
Carsten Clark <tantumquantum+gnuoctave@gmail.com>
parents:
7017
diff
changeset
|
32 #if defined (__sparc) && defined (__GNUC__) |
3 | 33 |
34 inline double | |
35 access_double (double *unaligned_ptr) | |
36 { | |
37 union d2i { double d; int i[2]; }; | |
38 | |
39 union d2i *p = (union d2i *) unaligned_ptr; | |
40 union d2i u; | |
41 | |
42 u.i[0] = p->i[0]; | |
43 u.i[1] = p->i[1]; | |
44 | |
45 return u.d; | |
46 } | |
47 | |
48 inline void | |
49 assign_double (double *unaligned_ptr, double value) | |
50 { | |
51 union d2i { double d; int i[2]; }; | |
52 | |
53 double *ptr = &value; | |
54 union d2i *v = (union d2i *) ptr; | |
55 union d2i *p = (union d2i *) unaligned_ptr; | |
56 | |
57 p->i[0] = v->i[0]; | |
58 p->i[1] = v->i[1]; | |
59 } | |
60 | |
61 #endif | |
62 #endif |