config-armv5te-vfp revision ab35b50311951feea3782151dd5422ee944685c2
1# Copyright (C) 2009 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15#
16# Configuration for ARMv5TE targets with VFP support.
17#
18# This is just ARMv5TE with replacements for the handlers that can benefit
19# from floating-point instructions.  Essentially all float/double
20# operations except for "remainder" and conversions to/from 64-bit ints.
21#
22
23handler-style computed-goto
24handler-size 64
25
26# source for the instruction table stub
27asm-stub armv5te/stub.S
28
29# source for alternate entry stub
30asm-alt-stub armv5te/alt_stub.S
31
32# file header and basic definitions
33import c/header.cpp
34import armv5te/header.S
35
36# C pre-processor defines for stub C instructions
37import cstubs/stubdefs.cpp
38
39# highly-platform-specific defs
40import armv5te/platform.S
41
42# common defs for the C helpers; include this before the instruction handlers
43import c/opcommon.cpp
44
45# arch-specific entry point to interpreter
46import armv5te/entry.S
47
48# opcode list; argument to op-start is default directory
49op-start armv5te
50    op OP_ADD_DOUBLE arm-vfp
51    op OP_ADD_DOUBLE_2ADDR arm-vfp
52    op OP_ADD_FLOAT arm-vfp
53    op OP_ADD_FLOAT_2ADDR arm-vfp
54    op OP_CMPG_DOUBLE arm-vfp
55    op OP_CMPG_FLOAT arm-vfp
56    op OP_CMPL_DOUBLE arm-vfp
57    op OP_CMPL_FLOAT arm-vfp
58    op OP_DIV_DOUBLE arm-vfp
59    op OP_DIV_DOUBLE_2ADDR arm-vfp
60    op OP_DIV_FLOAT arm-vfp
61    op OP_DIV_FLOAT_2ADDR arm-vfp
62    op OP_DOUBLE_TO_FLOAT arm-vfp
63    op OP_DOUBLE_TO_INT arm-vfp
64    op OP_FLOAT_TO_DOUBLE arm-vfp
65    op OP_FLOAT_TO_INT arm-vfp
66    op OP_INT_TO_DOUBLE arm-vfp
67    op OP_INT_TO_FLOAT arm-vfp
68    op OP_MUL_DOUBLE arm-vfp
69    op OP_MUL_DOUBLE_2ADDR arm-vfp
70    op OP_MUL_FLOAT arm-vfp
71    op OP_MUL_FLOAT_2ADDR arm-vfp
72    op OP_SUB_DOUBLE arm-vfp
73    op OP_SUB_DOUBLE_2ADDR arm-vfp
74    op OP_SUB_FLOAT arm-vfp
75    op OP_SUB_FLOAT_2ADDR arm-vfp
76
77    # use trivial integer operation
78    #op OP_NEG_DOUBLE armv5te
79    #op OP_NEG_FLOAT armv5te
80
81    # use __aeabi_* functions
82    #op OP_DOUBLE_TO_LONG armv5te
83    #op OP_FLOAT_TO_LONG armv5te
84    #op OP_LONG_TO_DOUBLE armv5te
85    #op OP_LONG_TO_FLOAT armv5te
86
87    # no "remainder" op in vfp or libgcc.a; use libc function
88    #op OP_REM_DOUBLE armv5te
89    #op OP_REM_DOUBLE_2ADDR armv5te
90    #op OP_REM_FLOAT armv5te
91    #op OP_REM_FLOAT_2ADDR armv5te
92
93    # experiment, unrelated to vfp
94    #op OP_INT_TO_BYTE armv6
95    #op OP_INT_TO_CHAR armv6
96    #op OP_INT_TO_SHORT armv6
97op-end
98
99# "helper" code for C; include if you use any of the C stubs (this generates
100# object code, so it's normally excluded)
101##import c/gotoTargets.cpp
102
103# end of defs; include this when cstubs/stubdefs.cpp is included
104import cstubs/enddefs.cpp
105
106# common subroutines for asm
107import armv5te/footer.S
108import armv5te/debug.cpp
109