mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-14 15:32:36 +02:00

+ RTL support: o VFP exceptions are disabled by default on Darwin, because they cause kernel panics on iPhoneOS 2.2.1 at least o all denormals are truncated to 0 on Darwin, because disabling that also causes kernel panics on iPhoneOS 2.2.1 (probably because otherwise denormals can also cause exceptions) * set softfloat rounding mode correctly for non-wince/darwin/vfp targets + compiler support: only half the number of single precision registers is available due to limitations of the register allocator + added a number of comments about why the stackframe on ARM is set up the way it is by the compiler + added regtype and subregtype info to regsets, because they're also used for VFP registers (+ support in assembler reader) + various generic support routines for dealing with floating point values located in integer registers that have to be transferred to mm registers (needed for VFP) * renamed use_sse() to use_vectorfpu() and also use it for ARM/vfp support o only superficially tested for Linux (compiler compiled with -Cpvfpv6 -Cfvfpv2 works on a Cortex-A8, no testsuite run performed -- at least the fpu exception handler still needs to be implemented), Darwin has been tested more thoroughly + added ARMv6 cpu type and made it default for Darwin/ARM + ARMv6+ implementations of atomic operations using ldrex/strex * don't use r9 on Darwin/ARM, as it's reserved under certain circumstances (don't know yet which ones) * changed C-test object files for ARM/Darwin to ARMv6 versions * check in assembler reader that regsets are not empty, because instructions with a regset operand have undefined behaviour in that case * fixed resultdef of tarmtypeconvnode.first_int_to_real in case of int64->single type conversion * fixed constant pool locations in case 64 bit constants are generated, and/or when vfp instructions with limited reach are present WARNING: when using VFP on an ARMv6 or later cpu, you *must* compile all code with -Cparmv6 (or higher), or you will get crashes. The reason is that storing/restoring multiple VFP registers must happen using different instructions on pre/post-ARMv6. git-svn-id: trunk@14317 -
204 lines
1.7 KiB
SQL
204 lines
1.7 KiB
SQL
{ don't edit, this file is generated from armins.dat }
|
|
(
|
|
A_NONE,
|
|
A_ABS,
|
|
A_ACS,
|
|
A_ASN,
|
|
A_ATN,
|
|
A_ADC,
|
|
A_ADD,
|
|
A_ADF,
|
|
A_AND,
|
|
A_B,
|
|
A_BIC,
|
|
A_BL,
|
|
A_BLX,
|
|
A_BKPT,
|
|
A_BX,
|
|
A_CDP,
|
|
A_CMF,
|
|
A_CMFE,
|
|
A_CMN,
|
|
A_CMP,
|
|
A_CLZ,
|
|
A_CNF,
|
|
A_COS,
|
|
A_DVF,
|
|
A_EOR,
|
|
A_EXP,
|
|
A_FDV,
|
|
A_FLT,
|
|
A_FIX,
|
|
A_FML,
|
|
A_FRD,
|
|
A_LDC,
|
|
A_LDM,
|
|
A_LDRBT,
|
|
A_LDRB,
|
|
A_LDR,
|
|
A_LDRH,
|
|
A_LDRSB,
|
|
A_LDRSH,
|
|
A_LDRT,
|
|
A_LDF,
|
|
A_LFM,
|
|
A_LGN,
|
|
A_LOG,
|
|
A_MCR,
|
|
A_MLA,
|
|
A_MOV,
|
|
A_MRS,
|
|
A_MSR,
|
|
A_MNF,
|
|
A_MUF,
|
|
A_MUL,
|
|
A_MVF,
|
|
A_MVN,
|
|
A_NOP,
|
|
A_ORR,
|
|
A_RDF,
|
|
A_RFS,
|
|
A_RFC,
|
|
A_RMF,
|
|
A_RPW,
|
|
A_RSB,
|
|
A_RSC,
|
|
A_RSF,
|
|
A_RND,
|
|
A_POL,
|
|
A_SBC,
|
|
A_SFM,
|
|
A_SIN,
|
|
A_SMLAL,
|
|
A_SMULL,
|
|
A_SQT,
|
|
A_SUF,
|
|
A_STF,
|
|
A_STM,
|
|
A_STR,
|
|
A_STRB,
|
|
A_STRBT,
|
|
A_STRH,
|
|
A_STRT,
|
|
A_SUB,
|
|
A_SWI,
|
|
A_SWP,
|
|
A_SWPB,
|
|
A_TAN,
|
|
A_TEQ,
|
|
A_TST,
|
|
A_UMLAL,
|
|
A_UMULL,
|
|
A_WFS,
|
|
A_LDRD,
|
|
A_MCRR,
|
|
A_MRRC,
|
|
A_PLD,
|
|
A_QADD,
|
|
A_QDADD,
|
|
A_QDSUB,
|
|
A_QSUB,
|
|
A_SMLABB,
|
|
A_SMLABT,
|
|
A_SMLATB,
|
|
A_SMLATT,
|
|
A_SMLALBB,
|
|
A_SMLALBT,
|
|
A_SMLALTB,
|
|
A_SMLALTT,
|
|
A_SMLAWB,
|
|
A_SMLAWT,
|
|
A_SMULBB,
|
|
A_SMULBT,
|
|
A_SMULTB,
|
|
A_SMULTT,
|
|
A_SMULWB,
|
|
A_SMULWT,
|
|
A_STRD,
|
|
A_FABSD,
|
|
A_FABSS,
|
|
A_FADDD,
|
|
A_FADDS,
|
|
A_FCMPD,
|
|
A_FCMPED,
|
|
A_FCMPES,
|
|
A_FCMPEZD,
|
|
A_FCMPEZS,
|
|
A_FCMPS,
|
|
A_FCMPZD,
|
|
A_FCMPZS,
|
|
A_FCPYD,
|
|
A_FCPYS,
|
|
A_FCVTDS,
|
|
A_FCVTSD,
|
|
A_FDIVD,
|
|
A_FDIVS,
|
|
A_FLDD,
|
|
A_FLDM,
|
|
A_FLDS,
|
|
A_FMACD,
|
|
A_FMACS,
|
|
A_FMDHR,
|
|
A_FMDLR,
|
|
A_FMRDH,
|
|
A_FMRDL,
|
|
A_FMRS,
|
|
A_FMRX,
|
|
A_FMSCD,
|
|
A_FMSCS,
|
|
A_FMSR,
|
|
A_FMSTAT,
|
|
A_FMULD,
|
|
A_FMULS,
|
|
A_FMXR,
|
|
A_FNEGD,
|
|
A_FNEGS,
|
|
A_FNMACD,
|
|
A_FNMACS,
|
|
A_FNMSCD,
|
|
A_FNMSCS,
|
|
A_FNMULD,
|
|
A_FNMULS,
|
|
A_FSITOD,
|
|
A_FSITOS,
|
|
A_FSQRTD,
|
|
A_FSQRTS,
|
|
A_FSTD,
|
|
A_FSTM,
|
|
A_FSTS,
|
|
A_FSUBD,
|
|
A_FSUBS,
|
|
A_FTOSID,
|
|
A_FTOSIS,
|
|
A_FTOUID,
|
|
A_FTOUIS,
|
|
A_FUITOD,
|
|
A_FUITOS,
|
|
A_FMDRR,
|
|
A_FMRRD,
|
|
A_ASR,
|
|
A_LSR,
|
|
A_LSL,
|
|
A_ROR,
|
|
A_SDIV,
|
|
A_UDIV,
|
|
A_MOVT,
|
|
A_LDREX,
|
|
A_STREX,
|
|
A_IT,
|
|
A_ITE,
|
|
A_ITT,
|
|
A_ITEE,
|
|
A_ITTE,
|
|
A_ITET,
|
|
A_ITTT,
|
|
A_ITEEE,
|
|
A_ITTEE,
|
|
A_ITETE,
|
|
A_ITTTE,
|
|
A_ITEET,
|
|
A_ITTET,
|
|
A_ITETT,
|
|
A_ITTTT
|
|
);
|