亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩免费一区二区三区在线播放| 国产经典欧美精品| 久久97超碰国产精品超碰| 激情综合亚洲精品| 一本一道综合狠狠老| 欧美精品丝袜中出| 中文字幕乱码亚洲精品一区| 一区二区三区鲁丝不卡| 蜜臀久久99精品久久久久久9| 国产精品影音先锋| 欧美性大战久久| www一区二区| 亚洲一区二区三区四区的| 国产在线精品一区二区不卡了 | 欧美久久久久久久久中文字幕| 日韩精品一区二区三区蜜臀| 国产精品欧美极品| 午夜不卡av免费| voyeur盗摄精品| 日韩欧美久久一区| 亚洲精品福利视频网站| 精品一区二区影视| 欧美性欧美巨大黑白大战| 国产午夜精品久久久久久久 | 欧美在线视频你懂得| 精品国产区一区| 亚洲最色的网站| 国产精品综合av一区二区国产馆| 欧美日韩国产经典色站一区二区三区| 国产欧美一区二区精品婷婷| 日韩在线播放一区二区| 99久久精品免费看国产| 欧美大片在线观看一区二区| 亚洲午夜在线视频| 成人高清免费观看| 久久综合九色综合97_久久久| 亚洲在线视频一区| 成人开心网精品视频| 日韩三级av在线播放| 亚洲成人av电影在线| 成人app下载| 久久精品一区二区三区不卡牛牛| 日本欧美一区二区在线观看| 在线一区二区三区做爰视频网站| 国产亚洲精品aa| 精品一区二区三区在线观看国产| 欧美日韩卡一卡二| 亚洲精品免费播放| 波多野结衣在线一区| 亚洲精品在线观| 麻豆精品视频在线| 91精品欧美综合在线观看最新 | 欧美性感一类影片在线播放| 国产精品久久久久一区二区三区| 国产在线精品免费av| 日韩女优毛片在线| 日本va欧美va欧美va精品| 欧美视频中文字幕| 亚洲国产一区二区视频| 99久精品国产| 亚洲乱码中文字幕| 91猫先生在线| 亚洲免费色视频| 97久久精品人人做人人爽| 中文字幕亚洲一区二区av在线 | 日韩毛片一二三区| 不卡的av电影| 国产精品免费免费| 国产黄人亚洲片| 久久精品在这里| 懂色一区二区三区免费观看| 久久久www成人免费无遮挡大片| 精品一区二区三区久久久| 日韩欧美在线影院| 乱一区二区av| 久久综合国产精品| 成人在线综合网| 国产精品日产欧美久久久久| 成年人网站91| 一区二区三区中文在线| 欧美伊人久久久久久午夜久久久久| 一区二区不卡在线视频 午夜欧美不卡在| 91影视在线播放| 亚洲国产一区二区视频| 欧美一区二区女人| 精品伊人久久久久7777人| 国产日产欧美一区| av高清久久久| 一区二区三区精品在线| 欧美日韩国产系列| 久久爱www久久做| 国产亚洲欧美日韩在线一区| av在线不卡免费看| 亚洲一区二区三区在线播放| 欧美一区二区三区白人| 久久99精品网久久| 国产精品久久影院| 欧美少妇xxx| 久久99热99| 国产精品久久久久久久久免费桃花 | 欧美日韩国产系列| 久久99九九99精品| 亚洲欧洲成人av每日更新| 在线精品视频免费播放| 男女性色大片免费观看一区二区 | 国产成人超碰人人澡人人澡| 日韩美女精品在线| 欧美一区二区三区思思人| 国产aⅴ精品一区二区三区色成熟| 亚洲色图另类专区| 日韩三级高清在线| 91网上在线视频| 日韩成人免费看| 国产精品毛片大码女人| 欧美军同video69gay| 国产成人在线影院| 亚洲国产毛片aaaaa无费看| 欧美精品一区二区三区在线| 99riav久久精品riav| 日本不卡中文字幕| 中文字幕一区二区视频| 日韩一区二区三区电影在线观看 | 亚洲黄色免费电影| 欧美本精品男人aⅴ天堂| 成人av在线网站| 蜜桃精品在线观看| 91看片淫黄大片一级在线观看| 丝袜脚交一区二区| 中文字幕一区二区三区精华液| 欧美精品一二三| 国产在线精品不卡| 性欧美大战久久久久久久久| 国产日韩三级在线| 欧美一级搡bbbb搡bbbb| 91女人视频在线观看| 久草中文综合在线| 午夜精品aaa| 亚洲天天做日日做天天谢日日欢| 精品理论电影在线观看 | 国产精品蜜臀av| 精品国产乱码91久久久久久网站| 欧美高清一级片在线| 狠狠网亚洲精品| 亚洲线精品一区二区三区| 综合在线观看色| 亚洲国产精品精华液2区45| 久久综合九色综合欧美98| 日韩精品中文字幕在线不卡尤物| 欧美精品电影在线播放| 欧美伦理电影网| 在线成人免费视频| 欧美一级片在线看| 日韩一区二区视频| 亚洲一区二区三区视频在线播放| 成人免费在线视频观看| 亚洲欧洲av在线| 亚洲人妖av一区二区| 自拍偷拍欧美精品| 一区二区三区四区激情 | 精品久久久久久最新网址| 日韩一区二区在线观看视频| 日韩一级片网站| 日韩三级免费观看| 精品国产欧美一区二区| 久久婷婷成人综合色| 亚洲国产精品成人综合| 国产精品短视频| 亚洲精品欧美专区| 亚洲午夜精品久久久久久久久| 午夜av区久久| 麻豆国产精品777777在线| 久久99精品久久久久久久久久久久| 精品一区中文字幕| 国产成人av影院| 色偷偷成人一区二区三区91| 色婷婷综合久久久中文一区二区 | 精品毛片乱码1区2区3区| 日韩三级在线观看| 精品国产一二三区| 中文字幕不卡的av| 一区二区三区四区在线播放| 亚洲第一在线综合网站| 免费观看在线综合| 国产精品资源在线看| 99精品欧美一区| 欧美在线视频你懂得| 欧美一区二区三区色| 欧美精品一区二区三区四区 | 欧美精品一区二区三区高清aⅴ| 久久久亚洲精品石原莉奈| 亚洲欧美综合色| 午夜欧美大尺度福利影院在线看| 免费观看91视频大全| 高清国产午夜精品久久久久久| 色诱亚洲精品久久久久久| 91精品国产一区二区三区| 国产日产欧美一区二区三区| 亚洲精品国产高清久久伦理二区| 日韩电影在线一区二区三区| 国产精品小仙女|