| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | {    Copyright (c) 2013 by Jonas Maebe    This unit contains the LLVM instruction tables    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ****************************************************************************}unit itllvm;{$i fpcdefs.inc}interface    uses      llvmbase, cgbase;    const      llvm_op2str : llvmop2strtable = ('',        { terminator instructions }        'ret', 'br', 'switch', 'indirectbr',        'invoke', 'resume',        'unreachable',        { binary operations }        'add', 'fadd', 'sub', 'fsub', 'mul', 'fmul',        'udiv','sdiv', 'fdiv', 'urem', 'srem', 'frem',        { bitwise binary operations }        'shl', 'lshr', 'ashr', 'and', 'or', 'xor',        { vector operations }        'extractelement', 'insertelement', 'shufflevector',        { aggregate operations }        'extractvalue', 'insertvalue',        { memory access and memory addressing operations }        'alloca',        'load', 'store',        'fence', 'cmpxchg', 'atomicrmw',        'getelementptr',        { conversion operations }        'trunc', 'zext', 'sext', 'fptrunc', 'fpext',        'fptoui', 'fptosi', 'uitofp', 'sitofp',        'ptrtoint', 'inttoptr',        'bitcast',        { other operations }        'icmp', 'fcmp',        'phi', 'select', 'call',        'va_arg', 'landingpad',        'blockaddress',        'freeze',        { fpc pseudo opcodes }        'type', { type definition }        'catch', { catch exception }        'filter', { exception filter }        'cleanup', { exception cleanup/finally }        'invalid1', { la_x_to_inttoptr }        'invalid2', { la_ptrtoint_to_x }        'asm' { la_asmblock }      );      llvm_cond2str : array[topcmp] of ansistring = ('',        'eq',        'sgt',        'slt',        'sge',        'sle',        'ne',        'ule',        'ult',        'uge',        'ugt'      );      llvm_fpcond2str: array[tllvmfpcmp] of ansistring = (      'invalid',      'false',      'oeq', 'ogt', 'oge', 'olt', 'ole', 'one', 'ord',      'ueq', 'ugt', 'uge', 'ult', 'ule', 'une', 'uno',      'true');implementationend.
 |