Statistics
| Branch: | Revision:

root / target-sparc / op.c @ 06b3e1b3

History | View | Annotate | Download (1.5 kB)

1
/*
2
   SPARC micro operations
3

4
   Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at>
5

6
   This library is free software; you can redistribute it and/or
7
   modify it under the terms of the GNU Lesser General Public
8
   License as published by the Free Software Foundation; either
9
   version 2 of the License, or (at your option) any later version.
10

11
   This library is distributed in the hope that it will be useful,
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
   Lesser General Public License for more details.
15

16
   You should have received a copy of the GNU Lesser General Public
17
   License along with this library; if not, write to the Free Software
18
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
*/
20

    
21
#include "exec.h"
22
#include "helper.h"
23

    
24
/* Load and store */
25
#define MEMSUFFIX _raw
26
#include "op_mem.h"
27
#if !defined(CONFIG_USER_ONLY)
28
#define MEMSUFFIX _user
29
#include "op_mem.h"
30

    
31
#define MEMSUFFIX _kernel
32
#include "op_mem.h"
33

    
34
#ifdef TARGET_SPARC64
35
#define MEMSUFFIX _hypv
36
#include "op_mem.h"
37
#endif
38
#endif
39

    
40
#define CHECK_ALIGN_OP(align)                           \
41
    void OPPROTO op_check_align_T0_ ## align (void)     \
42
    {                                                   \
43
        if (T0 & align)                                 \
44
            raise_exception(TT_UNALIGNED);              \
45
        FORCE_RET();                                    \
46
    }
47

    
48
CHECK_ALIGN_OP(1)
49
CHECK_ALIGN_OP(3)
50
CHECK_ALIGN_OP(7)