⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operatorlist.dat

📁 一种将c高级语言转化给VHDL的编译器
💻 DAT
字号:
;LA-CC 05-135 Trident 0.7.1;;Copyright Notice;Copyright 2006 (c) the Regents of the University of California.;;This Software was produced under a U.S. Government contract ;(W-7405-ENG-36) by Los Alamos National Laboratory, which is operated by ;the University of California for the U.S. Department of Energy. The U.S. ;Government is licensed to use, reproduce, and distribute this Software. ;Permission is granted to the public to copy and use this Software without ;charge, provided that this Notice and any statement of authorship are ;reproduced on all copies. Neither the Government nor the University makes ;any warranty, express or implied, or assumes any liability or ;responsibility for the user of this Software.## OperatorList.dat# $Id: OperatorList.dat 2578 2006-06-19 23:02:04Z kpeter $## SYMBOL# NAME# FORMAT# TRAITS# DEFS USES## Nop -- does nothing.###NOP nop Nullary none0 0## Return -- uh, we need to eliminate returns and tie them to where they# go since we will not have an execution stack.## ret void# ret int 5#RET ret Return ret0 1## br label <dest>#GOTO goto Goto branch0 1# # # br bool <cond>, label <iftrue>, label <iffalse>#BR br Branchbranch | conditional0 3### switch <int_type> <val>, label <def_dest> [<int_type> <val>, label <dest> ..]#SWITCH switch Switchbranch | var_uses | conditional0 -1# invoke ?# unwind ?## <result> = add <type> <var1>, <var2>#ADD add Binarycommutative1 2## <result> = sub <type> <var1>, <var2>#SUB sub Binarynone1 2## <result> = mul <type> <var1>, <var2>#MUL mul Binarycommutative1 2## <result> = div <type> <var1>, <var2>#DIV div Binarynone1 2# rem - remainderREM rem Binarynone1 2## <result> = seteq <type> <var1>, <var2>#SETEQ seteq Testcommutative1 2## <result> = setne <type> <var1>, <var2>#SETNE setne Testcommutative1 2## <result> = setlt <type> <var1>, <var2>#SETLTsetlt Testnone1 2## <result> = setgt <type> <var1>, <var2>#SETGTsetgt Testnone1 2## <result> = setle <type> <var1>, <var2>#SETLE setle Testnone1 2## <result> = setge <type> <var1>, <var2>#SETGEsetge Testnone1 2## <result> = and <type> <var1>, <var2>#ANDand Binarycommutative1 2## <result> = or <type> <var1>, <var2>#ORor Binarycommutative1 2## <result> = xor <type> <var1>, <var2>#XORxor Binarycommutative1 2## <result> = shl <type> <var1>, ubyte <var2>#SHLshl Binarynone1 2## <result> = shr <type> <var1>, ubyte <var2>#SHRshr Binarynone1 2## <result> = abs <type> <var1>#ABSabs Unarynone1 1## <result> = inv <type> <var1>#INVinv Unarynone1 1## <result> = not <type> <var1>#NOTnot Unarynone1 1## <result> = sqrt <type> <var1>#SQRTsqrt Unarynone1 1## <result> = malloc <type>, uint <NumElements># <result> = malloc <type>#MALLOCmalloc Mallocalloc1 1# free## <result> = load <type>* <pointer># <result> = volatile load <type>* <pointer>#LOADload Loadload1 1## <result> = aload <type>* <addr> <primal> # <result> = volatile load <type>* <addr> <primal>#ALOADaload ALoadload1 2## store <type> <value>, <type>* <pointer># volatile store <type> <value>, <type>* <pointer>#STOREstore Storestore1 1## astore <type> <value>, <type>* <addr> <primal># volatile store <type> <value>, <type>* <addr> <primal>#ASTOREastore AStorestore0 3# getelementptr# <result> = getelementptr <type> <pointer> [, <type> <value> ]*GETELEMENTPTRgetelementptr Getelementptrvar_uses | getelementptr1 1 ## <result> = phi <type> [ <val0>, label0], ...#PHIphi Phiphi | var_uses1 -1## <result> = call <type> <function> ([<argtype> <argval>,]*)# CALLcall Callcall | var_uses1 -1## <result> = case <type> <value> to <type2>#CASTcast Castcast1 1## <result> = select bool <cond>, <type> <val1>, <type> <val2>#SELECTselect Selectselect1 3# call## This is the end of the generic operators -- after this there are only# hardware library operators. #LIBOPlibop Nullarynone0 0## Basic FP Library## LIBRARY SYMBOL# NAME FORMAT# TRAITS# DEFS USES# INPUT CLASS# PIPE_STAGES LATENCY AREA# fpaddBASIC AA_FPADDaa_fpadd Binarycommutative1 2FP3 0.0 -1.04# dpaddBASIC AA_DPADDaa_dpadd Binarycommutative1 2FP3 0.0 -1.04# fpsubBASIC AA_FPSUBaa_fpsub Binarynone1 2FP3 0.0 -1.05# dpsubBASIC AA_DPSUBaa_dpsub Binarynone1 2FP3 0.0 -1.05# fpmulBASIC AA_FPMULaa_fpmul Binarycommutative1 2FP 4 0.0 -1.016# dpmulBASIC AA_DPMULaa_dpmul Binarycommutative1 2FP 4 0.0 -1.016# fpdivBASIC AA_FPDIVaa_fpdiv Binarynone1 2FP15 0.0 -1.064# dpdivBASIC AA_DPDIVaa_dpdiv Binarynone1 2FP30 0.0 -1.064# fpinvBASIC AA_FPINVaa_fpinv Unarynone1 1FP0 0.0 -1.0# fpinvBASIC AA_DPINVaa_dpinv Unarynone1 1FP0 0.0 -1.0# fpsqrtBASIC AA_FPSQRTaa_fpsqrt Unarynone1 1FP14 0.0 -1.0128# dpsqrtBASIC AA_DPSQRTaa_dpsqrt Unarynone1 1FP29 0.0 -1.0128BASIC AA_FPABSaa_fpabs Unarynone1 1FP0 0.0 -1.01BASIC AA_DPABSaa_dpabs Unarynone1 1FP0 0.0 -1.01# iaddBASIC AAA_IADDaaa_iadd Binarycommutative1 2INT0 0.7 -1.0# isubBASIC AAA_ISUBaaa_isub Binarynone1 2INT0 0.7 -1.0# imulBASIC AAA_IMULaaa_imul Binarycommutative1 2INT2 0.0 -1.0# idivBASIC AAA_IDIVaaa_idiv Binarynone1 2INT8 0.0 -1.0# iinvBASIC AAA_IINVaaa_iinv Unarynone1 1INT0 0.0 -1.0# isqrtBASIC AAA_ISQRTaaa_isqrt Unarynone1 1INT32 0.0 -1.064# Now for FP and INT comparison are the same.  This may not be true# for all input classes (?).## seteqBASIC AAA_SETEQaaa_seteq Testcommutative1 2ANY0 0.9 -1.0# setneBASIC AAA_SETNEaaa_setne Testcommutative1 2ANY0 0.9 -1.0# setltBASIC AAA_SETLTaaa_setlt Testnone1 2ANY0 0.9 -1.0# setgtBASIC AAA_SETGTaaa_setgt Testnone1 2ANY0 0.9 -1.0# setleBASIC AAA_SETLEaaa_setle Testnone1 2ANY0 0.9 -1.0# setgeBASIC AAA_SETGEaaa_setge Testnone1 2ANY0 0.9 -1.0# andBASIC AAA_ANDaaa_and Binarycommutative1 2ANY0 0.3 -1.0# orBASIC AAA_ORaaa_or Binarycommutative1 2ANY0 0.3 -1.0# xorBASIC AAA_XORaaa_xor Binarycommutative1 2ANY0 0.5 -1.0# notBASIC AAA_NOTaaa_not Unarynone1 1ANY0 0.0 -1.0# shl - this depends on whether it is variable or constant shift.# variable shift takes log(2)(width) at least.  Assuming 32 bits.BASIC AAA_SHLaaa_shl Binarynone1 2ANY5 0.0 -1.0# constant shiftBASIC AAA_CSHLaaa_cshl Binarynone1 2ANY0 0.0 -1.0# shr - (same issues as shl)#BASIC AAA_SHRaaa_shr Binarynone1 2ANY5 0.0 -1.0# cshrBASIC AAA_CSHRaaa_cshr Binarynone1 2ANY0 0.0 -1.0# load (depends on where it is being loaded from and what we are loading (e.g. constants.))BASIC AAA_LOADaaa_load Loadload1 1ANY0 0.3 -1.00# aload -- this is for block ram access only.BASIC AAA_ALOADaaa_aload ALoadload1 2ANY1 0.0 -1.00# store (same as load -- opposite direction)BASIC AAA_STOREaaa_store Storestore1 2ANY0 0.3 -1.01# astore (same as aload -- opposite direction)BASIC AAA_ASTOREaaa_astore AStorestore0 3ANY1 0.0 -1.01# select (muxing)BASIC AAA_SELECTaaa_select Selectselect1 3ANY0 0.7 -1.0# phi should be "lowered" into selects.# cast (?)# xd1_aload -- this is for external ram access only.#XD1 XD1_ALOAD#xd1_aload ALoad#load#1 2#ANY#8 0.0 -1.0#0# store (same as load -- opposite direction)#XD1 XD1_ASTORE#xd1_astore AStore#store#0 3#ANY#1 0.0 -1.0#1#fp operators from the quixilica libraryBASIC QX_FPADDqx_fpadd Binarycommutative 1 2FP11 0.0 -1.0371BASIC QX_DPADDqx_dpadd Binarycommutative 1 2FP12 0.0 -1.0815BASIC QX_FPSUBqx_fpsub Binarynone 1 2FP11 0.0 -1.0371BASIC QX_DPSUBqx_dpsub Binarynone 1 2FP12 0.0 -1.0815BASIC QX_FPMUL_SOFTqx_fpmul_soft Binarynone 1 2FP8 0.0 -1.0380BASIC QX_DPMUL_SOFTqx_dpmul_soft Binarynone 1 2FP9 0.0 -1.01282BASIC QX_FPDIVqx_fpdiv Binarynone 1 2FP27 0.0 -1.0 777BASIC QX_DPDIVqx_dpdiv Binarynone 1 2FP56 0.0 -1.0 3127BASIC QX_FPSQRTqx_fpsqrt Unarynone 1 1FP27 0.0 -1.0 673BASIC QX_DPSQRTqx_dpsqrt Unarynone 1 1FP56 0.0 -1.0 2767BASIC TR_FPINVtr_fpinv Unarynone1 1FP0 0.0 -1.01BASIC TR_DPINVtr_fpinv Unarynone1 1FP0 0.0 -1.01BASIC TR_FPABStr_fpabs Unarynone1 1FP0 0.0 -1.01BASIC TR_DPABStr_fpabs Unarynone1 1FP0 0.0 -1.01BASIC TR_UCASTtr_ucast Castnone1 1INT1 0.0 0.01BASIC TR_DCASTtr_dcast Castnone1 1INT0 0.0 0.00BASIC TR_ITOFPtr_itofp Castnone1 1INT23 0.0 0.01BASIC TR_ITODPtr_itodp Castnone1 1INT24 0.0 0.01BASIC TR_FPTODPtr_fptodp Castnone1 1FP1 0.0 0.01BASIC TR_DPTOFPtr_dptofp Castnone1 1FP1 0.0 0.01BASIC TR_FPTOItr_fptoi Castnone1 1FP17 0.0 0.01BASIC TR_DPTOItr_dptoi Castnone1 1FP18 0.0 0.01

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -