亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? support.c

?? nVidia開發的圖形語言 Cg
?? C
?? 第 1 頁 / 共 5 頁
字號:
/****************************************************************************\
Copyright (c) 2002, NVIDIA Corporation.

NVIDIA Corporation("NVIDIA") supplies this software to you in
consideration of your agreement to the following terms, and your use,
installation, modification or redistribution of this NVIDIA software
constitutes acceptance of these terms.  If you do not agree with these
terms, please do not use, install, modify or redistribute this NVIDIA
software.

In consideration of your agreement to abide by the following terms, and
subject to these terms, NVIDIA grants you a personal, non-exclusive
license, under NVIDIA's copyrights in this original NVIDIA software (the
"NVIDIA Software"), to use, reproduce, modify and redistribute the
NVIDIA Software, with or without modifications, in source and/or binary
forms; provided that if you redistribute the NVIDIA Software, you must
retain the copyright notice of NVIDIA, this notice and the following
text and disclaimers in all such redistributions of the NVIDIA Software.
Neither the name, trademarks, service marks nor logos of NVIDIA
Corporation may be used to endorse or promote products derived from the
NVIDIA Software without specific prior written permission from NVIDIA.
Except as expressly stated in this notice, no other rights or licenses
express or implied, are granted by NVIDIA herein, including but not
limited to any patent rights that may be infringed by your derivative
works or by other works in which the NVIDIA Software may be
incorporated. No hardware is licensed hereunder. 

THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER
PRODUCTS.

IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT,
INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY
OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE
NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT,
TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF
NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\****************************************************************************/

//
// support.c
//

#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include "slglobals.h"

dtype CurrentDeclTypeSpecs = { 0, };

#undef PICK
#define PICK(a, b, c, d, e) d

const nodekind NodeKind[] = {
    OPCODE_TABLE
};

#undef PICK

#define PICK(a, b, c, d, e) c

int const opcode_atom[] = {
    OPCODE_TABLE
};

#undef PICK

/*
 * NewDeclNode() - Create a new declaration node.
 *
 */
 
decl *NewDeclNode(SourceLoc *loc, int atom, dtype *type)
{
    decl *pdecl;

    pdecl = (decl *) malloc(sizeof(decl));
    pdecl->kind = DECL_N;
    pdecl->loc = *loc;
    pdecl->name = atom;
    pdecl->semantics = 0;
    pdecl->type = *type;
    pdecl->next = NULL;
    pdecl->symb = NULL;
    pdecl->params = NULL;
    pdecl->initexpr = NULL;
    return pdecl;
} // NewDeclNode

/*
 * NewSymbNode() - Create a new symbol node.
 *
 */
 
symb *NewSymbNode(opcode op, Symbol *fSymb)
{
    symb *psymb;

    assert(NodeKind[op] == SYMB_N);
    psymb = (symb *) malloc(sizeof(symb));
    psymb->kind = SYMB_N;
    psymb->type = fSymb->type;
    psymb->IsLValue = 1;
    if (GetQualifiers(psymb->type) & TYPE_QUALIFIER_CONST) {
        psymb->IsConst = 1;
    } else {
        psymb->IsConst = 0;
    }
    psymb->HasSideEffects = 0;
    psymb->op = op;
    psymb->symbol = fSymb;
    return psymb;
} // NewSymbNode

/*
 * NewIConstNode() - Create a new integer constant node.
 *
 */
 
constant *NewIConstNode(opcode op, int fval, int base)
{
    constant *pconst;

    assert(NodeKind[op] == CONST_N);
    pconst = (constant *) malloc(sizeof(constant));
    pconst->kind = CONST_N;
    pconst->type = GetStandardType(base, 0, 0);
    pconst->IsLValue = 0;
    pconst->IsConst = 0;
    pconst->HasSideEffects = 0;
    pconst->op = op;
    pconst->subop = SUBOP__(base);
    pconst->val[0].i = fval;
    pconst->tempptr[0] = 0;
    return pconst;
} // NewIConstNode

/*
 * NewBConstNode() - Create a new Boolean constant node.
 *
 */
 
constant *NewBConstNode(opcode op, int fval, int base)
{
    constant *pconst;

    assert(NodeKind[op] == CONST_N);
    pconst = (constant *) malloc(sizeof(constant));
    pconst->kind = CONST_N;
    pconst->type = GetStandardType(base, 0, 0);
    pconst->IsLValue = 0;
    pconst->IsConst = 0;
    pconst->HasSideEffects = 0;
    pconst->op = op;
    pconst->subop = SUBOP__(base);
    pconst->val[0].i = fval;
    pconst->tempptr[0] = 0;
    return pconst;
} // NewBConstNode

/*
 * NewFConstNode() - Create a new floating point constant node.
 *
 */
 
