本文整理汇总了C++中ADD函数的典型用法代码示例。如果您正苦于以下问题:C++ ADD函数的具体用法?C++ ADD怎么用?C++ ADD使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ADD函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: ImagingAccessInit
void
ImagingAccessInit()
{
#define ADD(mode_, line_, get_pixel_, put_pixel_) \
{ ImagingAccess access = add_item(mode_); \
access->line = line_; \
access->get_pixel = get_pixel_; \
access->put_pixel = put_pixel_; \
}
/* populate access table */
ADD("1", line_8, get_pixel_8, put_pixel_8);
ADD("L", line_8, get_pixel_8, put_pixel_8);
ADD("LA", line_32, get_pixel, put_pixel);
ADD("I", line_32, get_pixel_32, put_pixel_32);
ADD("I;16", line_16, get_pixel_16L, put_pixel_16L);
ADD("I;16L", line_16, get_pixel_16L, put_pixel_16L);
ADD("I;16B", line_16, get_pixel_16B, put_pixel_16B);
ADD("I;32L", line_32, get_pixel_32L, put_pixel_32L);
ADD("I;32B", line_32, get_pixel_32B, put_pixel_32B);
ADD("F", line_32, get_pixel_32, put_pixel_32);
ADD("P", line_8, get_pixel_8, put_pixel_8);
ADD("PA", line_32, get_pixel, put_pixel);
ADD("RGB", line_32, get_pixel_32, put_pixel_32);
ADD("RGBA", line_32, get_pixel_32, put_pixel_32);
ADD("RGBa", line_32, get_pixel_32, put_pixel_32);
ADD("RGBX", line_32, get_pixel_32, put_pixel_32);
ADD("CMYK", line_32, get_pixel_32, put_pixel_32);
ADD("YCbCr", line_32, get_pixel_32, put_pixel_32);
}
开发者ID:olduvaihand,项目名称:pil3k,代码行数:30,代码来源:Access.c
示例2: main
int main(int argc, char *argv[]) {
/*=========== commandline parsing ===========*/
int c, i;
char *name = argv[0];
static struct option long_options[] = {
{"help", no_argument, NULL, 'h'}
};
int option_index = 0;
while ((c = getopt_long(argc, argv, "h", long_options, &option_index)) != -1) {
switch (c) {
case 'h':
help(name);
return EXIT_SUCCESS;
case '?':
usage(name);
return EXIT_FAILURE;
default:
fprintf(stderr, "Illegal option %c.\n", c);
usage(name);
return EXIT_FAILURE;
}
}
if(argc - optind < 2){
usage(name);
return EXIT_FAILURE;
}
bitset tuple = EMPTY_SET;
for(i = optind; i < argc; i++){
int t1, t2, t3;
if(sscanf(argv[i], "%d,%d,%d", &t1, &t2, &t3)!=3){
fprintf(stderr, "Error while reading triangle %d.\n", i - optind + 1);
usage(name);
return EXIT_FAILURE;
}
bitset triangle = EMPTY_SET;
ADD(triangle, t1-1);
ADD(triangle, t2-1);
ADD(triangle, t3-1);
int j=0;
while(j < nf && CONTAINS_ALL(faceSets[j], triangle)){
j++;
}
if(j == nf){
fprintf(stderr, "The triangle %d,%d,%d does not exist -- exiting!\n", t1, t2, t3);
return EXIT_FAILURE;
} else {
ADD(tuple, j);
}
}
/*=========== read planar graphs ===========*/
unsigned short code[MAXCODELENGTH];
int length;
if (readPlanarCode(code, &length, stdin)) {
decodePlanarCode(code);
} else {
fprintf(stderr, "Error while reading triangulation -- exiting!\n");
return EXIT_FAILURE;
}
if(findEOPD(tuple)){
fprintf(stderr, "There is an extended outer planar disc.\n");
} else {
fprintf(stderr, "There is no extended outer planar disc.\n");
}
return EXIT_SUCCESS;
}
开发者ID:nvcleemp,项目名称:eopd,代码行数:75,代码来源:find_eopd_4_tuple.c
示例3: arch_pdp11_translate_instr
int
arch_pdp11_translate_instr(cpu_t *cpu, addr_t pc, BasicBlock *bb) {
uint16_t opcode = cpu->RAM[pc];
//LOG("%s:%d PC=$%04X\n", __func__, __LINE__, pc);
switch (get_instr(opcode)) {
/* flags */
case INSTR_CLC: LET1(cpu->ptr_C, FALSE); break;
case INSTR_CLD: LET1(ptr_D, FALSE); break;
case INSTR_CLI: LET1(ptr_I, FALSE); break;
case INSTR_CLV: LET1(cpu->ptr_V, FALSE); break;
case INSTR_SEC: LET1(cpu->ptr_C, TRUE); break;
case INSTR_SED: LET1(ptr_D, TRUE); break;
case INSTR_SEI: LET1(ptr_I, TRUE); break;
/* register transfer */
case INSTR_TAX: SET_NZ(LET(X,R(A))); break;
case INSTR_TAY: SET_NZ(LET(Y,R(A))); break;
case INSTR_TXA: SET_NZ(LET(A,R(X))); break;
case INSTR_TYA: SET_NZ(LET(A,R(Y))); break;
case INSTR_TSX: SET_NZ(LET(X,R(S))); break;
case INSTR_TXS: SET_NZ(LET(S,R(X))); break;
/* load */
case INSTR_LDA: SET_NZ(LET(A,OPERAND)); break;
case INSTR_LDX: SET_NZ(LET(X,OPERAND)); break;
case INSTR_LDY: SET_NZ(LET(Y,OPERAND)); break;
/* store */
case INSTR_STA: STORE(R(A),LOPERAND); break;
case INSTR_STX: STORE(R(X),LOPERAND); break;
case INSTR_STY: STORE(R(Y),LOPERAND); break;
/* stack */
case INSTR_PHA: PUSH(R(A)); break;
case INSTR_PHP: PUSH(arch_flags_encode(cpu, bb)); break;
case INSTR_PLA: SET_NZ(LET(A,PULL)); break;
case INSTR_PLP: arch_flags_decode(cpu, PULL, bb); break;
/* shift */
case INSTR_ASL: SET_NZ(SHIFTROTATE(LOPERAND, LOPERAND, true, false)); break;
case INSTR_LSR: SET_NZ(SHIFTROTATE(LOPERAND, LOPERAND, false, false)); break;
case INSTR_ROL: SET_NZ(SHIFTROTATE(LOPERAND, LOPERAND, true, true)); break;
case INSTR_ROR: SET_NZ(SHIFTROTATE(LOPERAND, LOPERAND, false, true)); break;
/* bit logic */
case INSTR_AND: SET_NZ(LET(A,AND(R(A),OPERAND))); break;
case INSTR_ORA: SET_NZ(LET(A,OR(R(A),OPERAND))); break;
case INSTR_EOR: SET_NZ(LET(A,XOR(R(A),OPERAND))); break;
case INSTR_BIT: SET_NZ(OPERAND); break;
/* arithmetic */
case INSTR_ADC: SET_NZ(ADC(ptr_A, ptr_A, OPERAND, true, false)); break;
case INSTR_SBC: SET_NZ(ADC(ptr_A, ptr_A, COM(OPERAND), true, false)); break;
case INSTR_CMP: SET_NZ(ADC(NULL, ptr_A, COM(OPERAND), false, true)); break;
case INSTR_CPX: SET_NZ(ADC(NULL, ptr_X, COM(OPERAND), false, true)); break;
case INSTR_CPY: SET_NZ(ADC(NULL, ptr_Y, COM(OPERAND), false, true)); break;
/* increment/decrement */
case INSTR_INX: SET_NZ(LET(X,INC(R(X)))); break;
case INSTR_INY: SET_NZ(LET(Y,INC(R(Y)))); break;
case INSTR_DEX: SET_NZ(LET(X,DEC(R(X)))); break;
case INSTR_DEY: SET_NZ(LET(Y,DEC(R(Y)))); break;
case INSTR_INC: SET_NZ(STORE(INC(OPERAND),LOPERAND)); break;
case INSTR_DEC: SET_NZ(STORE(DEC(OPERAND),LOPERAND)); break;
/* control flow */
case INSTR_JMP:
if (get_addmode(opcode) == ADDMODE_IND) {
Value *v = LOAD_RAM16(CONST32(OPERAND_16));
new StoreInst(v, cpu->ptr_PC, bb);
}
break;
case INSTR_JSR: PUSH16(pc+2); break;
case INSTR_RTS: STORE(ADD(PULL16, CONST16(1)), cpu->ptr_PC); break;
/* branch */
case INSTR_BEQ:
case INSTR_BNE:
case INSTR_BCS:
case INSTR_BCC:
case INSTR_BMI:
case INSTR_BPL:
case INSTR_BVS:
case INSTR_BVC:
break;
/* other */
case INSTR_NOP: break;
case INSTR_BRK: arch_6502_trap(cpu, pc, bb); break;
case INSTR_RTI: arch_6502_trap(cpu, pc, bb); break;
case INSTR_XXX: arch_6502_trap(cpu, pc, bb); break;
}
return get_length(get_addmode(opcode));
}
开发者ID:wilsonsamm,项目名称:libcpu,代码行数:98,代码来源:6502_translate.cpp
示例4: countStaticBitdemand
int countStaticBitdemand(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
PSY_OUT_ELEMENT *psyOutElement,
int channels)
{
int statBits=0;
int ch;
COUNT_sub_start("countStaticBitdemand");
MOVE(1); /* counting previous operation */
BRANCH(2);
switch(channels) {
case 1:
ADD(1);
statBits+=SI_ID_BITS+SI_SCE_BITS+SI_ICS_BITS;
PTR_INIT(1); FUNC(2); ADD(1);
statBits+=countTnsBits(&(psyOutChannel[0].tnsInfo),
psyOutChannel[0].windowSequence);
BRANCH(2);
switch(psyOutChannel[0].windowSequence){
case LONG_WINDOW:
case START_WINDOW:
case STOP_WINDOW:
ADD(1);
statBits+=SI_ICS_INFO_BITS_LONG;
break;
case SHORT_WINDOW:
ADD(1);
statBits+=SI_ICS_INFO_BITS_SHORT;
break;
}
break;
case 2:
ADD(1);
statBits+=SI_ID_BITS+SI_CPE_BITS+2*SI_ICS_BITS;
ADD(1);
statBits+=SI_CPE_MS_MASK_BITS;
INDIRECT(1); PTR_INIT(1); FUNC(4); ADD(1);
statBits+=countMsMaskBits(psyOutChannel[0].sfbCnt,
psyOutChannel[0].sfbPerGroup,
psyOutChannel[0].maxSfbPerGroup,
&psyOutElement->toolsInfo);
PTR_INIT(1); /* psyOutChannel[] */
switch(psyOutChannel[0].windowSequence) {
case LONG_WINDOW:
case START_WINDOW:
case STOP_WINDOW:
ADD(1);
statBits+=SI_ICS_INFO_BITS_LONG;
break;
case SHORT_WINDOW:
ADD(1);
statBits+=SI_ICS_INFO_BITS_SHORT;
break;
}
PTR_INIT(1); /* psyOutChannel[ch] */
LOOP(1);
for(ch=0;ch<2;ch++) {
PTR_INIT(1); FUNC(2); ADD(1);
statBits+=countTnsBits(&(psyOutChannel[ch].tnsInfo),
psyOutChannel[ch].windowSequence);
}
break;
}
COUNT_sub_end();
return statBits;
}
开发者ID:KISSMonX,项目名称:aacplusenc,代码行数:89,代码来源:stat_bits.c
示例5: test_md_reject_cache
static void
test_md_reject_cache(void *arg)
{
(void) arg;
microdesc_cache_t *mc = NULL ;
smartlist_t *added = NULL, *wanted = smartlist_new();
or_options_t *options = get_options_mutable();
char buf[DIGEST256_LEN];
tor_free(options->DataDirectory);
options->DataDirectory = tor_strdup(get_fname("md_datadir_test_rej"));
mock_rgsbd_val_a = tor_malloc_zero(sizeof(routerstatus_t));
mock_rgsbd_val_b = tor_malloc_zero(sizeof(routerstatus_t));
mock_ns_val = tor_malloc_zero(sizeof(networkstatus_t));
mock_ns_val->valid_after = time(NULL) - 86400;
mock_ns_val->valid_until = time(NULL) + 86400;
mock_ns_val->flavor = FLAV_MICRODESC;
#ifdef _WIN32
tt_int_op(0, OP_EQ, mkdir(options->DataDirectory));
#else
tt_int_op(0, OP_EQ, mkdir(options->DataDirectory, 0700));
#endif
MOCK(router_get_mutable_consensus_status_by_descriptor_digest,
mock_router_get_status_by_digest);
MOCK(networkstatus_get_latest_consensus_by_flavor, mock_ns_get_by_flavor);
mc = get_microdesc_cache();
#define ADD(hex) \
do { \
tt_int_op(0,OP_EQ,base16_decode(buf,sizeof(buf),hex,strlen(hex))); \
smartlist_add(wanted, tor_memdup(buf, DIGEST256_LEN)); \
} while (0)
/* invalid,0 */
ADD("5d76bf1c6614e885614a1e0ad074e1ab4ea14655ebeefb1736a71b5ed8a15a51");
/* invalid,2 */
ADD("20d1576c5ab11bbcff0dedb1db4a3cfcc8bc8dd839d8cbfef92d00a1a7d7b294");
/* valid, 6 */
ADD("53f740bd222ab37f19f604b1d3759aa65eff1fbce9ac254bd0fa50d4af9b1bae");
/* valid, 8 */
ADD("a0a155562d8093d8fd0feb7b93b7226e17f056c2142aab7a4ea8c5867a0376d5");
added = microdescs_add_to_cache(mc, MD_PARSE_TEST_DATA, NULL,
SAVED_NOWHERE, 0, time(NULL), wanted);
tt_int_op(smartlist_len(added), OP_EQ, 2);
tt_int_op(mock_rgsbd_called, OP_EQ, 2);
tt_int_op(mock_rgsbd_val_a->dl_status.n_download_failures, OP_EQ, 255);
tt_int_op(mock_rgsbd_val_b->dl_status.n_download_failures, OP_EQ, 255);
done:
UNMOCK(networkstatus_get_latest_consensus_by_flavor);
UNMOCK(router_get_mutable_consensus_status_by_descriptor_digest);
tor_free(options->DataDirectory);
microdesc_free_all();
smartlist_free(added);
SMARTLIST_FOREACH(wanted, char *, cp, tor_free(cp));
smartlist_free(wanted);
tor_free(mock_rgsbd_val_a);
tor_free(mock_rgsbd_val_b);
tor_free(mock_ns_val);
}
开发者ID:Zensin,项目名称:tor,代码行数:65,代码来源:test_microdesc.c
示例6: main
int main()
{
int m,n,x,b;
int i;
char a[100000];
long long int b0[100000];
long long int b1[100000];
long long int b2[100000];
long long int b3[100000];
long long int b4[100000];
long long int b5[100000];
long long int b6[100000];
long long int b7[100000];
long long int b8[100000];
long long int b9[100000];
scanf("%d%d%s",&m,&n,a);
i=0;
m--;
b=a[i] - '0';
b0[0]=ADD(0,b,0);
b1[0]=ADD(0,b,1);
b2[0]=ADD(0,b,2);
b3[0]=ADD(0,b,3);
b4[0]=ADD(0,b,4);
b5[0]=ADD(0,b,5);
b6[0]=ADD(0,b,6);
b7[0]=ADD(0,b,7);
b8[0]=ADD(0,b,8);
b9[0]=ADD(0,b,9);
i++;
while(m--)
{
b=a[i]-'0';
b0[i]=ADD(b0[i-1],b,0);
b1[i]=ADD(b1[i-1],b,1);
b2[i]=ADD(b2[i-1],b,2);
b3[i]=ADD(b3[i-1],b,3);
b4[i]=ADD(b4[i-1],b,4);
b5[i]=ADD(b5[i-1],b,5);
b6[i]=ADD(b6[i-1],b,6);
b7[i]=ADD(b7[i-1],b,7);
b8[i]=ADD(b8[i-1],b,8);
b9[i]=ADD(b9[i-1],b,9);
i++;
}
while(n--)
{
scanf("%d",&x);
x--;
i=a[x]-'0';
switch(i)
{
case 0:printf("%lld\n",b0[x]);break;
case 1:printf("%lld\n",b1[x]);break;
case 2:printf("%lld\n",b2[x]);break;
case 3:printf("%lld\n",b3[x]);break;
case 4:printf("%lld\n",b4[x]);break;
case 5:printf("%lld\n",b5[x]);break;
case 6:printf("%lld\n",b6[x]);break;
case 7:printf("%lld\n",b7[x]);break;
case 8:printf("%lld\n",b8[x]);break;
case 9:printf("%lld\n",b9[x]);break;
}
}
return 0;
}
开发者ID:rajeevs1992,项目名称:myCodes,代码行数:66,代码来源:adig.c
示例7: foo
void foo()
{
int add = ADD(505);
int sub = SUB(525);
}
开发者ID:pombreda,项目名称:git-git.code.sf.net-p-libdwarf-regressiontests,代码行数:5,代码来源:test.cpp
示例8: remote_ui_raw_line
static void remote_ui_raw_line(UI *ui, Integer grid, Integer row,
Integer startcol, Integer endcol,
Integer clearcol, Integer clearattr,
Boolean wrap, const schar_T *chunk,
const sattr_T *attrs)
{
UIData *data = ui->data;
if (ui->ui_ext[kUILinegrid]) {
Array args = ARRAY_DICT_INIT;
ADD(args, INTEGER_OBJ(grid));
ADD(args, INTEGER_OBJ(row));
ADD(args, INTEGER_OBJ(startcol));
Array cells = ARRAY_DICT_INIT;
int repeat = 0;
size_t ncells = (size_t)(endcol-startcol);
int last_hl = -1;
for (size_t i = 0; i < ncells; i++) {
repeat++;
if (i == ncells-1 || attrs[i] != attrs[i+1]
|| STRCMP(chunk[i], chunk[i+1])) {
Array cell = ARRAY_DICT_INIT;
ADD(cell, STRING_OBJ(cstr_to_string((const char *)chunk[i])));
if (attrs[i] != last_hl || repeat > 1) {
ADD(cell, INTEGER_OBJ(attrs[i]));
last_hl = attrs[i];
}
if (repeat > 1) {
ADD(cell, INTEGER_OBJ(repeat));
}
ADD(cells, ARRAY_OBJ(cell));
repeat = 0;
}
}
if (endcol < clearcol) {
Array cell = ARRAY_DICT_INIT;
ADD(cell, STRING_OBJ(cstr_to_string(" ")));
ADD(cell, INTEGER_OBJ(clearattr));
ADD(cell, INTEGER_OBJ(clearcol-endcol));
ADD(cells, ARRAY_OBJ(cell));
}
ADD(args, ARRAY_OBJ(cells));
push_call(ui, "grid_line", args);
} else {
for (int i = 0; i < endcol-startcol; i++) {
remote_ui_cursor_goto(ui, row, startcol+i);
remote_ui_highlight_set(ui, attrs[i]);
remote_ui_put(ui, (const char *)chunk[i]);
if (utf_ambiguous_width(utf_ptr2char(chunk[i]))) {
data->client_col = -1; // force cursor update
}
}
if (endcol < clearcol) {
remote_ui_cursor_goto(ui, row, endcol);
remote_ui_highlight_set(ui, (int)clearattr);
// legacy eol_clear was only ever used with cleared attributes
// so be on the safe side
if (clearattr == 0 && clearcol == Columns) {
Array args = ARRAY_DICT_INIT;
push_call(ui, "eol_clear", args);
} else {
for (Integer c = endcol; c < clearcol; c++) {
remote_ui_put(ui, " ");
}
}
}
}
}
开发者ID:roxma,项目名称:neovim,代码行数:68,代码来源:ui.c
示例9: decodeInstruction
/*
typedef struct
{
char mnemonic[10];
char op1_type; // reconoce una r o un numeral
char op2_type;
char op3_type;
uint32_t op1_value; guarda el numero del registro o el valor del inmediato
uint32_t op2_value;
uint32_t op3_value;
}instruction_t;
*/
void decodeInstruction(instruction_t instruction,uint32_t* Rd, uint32_t* Rm, uint32_t* Rr, bool flg[], int*pc, uint8_t pila)// recibe el retorno de getInstruccion
{ uint32_t cero=0;
if( strcmp(instruction.mnemonic,"PUSH") == 0 )
{
} else
if( strcmp(instruction.mnemonic,"ADD") == 0)
{
if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='R'))
{
ADD(Rd[instruction.op1_value],Rm[instruction.op2_value],Rr[instruction.op3_value],flg,&pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='#'))
ADD(&Rd[instruction.op1_value],&Rm[instruction.op2_value],&instruction.op3_value,flg, &pc);
}else
if( strcmp(instruction.mnemonic,"AND") == 0)
{
if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='R'))
{
AND(&Rd[instruction.op1_value],&Rm[instruction.op2_value],&Rr[instruction.op3_value],&flg[0], &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='#'))
AND(&Rd[instruction.op1_value],&Rm[instruction.op2_value],instruction.op3_value,&flg[0], &pc);
} else
if( strcmp(instruction.mnemonic,"ASRS") == 0 )
{
if((instruction.op1_type=='R')&&(instruction.op2_type=='R'))
{
ASRS(&Rd[instruction.op1_value],&Rm[instruction.op2_value], &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='#'))
ASRS(&Rd[instruction.op1_value],instruction.op2_value, &pc);
} else
if( strcmp(instruction.mnemonic,"BIC") == 0 )
{
if((instruction.op1_type=='R')&&(instruction.op2_type=='R'))
{
BIC(&Rd[instruction.op1_value],&Rm[instruction.op2_value], &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='#'))
BIC(&Rd[instruction.op1_value],instruction.op2_value, &pc);
} else
if( strcmp(instruction.mnemonic,"CMN") == 0)
{
if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='R'))
{
CMN(&Rd[instruction.op1_value],&Rm[instruction.op2_value],&Rr[instruction.op3_value], &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='#'))
CMN(&Rd[instruction.op1_value],&Rm[instruction.op2_value],instruction.op3_value, &pc);
} else
if( strcmp(instruction.mnemonic,"CMP") == 0 )
{
if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='R'))
{
CMP(&Rd[instruction.op1_value],&Rm[instruction.op2_value],&Rr[instruction.op3_value], &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='#'))
CMP(&Rd[instruction.op1_value],&Rm[instruction.op2_value],instruction.op3_value, &pc);
} else
if( strcmp(instruction.mnemonic,"EOR") == 0)
{if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='R'))
{
EOR(&Rd[instruction.op1_value],&Rm[instruction.op2_value],&Rr[instruction.op3_value],&flg[0], &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='#'))
EOR(&Rd[instruction.op1_value],&Rm[instruction.op2_value],instruction.op3_value,&flg[0], &pc);
} else
if( strcmp(instruction.mnemonic,"LSL") == 0 )
{if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='R'))
{
LSL(&Rd[instruction.op1_value],&Rm[instruction.op2_value],instruction.op3_value, &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='#'))
LSL(&Rd[instruction.op1_value],&Rm[instruction.op2_value],cero, &pc);
} else
if( strcmp(instruction.mnemonic,"LSR") == 0)
{
{if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='R'))
{
LSR(&Rd[instruction.op1_value],&Rm[instruction.op2_value],cero, &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='R')&&(instruction.op3_type=='#'))
LSR(&Rd[instruction.op1_value],&Rm[instruction.op2_value],instruction.op3_value, &pc);
}
} else
if( strcmp(instruction.mnemonic,"MOV") == 0)
{
if((instruction.op1_type=='R')&&(instruction.op2_type=='R'))
{
MOV(&Rd[instruction.op1_value],&Rm[instruction.op2_value],&flg[0], &pc);
}else if((instruction.op1_type=='R')&&(instruction.op2_type=='#'))
MOV(&Rd[instruction.op1_value],instruction.op2_value,&flg[0], &pc);
//.........这里部分代码省略.........
开发者ID:Luisa95,项目名称:Proyecto1,代码行数:101,代码来源:decoder.c
示例10: makeWindowsCommandLine
char *
makeWindowsCommandLine (const char *const *arguments) {
const char backslash = '\\';
const char quote = '"';
char *buffer = NULL;
int size = 0;
int length = 0;
#define ADD(c) if (!addWindowsCommandLineCharacter(&buffer, &size, &length, (c))) goto error
while (*arguments) {
const char *character = *arguments;
int backslashCount = 0;
int needQuotes = 0;
int start = length;
while (*character) {
if (*character == backslash) {
++backslashCount;
} else {
if (*character == quote) {
needQuotes = 1;
backslashCount = (backslashCount * 2) + 1;
} else if ((*character == ' ') || (*character == '\t')) {
needQuotes = 1;
}
while (backslashCount > 0) {
ADD(backslash);
--backslashCount;
}
ADD(*character);
}
++character;
}
if (needQuotes) backslashCount *= 2;
while (backslashCount > 0) {
ADD(backslash);
--backslashCount;
}
if (needQuotes) {
ADD(quote);
ADD(quote);
memmove(&buffer[start+1], &buffer[start], length-start-1);
buffer[start] = quote;
}
ADD(' ');
++arguments;
}
#undef ADD
buffer[length-1] = 0;
{
char *line = realloc(buffer, length);
if (line) return line;
logSystemError("realloc");
}
error:
if (buffer) free(buffer);
return NULL;
}
开发者ID:brltty,项目名称:brltty,代码行数:66,代码来源:system_windows.c
示例11: remote_ui_grid_scroll
static void remote_ui_grid_scroll(UI *ui, Integer grid, Integer top,
Integer bot, Integer left, Integer right,
Integer rows, Integer cols)
{
if (ui->ui_ext[kUILinegrid]) {
Array args = ARRAY_DICT_INIT;
ADD(args, INTEGER_OBJ(grid));
ADD(args, INTEGER_OBJ(top));
ADD(args, INTEGER_OBJ(bot));
ADD(args, INTEGER_OBJ(left));
ADD(args, INTEGER_OBJ(right));
ADD(args, INTEGER_OBJ(rows));
ADD(args, INTEGER_OBJ(cols));
push_call(ui, "grid_scroll", args);
} else {
Array args = ARRAY_DICT_INIT;
ADD(args, INTEGER_OBJ(top));
ADD(args, INTEGER_OBJ(bot-1));
ADD(args, INTEGER_OBJ(left));
ADD(args, INTEGER_OBJ(right-1));
push_call(ui, "set_scroll_region", args);
args = (Array)ARRAY_DICT_INIT;
ADD(args, INTEGER_OBJ(rows));
push_call(ui, "scroll", args);
// some clients have "clear" being affected by scroll region,
// so reset it.
args = (Array)ARRAY_DICT_INIT;
ADD(args, INTEGER_OBJ(0));
ADD(args, INTEGER_OBJ(ui->height-1));
ADD(args, INTEGER_OBJ(0));
ADD(args, INTEGER_OBJ(ui->width-1));
push_call(ui, "set_scroll_region", args);
}
}
开发者ID:roxma,项目名称:neovim,代码行数:36,代码来源:ui.c
示例12: bp_parseTable
bp_Table * bp_parseTable(bp_Context * context, xmlNodePtr node) {
bp_Table * result = malloc(sizeof(bp_Table));
bp_Node * const parent = &result->node;
xmlAttrPtr attr;
xmlNodePtr child, grand;
bp_pushBlockBorder(context);
bp_pushBlockInside(context);
bp_pushInline(context);
bp_initNode(&result->node, BPE_TABLE);
result->_float = bp_defaultFloatAttributes;
result->blockOutside = *(context->blockOutside);
result->caption = NULL;
result->nCols = 0;
result->nRows = 0;
for (attr = node->properties; attr; attr = attr->next) {
bp_parseFloatAttribute(context, &result->_float, attr);
bp_parseBlockOutsideAttribute(context, &result->blockOutside, attr);
bp_parseBlockBorderAttribute(context, context->blockBorder, attr);
bp_parseBlockInsideAttribute(context, context->blockInside, attr);
bp_parseInlineAttribute(context, context->inlineAttr, attr);
}
result->blockBorder = *(context->blockBorder); // shared with children
for (child = node->children; child; child = child->next) {
switch(ELEM(child)) {
case BPE_TR: result->nRows++; break;
case BPE_TC: result->nCols++; break;
case BPE_CAPTION:
result->caption = bp_parseCaption(context, child);
default: DISCARD(child);
}
}
if (result->nRows) {
int * colHeights = NULL;
int col, row = 0;
result->nCols = 0;
for (child = node->children; child; child = child->next) {
if(ELEM(child) == BPE_TR) {
bp_pushBlockBorder(context);
bp_pushBlockInside(context);
bp_pushInline(context);
for (attr = child->properties; attr; attr = attr->next) {
bp_parseBlockBorderAttribute(context, context->blockBorder, attr);
bp_parseBlockInsideAttribute(context, context->blockInside, attr);
bp_parseInlineAttribute(context, context->inlineAttr, attr);
}
col = 0;
for (grand = child->children; grand; grand = grand->next) {
while ((col < result->nCols) && (colHeights[col] >= row)) col++;
if(ELEM(grand) == BPE_TD) {
bp_Cell * cell = bp_parseCell(context, grand, row, col);
ADD(cell);
if (cell->endCol >= result->nCols) {
result->nCols = cell->endCol + 1;
colHeights = realloc(colHeights, result->nCols * sizeof(int));
}
for (col=cell->startCol; col <= cell->endCol; col++) {
colHeights[col] = cell->endRow;
}
} else {
DISCARD(grand);
}
}
bp_popBlockBorder(context);
bp_popBlockInside(context);
bp_popInline(context);
row++;
}
}
if(colHeights) free(colHeights);
} else if (result->nCols) {
int * rowWidths = NULL;
int col = 0, row;
result->nRows = 0;
for (child = node->children; child; child = child->next) {
if(ELEM(child) == BPE_TC) {
bp_pushBlockBorder(context);
bp_pushBlockInside(context);
bp_pushInline(context);
for (attr = child->properties; attr; attr = attr->next) {
bp_parseBlockBorderAttribute(context, context->blockBorder, attr);
bp_parseBlockInsideAttribute(context, context->blockInside, attr);
bp_parseInlineAttribute(context, context->inlineAttr, attr);
}
//.........这里部分代码省略.........
开发者ID:xaphier,项目名称:Eternal-Lands,代码行数:101,代码来源:parser.c
示例13: bp_parsePage
bp_Page * bp_parsePage(bp_Context * context, xmlNodePtr node) {
bp_Page * result = malloc(sizeof(bp_Page));
bp_Node * const parent = &result->node;
xmlAttrPtr attr;
xmlNodePtr child;
bp_pushBlockOutside(context);
bp_pushBlockBorder(context);
bp_pushBlockInside(context);
bp_pushInline(context);
bp_initNode(&result->node, BPE_PAGE);
result->title = NULL;
for (attr = node->properties; attr; attr = attr->next) {
bp_parseBlockOutsideAttribute(context, context->blockOutside, attr);
bp_parseBlockBorderAttribute(context, context->blockBorder, attr);
bp_parseBlockInsideAttribute(context, context->blockInside, attr);
bp_parseInlineAttribute(context, context->inlineAttr, attr);
}
for (child = node->children; child; child = child->next) {
switch(ELEM(child)) {
case BPE_TITLE:
if (!result->title) {
xmlNodePtr grandchild = child->children;
if (ELEM(grandchild) == BPE_TEXT) {
int len = strlen(grandchild->content);
char * title_string = malloc(++len);
memcpy(title_string, grandchild->content, len);
result->title = title_string;
} else {
DISCARD(grandchild);
}
} else {
DISCARD(child);
}
break;
case BPE_REF:
bp_parseNavRef(context, child, result);
break;
case BPE_BLOCK:
ADD(bp_parseBlock(context, child));
break;
case BPE_IMAGE:
ADD(bp_parseImage(context, child));
break;
case BPE_TABLE:
ADD(bp_parseTable(context, child));
break;
case BPE_LABEL:
ADD(bp_parseLabel(context, child));
break;
default:
DISCARD(child);
}
}
bp_popBlockOutside(context);
bp_popBlockBorder(context);
bp_popBlockInside(context);
bp_popInline(context);
return result;
}
开发者ID:xaphier,项目名称:Eternal-Lands,代码行数:65,代码来源:parser.c
示例14: bp_parseBook
bp_Book * bp_parseBook(bp_Context * context, xmlNodePtr node) {
bp_Book * result = malloc(sizeof(bp_Book));
bp_Node * const parent = &result->node;
bp_Node * page;
xmlAttrPtr attr;
xmlNodePtr child;
bp_Page ** pages;
st_data * fontSym;
context->blockOutside = (void *) &bp_defaultBlockOutsideAttributes;
context->blockBorder = (void *) &bp_defaultBlockBorderAttributes;
context->blockInside = (void *) &bp_defaultBlockInsideAttributes;
context->inlineAttr = (void *) &bp_defaultInlineAttributes;
bp_pushBlockOutside(context);
bp_pushBlockBorder(context);
bp_pushBlockInside(context);
bp_pushInline(context);
bp_initNode(&result->node, BPE_BOOK);
result->width = 528;
result->height = 320;
result->background = load_texture_cache_deferred("textures/book1.bmp",0);
fontSym = st_lookup (bp_fonts, "default");
if (fontSym != NULL) {
result->fontFace = fontSym->num;
} else {
LOG_ERROR_OLD("FATAL: default font missing in font symbol table\n");
exit(1);
}
result->layout = BPL_BOOK;
result->blockProgression = BPD_DOWN;
result->inlineProgression = BPD_RIGHT;
result->pages = NULL;
result->nPages = 0;
for (attr = node->properties; attr; attr = attr->next) {
bp_parseBlockOutsideAttribute(context, context->blockOutside, attr);
bp_parseBlockBorderAttribute(context, context->blockBorder, attr);
bp_parseBlockInsideAttribute(context, context->blockInside, attr);
bp_parseInlineAttribute(context, context->inlineAttr, attr);
}
for (child = node->children; child; child = child->next) {
switch(ELEM(child)) {
case BPE_PAGE:
result->nPages++;
ADD(bp_parsePage(context, child));
break;
default:
DISCARD(child);
}
}
bp_popBlockOutside(context);
bp_popBlockBorder(context);
bp_popBlockInside(context);
bp_popInline(context);
/* create page index */
pages = calloc(result->nPages, sizeof(bp_Page *));
result->pages = pages;
for (page = parent->children; page; page = page->next) {
*pages++ = (bp_Page *) page;
}
return result;
}
开发者ID:xaphier,项目名称:Eternal-Lands,代码行数:68,代码来源:parser.c
示例15: dct32
//.........这里部分代码省略.........
BF0( 6, 25, COS0_6 , 1);
BF0( 9, 22, COS0_9 , 1);
/* pass 2 */
BF( 6, 9, COS1_6 , 2);
BF(22, 25,-COS1_6 , 2);
/* pass 3 */
BF( 1, 6, COS2_1 , 1);
BF( 9, 14,-COS2_1 , 1);
BF(17, 22, COS2_1 , 1);
BF(25, 30,-COS2_1 , 1);
/* pass 1 */
BF0( 2, 29, COS0_2 , 1);
BF0(13, 18, COS0_13, 3);
/* pass 2 */
BF( 2, 13, COS1_2 , 1);
BF(18, 29,-COS1_2 , 1);
/* pass 1 */
BF0( 5, 26, COS0_5 , 1);
BF0(10, 21, COS0_10, 1);
/* pass 2 */
BF( 5, 10, COS1_5 , 2);
BF(21, 26,-COS1_5 , 2);
/* pass 3 */
BF( 2, 5, COS2_2 , 1);
BF(10, 13,-COS2_2 , 1);
BF(18, 21, COS2_2 , 1);
BF(26, 29,-COS2_2 , 1);
/* pass 4 */
BF( 1, 2, COS3_1 , 2);
BF( 5, 6,-COS3_1 , 2);
BF( 9, 10, COS3_1 , 2);
BF(13, 14,-COS3_1 , 2);
BF(17, 18, COS3_1 , 2);
BF(21, 22,-COS3_1 , 2);
BF(25, 26, COS3_1 , 2);
BF(29, 30,-COS3_1 , 2);
/* pass 5 */
BF1( 0, 1, 2, 3);
BF2( 4, 5, 6, 7);
BF1( 8, 9, 10, 11);
BF2(12, 13, 14, 15);
BF1(16, 17, 18, 19);
BF2(20, 21, 22, 23);
BF1(24, 25, 26, 27);
BF2(28, 29, 30, 31);
/* pass 6 */
ADD( 8, 12);
ADD(12, 10);
ADD(10, 14);
ADD(14, 9);
ADD( 9, 13);
ADD(13, 11);
ADD(11, 15);
out[ 0] = val0;
out[16] = val1;
out[ 8] = val2;
out[24] = val3;
out[ 4] = val4;
out[20] = val5;
out[12] = val6;
out[28] = val7;
out[ 2] = val8;
out[18] = val9;
out[10] = val10;
out[26] = val11;
out[ 6] = val12;
out[22] = val13;
out[14] = val14;
out[30] = val15;
ADD(24, 28);
ADD(28, 26);
ADD(26, 30);
ADD(30, 25);
ADD(25, 29);
ADD(29, 27);
ADD(27, 31);
out[ 1] = val16 + val24;
out[17] = val17 + val25;
out[ 9] = val18 + val26;
out[25] = val19 + val27;
out[ 5] = val20 + val28;
out[21] = val21 + val29;
out[13] = val22 + val30;
out[29] = val23 + val31;
out[ 3] = val24 + val20;
out[19] = val25 + val21;
out[11] = val26 + val22;
out[27] = val27 + val23;
out[ 7] = val28 + val18;
out[23] = val29 + val19;
out[15] = val30 + val17;
out[31] = val31;
}
开发者ID:0day-ci,项目名称:FFmpeg,代码行数:101,代码来源:dct32_template.c
示例16: ADD
RETf ADD( const __m128 x, const __m128 y, const __m128 z ) {
return ADD(ADD(x,y),z); }
开发者ID:Claycau,项目名称:bigbrother,代码行数:2,代码来源:sse.hpp
示例17: mii_phy_add_media
/*
* Initialize generic PHY media based on BMSR, called when a PHY is
* attached. We expect to be set up to print a comma-separated list
* of media names. Does not print a newline.
*/
void
mii_phy_add_media(struct mii_softc *sc)
{
struct mii_data *mii = sc->mii_pdata;
const char *sep = "";
int fdx = 0;
if ((sc->mii_capabilities & BMSR_MEDIAMASK) == 0 &&
(sc->mii_extcapabilities & EXTSR_MEDIAMASK) == 0) {
printf("no media present");
return;
}
/*
* Set the autonegotiation timer for 10/100 media. Gigabit media is
* handled below.
*/
sc->mii_anegticks = MII_ANEGTICKS;
#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL)
#define PRINT(s) printf("%s%s", sep, s); sep = ", "
if ((sc->mii_flags & MIIF_NOISOLATE) == 0)
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
MII_MEDIA_NONE);
/*
* There are different interpretations for the bits in
* HomePNA PHYs. And there is really only one media type
* that is supported.
*/
if ((sc->mii_flags & MIIF_IS_HPNA) != 0) {
if ((sc->mii_capabilities & BMSR_10THDX) != 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_HPNA_1, 0,
sc->mii_inst), MII_MEDIA_10_T);
PRINT("HomePNA1");
}
return;
}
if ((sc->mii_capabilities & BMSR_10THDX) != 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, 0, sc->mii_inst),
MII_MEDIA_10_T);
PRINT("10baseT");
}
if ((sc->mii_capabilities & BMSR_10TFDX) != 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, IFM_FDX, sc->mii_inst),
MII_MEDIA_10_T_FDX);
PRINT("10baseT-FDX");
if ((sc->mii_flags & MIIF_DOPAUSE) != 0 &&
(sc->mii_flags & MIIF_NOMANPAUSE) == 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T,
IFM_FDX | IFM_FLOW, sc->mii_inst),
MII_MEDIA_10_T_FDX);
PRINT("10baseT-FDX-flow");
}
fdx = 1;
}
if ((sc->mii_capabilities & BMSR_100TXHDX) != 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, 0, sc->mii_inst),
MII_MEDIA_100_TX);
PRINT("100baseTX");
}
if ((sc->mii_capabilities & BMSR_100TXFDX) != 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_FDX, sc->mii_inst),
MII_MEDIA_100_TX_FDX);
PRINT("100baseTX-FDX");
if ((sc->mii_flags & MIIF_DOPAUSE) != 0 &&
(sc->mii_flags & MIIF_NOMANPAUSE) == 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX,
IFM_FDX | IFM_FLOW, sc->mii_inst),
MII_MEDIA_100_TX_FDX);
PRINT("100baseTX-FDX-flow");
}
fdx = 1;
}
if ((sc->mii_capabilities & BMSR_100T4) != 0) {
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_T4, 0, sc->mii_inst),
MII_MEDIA_100_T4);
PRINT("100baseT4");
}
if ((sc->mii_extcapabilities & EXTSR_MEDIAMASK) != 0) {
/*
* XXX Right now only handle 1000SX and 1000TX. Need
* XXX to handle 1000LX and 1000CX somehow.
*/
if ((sc->mii_extcapabilities & EXTSR_1000XHDX) != 0) {
sc->mii_anegticks = MII_ANEGTICKS_GIGE;
sc->mii_flags |= MIIF_IS_1000X;
ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_SX, 0,
sc->mii_inst), MII_MEDIA_1000_X);
PRINT("1000baseSX");
}
if ((sc->mii_extcapabilities & EXTSR_1000XFDX) != 0) {
//.........这里部分代码省略.........
开发者ID:BlueFireworks,项目名称:rtems-libbsd,代码行数:101,代码来源:mii_physubr.c
示例18: switch
void Jit::Comp_FPULS(u32 op)
{
CONDITIONAL_DISABLE;
s32 offset = (s16)(op & 0xFFFF);
int ft = _FT;
int rs = _RS;
// u32 addr = R(rs) + offset;
// logBlocks = 1;
bool doCheck = false;
switch(op >> 26)
{
case 49: //FI(ft) = Memory::Read_U32(addr); break; //lwc1
fpr.MapReg(ft, MAP_NOINIT | MAP_DIRTY);
if (gpr.IsImm(rs)) {
u32 addr = (offset + gpr.GetImm(rs)) & 0x3FFFFFFF;
MOVI2R(R0, addr + (u32)Memory::base);
} else {
gpr.MapReg(rs);
if (g_Config.bFastMemory) {
SetR0ToEffectiveAddress(rs, offset);
} else {
SetCCAndR0ForSafeAddress(rs, offset, R1);
doCheck = true;
}
ADD(R0, R0, R11);
}
#ifdef __ARM_ARCH_7S__
FixupBranch skip;
if (doCheck) {
skip = B_CC(CC_EQ);
}
VLDR(fpr.R(ft), R0, 0);
if (doCheck) {
SetJumpTarget(skip);
SetCC(CC_AL);
}
#else
VLDR(fpr.R(ft), R0, 0);
if (doCheck) {
SetCC(CC_EQ);
MOVI2R(R0, 0);
VMOV(fpr.R(ft), R0);
SetCC(CC_AL);
}
#endif
break;
case 57: //Memory::Write_U32(FI(ft), addr); break; //swc1
fpr.MapReg(ft);
if (gpr.IsImm(rs)) {
u32 addr = (offset + gpr.GetImm(rs)) & 0x3FFFFFFF;
MOVI2R(R0, addr + (u32)Memory::base);
} else {
gpr.MapReg(rs);
if (g_Config.bFastMemory) {
SetR0ToEffectiveAddress(rs, offset);
} else {
SetCCAndR0ForSafeAddress(rs, offset, R1);
doCheck = true;
}
ADD(R0, R0, R11);
}
#ifdef __ARM_ARCH_7S__
FixupBranch skip2;
if (doCheck) {
skip2 = B_CC(CC_EQ);
}
VSTR(fpr.R(ft), R0, 0);
if (doCheck) {
SetJumpTarget(skip2);
SetCC(CC_AL);
}
#else
VSTR(fpr.R(ft), R0, 0);
if (doCheck) {
SetCC(CC_AL);
}
#endif
break;
default:
Comp_Generic(op);
return;
}
}
开发者ID:173210,项目名称:ppsspp,代码行数:86,代码来源:ArmCompFPU.cpp
|
请发表评论