# Copyright (C) 2008 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Configuration for "allstubs" target.  This is structured like the
# assembly interpreters, but consists entirely of C stubs, making it
# a handy if inefficient way to exercise all of the C handlers.  The
# handler-style command should match the target assembly interpreter.
#

#handler-style jump-table
handler-style computed-goto
handler-size 64

# C file header and basic definitions
import c/header.cpp

# C pre-processor defines for stub C instructions
import cstubs/stubdefs.cpp

# common defs for the C opcodes
import c/opcommon.cpp

# opcode list; argument to op-start is default directory
op-start c
    # use nothing but C stubs
op-end

# arch-specific entry point to interpreter
import cstubs/entry.cpp

# "helper" code
import c/gotoTargets.cpp

# finish
import cstubs/enddefs.cpp