constant *NewFConstNode(opcode op, float fval, int base)
{
    constant *pconst;

    assert(NodeKind[op] == CONST_N);
    pconst = (constant *) malloc(sizeof(constant));
    pconst->kind = CONST_N;
    pconst->type = GetStandardType(base, 0, 0);
    pconst->IsLValue = 0;
    pconst->IsConst = 0;
    pconst->HasSideEffects = 0;
    pconst->op = op;
    pconst->subop = SUBOP__(base);
    pconst->val[0].f = fval;
    pconst->tempptr[0] = 0;
    return pconst;
} // NewFConstNode

/*
 * NewFConstNodeV() - Create a new floating point constant vector node.
 *
 */
 
constant *NewFConstNodeV(opcode op, float *fval, int len, int base)
{
    constant *pconst;
    int ii;

    assert(NodeKind[op] == CONST_N);
    pconst = (constant *) malloc(sizeof(constant));
    pconst->kind = CONST_N;
    pconst->type = GetStandardType(base, len, 0);
    pconst->IsLValue = 0;
    pconst->IsConst = 0;
    pconst->HasSideEffects = 0;
    pconst->op = op;
    pconst->subop = SUBOP_V(len, base);
    for (ii = 0; ii < len; ii++)
        pconst->val[ii].f = fval[ii];
    pconst->tempptr[0] = 0;
    return pconst;
} // NewFConstNodeV

/*
 * NewUnopNode() - Create a unary op node.
 *
 */
 
unary *NewUnopNode(opcode op, expr *arg)
{
    unary *pun;

    assert(NodeKind[op] == UNARY_N);
    pun = (unary *) malloc(sizeof(unary));
    pun->kind = UNARY_N;
    pun->type = UndefinedType;
    pun->IsLValue = 0;
    pun->IsConst = 0;
    pun->HasSideEffects = 0;
    if (arg)
        pun->HasSideEffects = arg->common.HasSideEffects;
    pun->op = op;
    pun->subop = 0;
    pun->arg = arg;
    pun->tempptr[0] = 0;
    return pun;
} // NewUnopNode

/*
 * NewUnopSubNode() - Create a unary op node.
 *
 */
 
unary *NewUnopSubNode(opcode op, int subop, expr *arg)
{
    unary *pun;

    assert(NodeKind[op] == UNARY_N);
    pun = (unary *) malloc(sizeof(unary));
    pun->kind = UNARY_N;
    pun->type = UndefinedType;
    pun->IsLValue = 0;
    pun->IsConst = 0;
    pun->HasSideEffects = 0;
    if (arg)
        pun->HasSideEffects = arg->common.HasSideEffects;
    pun->op = op;
    pun->subop = subop;
    pun->arg = arg;
    pun->tempptr[0] = 0;
    return pun;
} // NewUnopSubNode

/*
 * NewBinopNode() - Create a binary op node.
 *
 */
 
binary *NewBinopNode(opcode op, expr *left, expr *right)
{
    binary *pbin;

    assert(NodeKind[op] == BINARY_N);
    pbin = (binary *) malloc(sizeof(binary));
    pbin->kind = BINARY_N;
    pbin->type = UndefinedType;
    pbin->IsLValue = 0;
    pbin->IsConst = 0;
    pbin->HasSideEffects = 0;
    if (left)
        pbin->HasSideEffects = left->common.HasSideEffects;
    if (right)
        pbin->HasSideEffects |= right->common.HasSideEffects;
    pbin->op = op;
    pbin->subop = 0;
    pbin->left = left;
    pbin->right = right;
    pbin->tempptr[0] = 0;
    pbin->tempptr[1] = 0;
    return pbin;
} // NewBinopNode

/*
 * NewBinopSubNode() - Create a binary op node.
 *
 */
 
binary *NewBinopSubNode(opcode op, int subop, expr *left, expr *right)
{
    binary *pbin;

    assert(NodeKind[op] == BINARY_N);
    pbin = (binary *) malloc(sizeof(binary));
    pbin->kind = BINARY_N;
    pbin->type = UndefinedType;
    pbin->IsLValue = 0;
    pbin->IsConst = 0;
    pbin->HasSideEffects = 0;
    if (left)
        pbin->HasSideEffects = left->common.HasSideEffects;
    if (right)
        pbin->HasSideEffects |= right->common.HasSideEffects;
    pbin->op = op;
    pbin->subop = subop;
    pbin->left = left;
    pbin->right = right;
    pbin->tempptr[0] = 0;
    pbin->tempptr[1] = 0;
    return pbin;
} // NewBinopSubNode

/*
 * NewTriopNode() - Create a trinary op node.
 *
 */
 
