Files
fail/ovp/armmModel/armDisassembleFormats.h
hsc b70b6fb43a another directory rename: failstar -> fail
"failstar" sounds like a name for a cruise liner from the 80s.  As "*" isn't a
desirable part of directory names, just name the whole thing "fail/", the core
parts being stored in "fail/core/".

Additionally fixing two build system dependency issues:
 - missing jobserver -> protomessages dependency
 - broken bochs -> fail dependency (add_custom_target DEPENDS only allows plain
   file dependencies ... cmake for the win)


git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@956 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
2012-03-08 19:43:02 +00:00

214 lines
11 KiB
C

/*
* Copyright (c) 2005-2011 Imperas Software Ltd., www.imperas.com
*
* YOUR ACCESS TO THE INFORMATION IN THIS MODEL IS CONDITIONAL
* UPON YOUR ACCEPTANCE THAT YOU WILL NOT USE OR PERMIT OTHERS
* TO USE THE INFORMATION FOR THE PURPOSES OF DETERMINING WHETHER
* IMPLEMENTATIONS OF THE ARM ARCHITECTURE INFRINGE ANY THIRD
* PARTY PATENTS.
*
* THE LICENSE BELOW EXTENDS ONLY TO USE OF THE SOFTWARE FOR
* MODELING PURPOSES AND SHALL NOT BE CONSTRUED AS GRANTING
* A LICENSE TO CREATE A HARDWARE IMPLEMENTATION OF THE
* FUNCTIONALITY OF THE SOFTWARE LICENSED HEREUNDER.
* YOU MAY USE THE SOFTWARE SUBJECT TO THE LICENSE TERMS BELOW
* PROVIDED THAT YOU ENSURE THAT THIS NOTICE IS REPLICATED UNMODIFIED
* AND IN ITS ENTIRETY IN ALL DISTRIBUTIONS OF THE SOFTWARE,
* MODIFIED OR UNMODIFIED, IN SOURCE CODE OR IN BINARY FORM.
*
* Licensed under an Imperas Modfied 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.ovpworld.org/licenses/OVP_MODIFIED_1.0_APACHE_OPEN_SOURCE_LICENSE_2.0.pdf
*
* 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.
*
*/
#ifndef ARM_DISASSEMBLE_FORMATS_H
#define ARM_DISASSEMBLE_FORMATS_H
//
// These are placeholders in disassembly decoder
//
#define EMIT_R1 '\001'
#define EMIT_R2 '\002'
#define EMIT_R3 '\003'
#define EMIT_R4 '\004'
#define EMIT_CU '\005'
#define EMIT_CS '\006'
#define EMIT_CX '\007'
#define EMIT_T '\010'
#define EMIT_SHIFT '\011'
#define EMIT_SHIFT_C '\012'
#define EMIT_CPNUM '\013'
#define EMIT_COP1 '\014'
#define EMIT_COP2 '\015'
#define EMIT_CR1 '\016'
#define EMIT_CR2 '\017'
#define EMIT_CR3 '\020'
#define EMIT_OPT '\021'
#define EMIT_WB '\022'
#define EMIT_RLIST '\023'
#define EMIT_U '\024'
#define EMIT_SR '\025'
#define EMIT_FLAGS '\026'
#define EMIT_OPT_MODE '\027'
#define EMIT_LIM '\031'
#define EMIT_WIDTH '\032'
#define EMIT_ITC '\033'
#define EMIT_SZSHIFT '\034'
#define EMIT_R1F '\035'
#define EMIT_FPSCR '\036'
#define EMIT_S1 '\302'
#define EMIT_S2 '\303'
#define EMIT_S3 '\304'
#define EMIT_D1 '\305'
#define EMIT_D2 '\306'
#define EMIT_D3 '\307'
#define EMIT_Z1 '\313'
#define EMIT_Z2 '\314'
#define EMIT_SS1 '\316'
#define EMIT_SS3 '\317'
#define EMIT_C0F '\324'
#define EMIT_SDFP_MI '\325'
#define EMIT_SIMD_RL '\326'
#define EMIT_VFP_RL '\327'
//
// These are placeholders in disassembly format strings
//
#define EMIT_R1_S "\001"
#define EMIT_R2_S "\002"
#define EMIT_R3_S "\003"
#define EMIT_R4_S "\004"
#define EMIT_CU_S "\005"
#define EMIT_CS_S "\006"
#define EMIT_CX_S "\007"
#define EMIT_T_S "\010"
#define EMIT_SHIFT_S "\011"
#define EMIT_SHIFT_C_S "\012"
#define EMIT_CPNUM_S "\013"
#define EMIT_COP1_S "\014"
#define EMIT_COP2_S "\015"
#define EMIT_CR1_S "\016"
#define EMIT_CR2_S "\017"
#define EMIT_CR3_S "\020"
#define EMIT_OPT_S "\021"
#define EMIT_WB_S "\022"
#define EMIT_RLIST_S "\023"
#define EMIT_U_S "\024"
#define EMIT_SR_S "\025"
#define EMIT_FLAGS_S "\026"
#define EMIT_OPT_MODE_S "\027"
#define EMIT_LIM_S "\031"
#define EMIT_WIDTH_S "\032"
#define EMIT_ITC_S "\033"
#define EMIT_SZSHIFT_S "\034"
#define EMIT_R1F_S "\035"
#define EMIT_FPSCR_S "\036"
#define EMIT_S1_S "\302"
#define EMIT_S2_S "\303"
#define EMIT_S3_S "\304"
#define EMIT_D1_S "\305"
#define EMIT_D2_S "\306"
#define EMIT_D3_S "\307"
#define EMIT_Z1_S "\313"
#define EMIT_Z2_S "\314"
#define EMIT_SS1_S "\316"
#define EMIT_SS3_S "\317"
#define EMIT_C0F_S "\324"
#define EMIT_SDFP_MI_S "\325"
#define EMIT_SIMD_RL_S "\326"
#define EMIT_VFP_RL_S "\327"
//
// These are disassembly format strings
//
#define FMT_NONE ""
#define FMT_R1 EMIT_R1_S
#define FMT_R1_R2 EMIT_R1_S "," EMIT_R2_S
#define FMT_R1_R2_R3 EMIT_R1_S "," EMIT_R2_S "," EMIT_R3_S
#define FMT_R1_R2_R3_R4 EMIT_R1_S "," EMIT_R2_S "," EMIT_R3_S "," EMIT_R4_S
#define FMT_XIMM EMIT_CX_S
#define FMT_SIMM EMIT_CS_S
#define FMT_UIMM EMIT_CU_S
#define FMT_R1_SIMM EMIT_R1_S "," EMIT_CS_S
#define FMT_R1_UIMM EMIT_R1_S "," EMIT_CU_S
#define FMT_R1_R2_SIMM EMIT_R1_S "," EMIT_R2_S "," EMIT_CS_S
#define FMT_R1_R2_UIMM EMIT_R1_S "," EMIT_R2_S "," EMIT_CU_S
#define FMT_R1_R2_SHIFT_SIMM EMIT_R1_S "," EMIT_R2_S "," EMIT_SHIFT_C_S
#define FMT_R1_R2_SHIFT_R3 EMIT_R1_S "," EMIT_R2_S "," EMIT_SHIFT_S " " EMIT_R3_S
#define FMT_R1_R2_SHIFT EMIT_R1_S "," EMIT_R2_S "," EMIT_SHIFT_S
#define FMT_R1_R2_R3_SHIFT_SIMM EMIT_R1_S "," EMIT_R2_S "," EMIT_R3_S "," EMIT_SHIFT_C_S
#define FMT_R1_R2_R3_SHIFT_R4 EMIT_R1_S "," EMIT_R2_S "," EMIT_R3_S "," EMIT_SHIFT_S " " EMIT_R4_S
#define FMT_R1_R2_R3_SHIFT EMIT_R1_S "," EMIT_R2_S "," EMIT_R3_S "," EMIT_SHIFT_S
#define FMT_R1_WIDTH_R2 EMIT_R1_S "," EMIT_WIDTH_S "," EMIT_R2_S
#define FMT_R1_WIDTH_R2_SHIFT_SIMM EMIT_R1_S "," EMIT_WIDTH_S "," EMIT_R2_S "," EMIT_SHIFT_C_S
#define FMT_R1_ADDR_R2_SIMM EMIT_R1_S ",[" EMIT_R2_S "1],*" EMIT_CS_S "2]" EMIT_WB_S
#define FMT_R1_ADDR_R2_R3 EMIT_R1_S ",[" EMIT_R2_S "1]," EMIT_U_S EMIT_R3_S "2]" EMIT_WB_S
#define FMT_R1_ADDR_R2_R3_SHIFT_SIMM EMIT_R1_S ",[" EMIT_R2_S "1]," EMIT_U_S EMIT_R3_S "," EMIT_SHIFT_C_S "2]" EMIT_WB_S
#define FMT_R1_ADDR_R2_R3_SHIFT EMIT_R1_S ",[" EMIT_R2_S "1]," EMIT_U_S EMIT_R3_S "," EMIT_SHIFT_S "2]" EMIT_WB_S
#define FMT_R1_R4_ADDR_R2_SIMM EMIT_R1_S "," EMIT_R4_S ",[" EMIT_R2_S "1],*" EMIT_CS_S "2]" EMIT_WB_S
#define FMT_ADDR_R1_SIMM "[" EMIT_R1_S "1],*" EMIT_CS_S "2]" EMIT_WB_S
#define FMT_ADDR_R1_R2 "[" EMIT_R1_S "1]," EMIT_U_S EMIT_R2_S "2]" EMIT_WB_S
#define FMT_ADDR_R1_R2_SHIFT_SIMM "[" EMIT_R1_S "1]," EMIT_U_S EMIT_R2_S "," EMIT_SHIFT_C_S "2]" EMIT_WB_S
#define FMT_ADDR_R1_R2_SHIFT "[" EMIT_R1_S "1]," EMIT_U_S EMIT_R2_S "," EMIT_SHIFT_S "2]" EMIT_WB_S
#define FMT_R1_R2_ADDR_R3_SIMM EMIT_R1_S "," EMIT_R2_S ",[" EMIT_R3_S "1],*" EMIT_CS_S "2]"
#define FMT_R1_R2_R4_ADDR_R3_SIMM EMIT_R1_S "," EMIT_R2_S "," EMIT_R4_S ",[" EMIT_R3_S "1],*" EMIT_CS_S "2]"
#define FMT_R1_R4_ADDR_R2_SIMM EMIT_R1_S "," EMIT_R4_S ",[" EMIT_R2_S "1],*" EMIT_CS_S "2]" EMIT_WB_S
#define ADDR_R1_R2_SZSHIFT ",[" EMIT_R1_S "," EMIT_R2_S ",*" EMIT_SZSHIFT_S "]"
#define FMT_CPNUM_CR1_SIMM EMIT_CPNUM_S "," EMIT_CR1_S ",[" EMIT_R2_S "1],*" EMIT_CS_S "2]" EMIT_WB_S
#define FMT_CPNUM_CR1_UNINDEXED EMIT_CPNUM_S "," EMIT_CR1_S ",[" EMIT_R2_S "],{" EMIT_OPT_S "}"
#define FMT_SR_R1 EMIT_SR_S "," EMIT_R1_S
#define FMT_R1_SR EMIT_R1_S "," EMIT_SR_S
#define FMT_R1_WB EMIT_R1_S EMIT_WB_S
#define FMT_R1_WB_UIMM EMIT_R1_S EMIT_WB_S "," EMIT_CU_S
#define FMT_T EMIT_T_S
#define FMT_R1_T EMIT_R1_S "," EMIT_T_S
#define FMT_CPNUM_COP1_CR1_CR2_CR3_COP2 EMIT_CPNUM_S "," EMIT_COP1_S "," EMIT_CR1_S "," EMIT_CR2_S "," EMIT_CR3_S ",{" EMIT_COP2_S "}"
#define FMT_CPNUM_COP1_R1_R2_CR3 EMIT_CPNUM_S "," EMIT_COP1_S "," EMIT_R1_S "," EMIT_R2_S "," EMIT_CR3_S
#define FMT_CPNUM_COP1_R1_CR2_CR3_COP2 EMIT_CPNUM_S "," EMIT_COP1_S "," EMIT_R1_S "," EMIT_CR2_S "," EMIT_CR3_S ",{" EMIT_COP2_S "}"
#define FMT_CPNUM_COP1_R1F_CR2_CR3_COP2 EMIT_CPNUM_S "," EMIT_COP1_S "," EMIT_R1F_S "," EMIT_CR2_S "," EMIT_CR3_S ",{" EMIT_COP2_S "}"
#define FMT_RLIST EMIT_RLIST_S
#define FMT_SIMD_RL EMIT_SIMD_RL_S
#define FMT_VFP_RL EMIT_VFP_RL_S
#define FMT_R1_RLIST EMIT_R1_S EMIT_WB_S "," EMIT_RLIST_S
#define FMT_R1_RLIST_T EMIT_R1_S "!," EMIT_RLIST_S
#define FMT_R1_RLIST_UM EMIT_R1_S EMIT_WB_S "," EMIT_RLIST_S "^"
#define FMT_R1_VFP_RL EMIT_R1_S EMIT_WB_S "," EMIT_VFP_RL_S
#define FMT_R1_SIMD_RL EMIT_R1_S EMIT_WB_S "," EMIT_SIMD_RL_S
#define FMT_FLAGS_OPT_MODE EMIT_FLAGS_S ",*" EMIT_OPT_MODE_S
#define FMT_LIM EMIT_LIM_S
#define FMT_R1_R2_LSB_WIDTH EMIT_R1_S "," EMIT_R2_S "," EMIT_CU_S "," EMIT_WIDTH_S
#define FMT_R1_LSB_WIDTH EMIT_R1_S "," EMIT_CU_S "," EMIT_WIDTH_S
#define FMT_ITC EMIT_ITC_S
#define FMT_R1_FPSCR EMIT_R1F_S "," EMIT_FPSCR_S
#define FMT_FPSCR_R1 EMIT_FPSCR_S "," EMIT_R1_S
#define FMT_R1_S2 EMIT_R1_S "," EMIT_S2_S
#define FMT_R1_Z2 EMIT_R1_S "," EMIT_Z2_S
#define FMT_S1_F0 EMIT_S1_S "," EMIT_C0F_S
#define FMT_S1_S2 EMIT_S1_S "," EMIT_S2_S
#define FMT_S1_R2 EMIT_S1_S "," EMIT_R2_S
#define FMT_S1_S2_S3 EMIT_S1_S "," EMIT_S2_S "," EMIT_S3_S
#define FMT_S1_S2_UIMM EMIT_S1_S "," EMIT_S2_S "," EMIT_CU_S
#define FMT_S1_SDFP_MI EMIT_S1_S "," EMIT_SDFP_MI_S
#define FMT_S1_ADDR_R2_SIMM EMIT_S1_S ",[" EMIT_R2_S "1],*" EMIT_CS_S "2]"
#define FMT_S1_SDFP_MI EMIT_S1_S "," EMIT_SDFP_MI_S
#define FMT_Z1_R2 EMIT_Z1_S "," EMIT_R2_S
#define FMT_R1_R2_D3 EMIT_R1_S "," EMIT_R2_S "," EMIT_D3_S
#define FMT_D1_R2_R3 EMIT_D1_S "," EMIT_R2_S "," EMIT_R3_S
#define FMT_D1_ADDR_R2_SIMM EMIT_D1_S ",[" EMIT_R2_S "1],*" EMIT_CS_S "2]"
#define FMT_R1_R2_SS3 EMIT_R1_S "," EMIT_R2_S "," EMIT_SS3_S
#define FMT_SS1_R2_R3 EMIT_SS1_S "," EMIT_R2_S "," EMIT_R3_S
#endif