trinary *NewTriopNode(opcode op, expr *arg1, expr *arg2, expr *arg3)
{
    trinary *ptri;

    assert(NodeKind[op] == TRINARY_N);
    ptri = (trinary *) malloc(sizeof(trinary));
    ptri->kind = TRINARY_N;
    ptri->type = UndefinedType;
    ptri->IsLValue = 0;
    ptri->IsConst = 0;
    ptri->HasSideEffects = 0;
    if (arg1)
        ptri->HasSideEffects = arg1->common.HasSideEffects;
    if (arg2)
        ptri->HasSideEffects |= arg2->common.HasSideEffects;
    if (arg3)
        ptri->HasSideEffects |= arg3->common.HasSideEffects;
    ptri->op = op;
    ptri->subop = 0;
    ptri->arg1 = arg1;
    ptri->arg2 = arg2;
    ptri->arg3 = arg3;
    ptri->tempptr[0] = 0;
    ptri->tempptr[1] = 0;
    ptri->tempptr[2] = 0;
    return ptri;
} // NewTriopNode

/*
 * NewTriopSubNode() - Create a trinary op node.
 *
 */
 
trinary *NewTriopSubNode(opcode op, int subop, expr *arg1, expr *arg2, expr *arg3)
{
    trinary *ptri;

    assert(NodeKind[op] == TRINARY_N);
    ptri = (trinary *) malloc(sizeof(trinary));
    ptri->kind = TRINARY_N;
    ptri->type = UndefinedType;
    ptri->IsLValue = 0;
    ptri->IsConst = 0;
    ptri->HasSideEffects = 0;
    if (arg1)
        ptri->HasSideEffects = arg1->common.HasSideEffects;
    if (arg2)
        ptri->HasSideEffects |= arg2->common.HasSideEffects;
    if (arg3)
        ptri->HasSideEffects |= arg3->common.HasSideEffects;
    ptri->op = op;
    ptri->subop = subop;
    ptri->arg1 = arg1;
    ptri->arg2 = arg2;
    ptri->arg3 = arg3;
    ptri->tempptr[0] = 0;
    ptri->tempptr[1] = 0;
    ptri->tempptr[2] = 0;
    return ptri;
} // NewTriopSubNode

/*
 * DupSymbNode() - Duplicate a symb op node.
 *
 */
 
symb *DupSymbNode(const symb *fsymb)
{
    symb *lsymb;

    lsymb = (symb *) malloc(sizeof(symb));
    *lsymb = *fsymb;
    return lsymb;
} // DupSymbNode

/*
 * DupConstNode() - Duplicate a constant op node.
 *
 */
 
constant *DupConstNode(const constant *fconst)
{
    constant *lconst;

    lconst = (constant *) malloc(sizeof(constant));
    *lconst = *fconst;
    return lconst;
} // DupConstNode

/*
 * DupUnaryNode() - Duplicate a unary op node.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美一区二区三区| 亚洲bt欧美bt精品| 伊人一区二区三区| 国产乱国产乱300精品| 91黄视频在线观看| 国产视频911| 蜜臀久久99精品久久久画质超高清 | 国产欧美精品一区二区三区四区| 玉足女爽爽91| 成人动漫一区二区| 精品日韩在线观看| 图片区小说区国产精品视频 | 久久精品国产99国产精品| 99久久er热在这里只有精品66| 91精品国产综合久久香蕉的特点| 一区二区三区中文字幕| 风间由美一区二区av101| 欧美成人a视频| 蜜桃91丨九色丨蝌蚪91桃色| 欧美色精品天天在线观看视频| 中文字幕一区二区三区在线不卡 | 一区二区三区日本| 99在线视频精品| 国产日产欧美一区二区视频| 精品一区二区在线看| 日韩欧美国产一区二区在线播放 | 欧美伦理电影网| 亚洲最大的成人av| 欧美在线观看视频一区二区三区| 亚洲欧美日韩国产另类专区| av一区二区不卡| 亚洲欧洲99久久| 成人sese在线| 亚洲人成7777| 色88888久久久久久影院野外| 亚洲日本va午夜在线电影| 91麻豆精东视频| 亚洲天堂网中文字| 色婷婷国产精品| 亚洲综合视频在线| 91精品国产综合久久久久久久久久| 亚瑟在线精品视频| 制服丝袜中文字幕一区| 美女视频网站黄色亚洲| ww亚洲ww在线观看国产| 国产精品一区在线| 综合久久一区二区三区| 欧美丝袜第三区| 麻豆精品国产91久久久久久| 久久综合九色综合欧美98| 久久精品国产亚洲a| 欧美一区二区在线视频| 久久成人免费电影| 欧美激情中文不卡| 日本韩国欧美在线| 天堂影院一区二区| 精品三级在线看| 成人视屏免费看| 亚洲香肠在线观看| 精品国产一区二区三区久久影院| 精品亚洲成a人| 中文字幕一区二区三区在线观看| 色婷婷香蕉在线一区二区| 日韩精品成人一区二区在线| 久久久99久久| 欧美日韩国产综合久久 | 成人av网站免费| 亚洲线精品一区二区三区| 日韩女优av电影| 成人禁用看黄a在线| 日韩电影在线一区二区| 国产欧美日韩视频在线观看| 欧美午夜精品理论片a级按摩| 久草热8精品视频在线观看| 中文字幕一区在线观看视频| 欧美美女一区二区| 成人一级视频在线观看| 婷婷成人综合网| 亚洲欧美国产77777| 精品成人在线观看| 欧美性大战久久久久久久| 国产激情一区二区三区四区 | 欧美一区二区三区四区在线观看 | 国产自产视频一区二区三区| 悠悠色在线精品| 国产欧美日本一区二区三区| 欧美一区二区视频在线观看| 99精品视频一区二区| 久久99在线观看| 亚洲最大成人网4388xx| 中文字幕精品三区| 91精品国产高清一区二区三区蜜臀| 97久久久精品综合88久久| 精品无码三级在线观看视频| 亚洲影视在线播放| 亚洲色图视频网| 国产农村妇女毛片精品久久麻豆| 日韩一区二区视频| 欧美日韩www| 91高清视频免费看| 99久久精品国产麻豆演员表| 国产不卡免费视频| 国产美女在线观看一区| 蜜臀av性久久久久蜜臀av麻豆| 亚洲成人精品在线观看| 亚洲一区二区三区在线播放| 亚洲精品免费在线| 亚洲人成网站精品片在线观看| 欧美精彩视频一区二区三区| 精品国产伦一区二区三区免费 | 久久久五月婷婷| 久久久三级国产网站| 日韩久久久久久| 日韩一区二区精品| 日韩亚洲欧美高清| 欧美α欧美αv大片| 欧美大白屁股肥臀xxxxxx| 欧美一区二区三区在线观看| 欧美一级日韩免费不卡| 日韩一区和二区| 精品区一区二区| 国产丝袜在线精品| 国产精品美女一区二区三区| 亚洲欧美一区二区在线观看| 亚洲视频一区在线观看| 一区二区激情小说| 日本伊人午夜精品| 精品午夜久久福利影院| 国产成人亚洲综合a∨婷婷图片| 国产91高潮流白浆在线麻豆| 99精品黄色片免费大全| 欧美性一二三区| 日韩三级免费观看| 久久嫩草精品久久久精品| 国产欧美日韩卡一| 亚洲一区二区在线播放相泽| 欧美aaaaaa午夜精品| 国产一区二区看久久| 97久久超碰国产精品| 欧美日韩国产美| 久久久久国产精品人| 亚洲精品乱码久久久久久久久| 午夜久久久久久电影| 精品一区二区影视| 91理论电影在线观看| 欧美一区二区高清| 国产精品青草综合久久久久99| 亚洲激情一二三区| 国产一区二区三区蝌蚪| 日本道免费精品一区二区三区| 91麻豆精品国产91久久久| 中文字幕巨乱亚洲| 午夜精品在线看| 成人成人成人在线视频| 5858s免费视频成人| 国产精品女主播av| 蜜桃av噜噜一区| 91福利社在线观看| 国产调教视频一区| 日本在线不卡一区| 色婷婷久久一区二区三区麻豆| 日韩欧美国产高清| 亚洲乱码中文字幕| 精品亚洲aⅴ乱码一区二区三区| 99re在线精品| 久久久综合网站| 午夜久久电影网| 一本色道**综合亚洲精品蜜桃冫 | 欧美精品乱码久久久久久按摩 | 亚洲福利电影网| 成人免费视频视频| 日韩欧美一区二区不卡| 一区二区三区中文字幕电影| 国产精品99久久久久久有的能看| 欧美高清视频在线高清观看mv色露露十八| 日本一区二区三区久久久久久久久不| 日本 国产 欧美色综合| 91福利在线看| 综合色中文字幕| 岛国精品一区二区| 欧美不卡一区二区三区| 首页综合国产亚洲丝袜| 91麻豆精品秘密| 亚洲欧美视频在线观看| 成人黄色网址在线观看| 久久综合成人精品亚洲另类欧美 | 欧美一级二级在线观看| 亚洲va欧美va天堂v国产综合| 色综合天天综合| 国产精品久久久一本精品| 国产二区国产一区在线观看| 欧美大片拔萝卜| 久久福利资源站| 日韩一区二区电影在线| 美腿丝袜亚洲综合| 欧美第一区第二区| 激情深爱一区二区| 精品久久五月天| 国产乱对白刺激视频不卡| 亚洲精品一线二线三线|