Lines Matching refs:args

62 inline static void add_r(EncoderBase::Operands & args, const R_Opnd & r, Opnd_Size sz, OpndExt ext = OpndExt_None) {
70 args.add(EncoderBase::Operand(reg, ext));
73 inline static void add_m(EncoderBase::Operands & args, const M_Opnd & m, Opnd_Size sz, OpndExt ext = OpndExt_None) {
75 args.add(EncoderBase::Operand(map_size(sz),
80 inline static void add_rm(EncoderBase::Operands & args, const RM_Opnd & rm, Opnd_Size sz, OpndExt ext = OpndExt_None) {
81 rm.is_reg() ? add_r(args, (R_Opnd &)rm, sz, ext) : add_m(args, (M_Opnd &)rm, sz, ext);
84 inline static void add_xmm(EncoderBase::Operands & args, const XMM_Opnd & xmm, bool dbl) {
90 return args.add((RegName)( (dbl ? RegName_XMM0D : RegName_XMM0S) + xmm.get_idx() -
94 inline static void add_fp(EncoderBase::Operands & args, unsigned i, bool dbl) {
95 return args.add((RegName)( (dbl ? RegName_FP0D : RegName_FP0S) + i));
98 inline static void add_imm(EncoderBase::Operands & args, const Imm_Opnd & imm) {
100 args.add(EncoderBase::Operand(map_size(imm.get_size()), imm.get_value(),
111 EncoderBase::Operands args;
112 add_rm(args, rm, sz);
113 return (char*)EncoderBase::encode(stream, Mnemonic_PUSH, args);
117 EncoderBase::Operands args;
119 add_imm(args, imm);
122 add_imm(args, Imm_Opnd(size_32, imm.get_value()));
124 return EncoderBase::encode(stream, Mnemonic_PUSH, args);
128 EncoderBase::Operands args;
129 add_rm(args, rm, sz);
130 return (char*)EncoderBase::encode(stream, Mnemonic_POP, args);
135 EncoderBase::Operands args;
136 add_rm(args, rm, sz);
137 add_r(args, r, sz);
139 args.add(implicitReg);
140 return (char*)EncoderBase::encode(stream, Mnemonic_CMPXCHG, args);
144 EncoderBase::Operands args;
145 add_rm(args, rm, sz);
146 add_r(args, r, sz);
147 return (char*)EncoderBase::encode(stream, Mnemonic_XCHG, args);
152 EncoderBase::Operands args;
153 add_rm(args, rm, sz);
154 return (char*)EncoderBase::encode(stream, Mnemonic_INC, args);
158 EncoderBase::Operands args;
159 add_rm(args, rm, sz);
160 return (char*)EncoderBase::encode(stream, Mnemonic_DEC, args);
164 EncoderBase::Operands args;
165 add_rm(args, rm, sz);
166 return (char*)EncoderBase::encode(stream, Mnemonic_NOT, args);
170 EncoderBase::Operands args;
171 add_rm(args, rm, sz);
172 return (char*)EncoderBase::encode(stream, Mnemonic_NEG, args);
176 EncoderBase::Operands args;
177 return (char*)EncoderBase::encode(stream, Mnemonic_NOP, args);
181 EncoderBase::Operands args;
182 return (char*)EncoderBase::encode(stream, Mnemonic_INT3, args);
187 EncoderBase::Operands args;
188 add_rm(args, rm, sz);
189 add_imm(args, imm);
190 return (char*)EncoderBase::encode(stream, map_alu(opc), args);
194 EncoderBase::Operands args;
195 add_rm(args, m, sz);
196 add_rm(args, r, sz);
197 return (char*)EncoderBase::encode(stream, map_alu(opc), args);
201 EncoderBase::Operands args;
202 add_rm(args, r, sz);
203 add_rm(args, rm, sz);
204 return (char*)EncoderBase::encode(stream, map_alu(opc), args);
209 EncoderBase::Operands args;
210 add_rm(args, rm, sz);
212 add_imm(args, imm);
213 return (char*)EncoderBase::encode(stream, Mnemonic_TEST, args);
217 EncoderBase::Operands args;
218 add_rm(args, rm, sz);
219 add_r(args, r, sz);
220 return (char*)EncoderBase::encode(stream, Mnemonic_TEST, args);
225 EncoderBase::Operands args;
226 add_rm(args, rm, sz);
227 add_imm(args, imm);
228 return (char*)EncoderBase::encode(stream, map_shift(shc), args);
232 EncoderBase::Operands args;
233 add_rm(args, rm, sz);
234 args.add(RegName_CL);
235 return (char*)EncoderBase::encode(stream, map_shift(shc), args);
240 EncoderBase::Operands args;
242 add_rm(args, rm, sz);
243 add_r(args, r, sz);
244 add_imm(args, imm);
245 return (char*)EncoderBase::encode(stream, map_shift(shc), args);
250 EncoderBase::Operands args;
252 add_rm(args, rm, sz);
253 add_r(args, r, sz);
254 args.add(RegName_CL);
255 return (char*)EncoderBase::encode(stream, map_shift(shc), args);
260 EncoderBase::Operands args;
261 args.add(RegName_EDX);
262 args.add(RegName_EAX);
263 add_rm(args, rm, sz);
264 return (char*)EncoderBase::encode(stream, Mnemonic_MUL, args);
268 EncoderBase::Operands args;
269 add_r(args, r, sz);
270 add_rm(args, rm, sz);
271 return (char*)EncoderBase::encode(stream, Mnemonic_IMUL, args);
275 EncoderBase::Operands args;
276 add_r(args, r, sz);
277 add_imm(args, imm);
278 return (char*)EncoderBase::encode(stream, Mnemonic_IMUL, args);
283 EncoderBase::Operands args;
284 add_r(args, r, sz);
285 add_rm(args, rm, sz);
286 add_imm(args, imm);
287 return (char*)EncoderBase::encode(stream, Mnemonic_IMUL, args);
292 EncoderBase::Operands args;
294 add_r(args, rdx_opnd, sz);
295 add_r(args, rax_opnd, sz);
297 add_r(args, edx_opnd, sz);
298 add_r(args, eax_opnd, sz);
300 add_rm(args, rm, sz);
301 return (char*)EncoderBase::encode(stream, Mnemonic_IDIV, args);
306 EncoderBase::Operands args;
307 add_m(args, m, sz);
308 add_r(args, r, sz);
309 return (char*)EncoderBase::encode(stream, Mnemonic_MOV, args);
313 EncoderBase::Operands args;
314 add_r(args, r, sz);
315 add_rm(args, rm, sz);
316 return (char*)EncoderBase::encode(stream, Mnemonic_MOV, args);
320 EncoderBase::Operands args;
321 add_rm(args, rm, sz);
322 add_imm(args, imm);
323 return (char*)EncoderBase::encode(stream, Mnemonic_MOV, args);
327 EncoderBase::Operands args;
328 add_rm(args, rm, size_32);
329 add_xmm(args, xmm, false);
330 return (char*)EncoderBase::encode(stream, Mnemonic_MOVD, args);
334 EncoderBase::Operands args;
335 add_xmm(args, xmm, false);
336 add_rm(args, rm, size_32);
337 return (char*)EncoderBase::encode(stream, Mnemonic_MOVD, args);
341 EncoderBase::Operands args;
342 add_rm(args, rm, size_64);
343 add_xmm(args, xmm, true);
344 return (char*)EncoderBase::encode(stream, Mnemonic_MOVQ, args);
348 EncoderBase::Operands args;
349 add_xmm(args, xmm, true);
350 add_rm(args, rm, size_64);
351 return (char*)EncoderBase::encode(stream, Mnemonic_MOVQ, args);
355 EncoderBase::Operands args;
356 add_r(args, r, n_size);
357 add_rm(args, rm, sz, OpndExt_Signed);
358 return (char*)EncoderBase::encode(stream, Mnemonic_MOVSX, args);
362 EncoderBase::Operands args;
363 add_r(args, r, n_size);
367 add_rm(args, rm, sz, OpndExt_Zero);
368 return (char*)EncoderBase::encode(stream, Mnemonic_MOVZX, args);
373 EncoderBase::Operands args;
374 add_xmm(args, xmm, dbl);
375 add_m(args, mem, dbl ? size_64 : size_32);
376 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_MOVSD : Mnemonic_MOVSS, args);
380 EncoderBase::Operands args;
381 add_m(args, mem, dbl ? size_64 : size_32);
382 add_xmm(args, xmm, dbl);
383 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_MOVSD : Mnemonic_MOVSS, args);
387 EncoderBase::Operands args;
388 add_xmm(args, xmm0, dbl);
389 add_xmm(args, xmm1, dbl);
390 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_MOVSD : Mnemonic_MOVSS, args );
395 EncoderBase::Operands args;
396 add_xmm(args, xmm, dbl);
397 add_m(args, mem, dbl ? size_64 : size_32);
398 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_ADDSD : Mnemonic_ADDSS, args);
402 EncoderBase::Operands args;
403 add_xmm(args, xmm0, dbl);
404 add_xmm(args, xmm1, dbl);
405 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_ADDSD : Mnemonic_ADDSS, args);
409 EncoderBase::Operands args;
410 add_xmm(args, xmm, dbl);
411 add_m(args, mem, dbl ? size_64 : size_32);
412 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_SUBSD : Mnemonic_SUBSS, args);
416 EncoderBase::Operands args;
417 add_xmm(args, xmm0, dbl);
418 add_xmm(args, xmm1, dbl);
419 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_SUBSD : Mnemonic_SUBSS, args);
423 EncoderBase::Operands args;
424 add_xmm(args, xmm, dbl);
425 add_m(args, mem, dbl ? size_64 : size_32);
426 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_MULSD : Mnemonic_MULSS, args);
430 EncoderBase::Operands args;
431 add_xmm(args, xmm0, dbl);
432 add_xmm(args, xmm1, dbl);
433 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_MULSD : Mnemonic_MULSS, args);
437 EncoderBase::Operands args;
438 add_xmm(args, xmm, dbl);
439 add_m(args, mem, dbl ? size_64 : size_32);
440 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_DIVSD : Mnemonic_DIVSS, args);
444 EncoderBase::Operands args;
445 add_xmm(args, xmm0, dbl);
446 add_xmm(args, xmm1, dbl);
447 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_DIVSD : Mnemonic_DIVSS, args);
451 EncoderBase::Operands args;
452 add_xmm(args, xmm0, true);
453 add_xmm(args, xmm1, true);
454 return (char*)EncoderBase::encode(stream, Mnemonic_PXOR, args);
458 EncoderBase::Operands args;
459 add_xmm(args, xmm0, true);
460 add_xmm(args, xmm1, true);
461 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_COMISD : Mnemonic_COMISS, args);
465 EncoderBase::Operands args;
466 add_xmm(args, xmm0, dbl);
467 add_m(args, mem, dbl ? size_64 : size_32);
468 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_COMISD : Mnemonic_COMISS, args);
473 EncoderBase::Operands args;
474 add_xmm(args, xmm, dbl);
475 add_m(args, mem, size_32);
476 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_CVTSI2SD : Mnemonic_CVTSI2SS, args);
480 EncoderBase::Operands args;
481 add_rm(args, reg, size_32);
482 add_m(args, mem, dbl ? size_64 : size_32);
483 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_CVTTSD2SI : Mnemonic_CVTTSS2SI, args);
487 EncoderBase::Operands args;
488 add_rm(args, reg, size_32);
489 add_xmm(args, xmm, dbl);
490 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_CVTTSD2SI : Mnemonic_CVTTSS2SI, args);
494 EncoderBase::Operands args;
495 add_xmm(args, xmm0, dbl);
496 add_xmm(args, xmm1, dbl);
497 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_CVTTPD2DQ : Mnemonic_CVTTPS2DQ, args);
501 EncoderBase::Operands args;
502 add_xmm(args, xmm0, dbl);
503 add_xmm(args, xmm1, dbl);
504 return (char*)EncoderBase::encode(stream, dbl ? Mnemonic_CVTDQ2PD : Mnemonic_CVTDQ2PS, args);
508 EncoderBase::Operands args;
509 add_xmm(args, xmm0, false);
510 add_m(args, mem64, size_64);
511 return (char*)EncoderBase::encode(stream, Mnemonic_CVTSD2SS, args);
515 EncoderBase::Operands args;
516 add_xmm(args, xmm0, false);
517 add_xmm(args, xmm1, true);
518 return (char*)EncoderBase::encode(stream, Mnemonic_CVTSD2SS, args);
522 EncoderBase::Operands args;
523 add_xmm(args, xmm0, true);
524 add_m(args, mem32, size_32);
525 return (char*)EncoderBase::encode(stream, Mnemonic_CVTSS2SD, args);
529 EncoderBase::Operands args;
530 add_xmm(args, xmm0, true);
531 add_xmm(args, xmm1, false);
532 return (char*)EncoderBase::encode(stream, Mnemonic_CVTSS2SD, args);
537 EncoderBase::Operands args;
538 add_r(args, r, sz);
539 add_rm(args, rm, sz);
540 return (char*)EncoderBase::encode(stream, (Mnemonic)(Mnemonic_CMOVcc + cc), args);
544 EncoderBase::Operands args;
545 add_rm(args, rm8, size_8);
546 return (char*)EncoderBase::encode(stream, (Mnemonic)(Mnemonic_SETcc + cc), args);
551 EncoderBase::Operands args;
552 add_r(args, r, sz);
553 add_m(args, m, sz);
554 return (char*)EncoderBase::encode(stream, Mnemonic_LEA, args);
558 EncoderBase::Operands args;
559 args.add(RegName_EDX);
560 args.add(RegName_EAX);
561 return (char*)EncoderBase::encode(stream, Mnemonic_CDQ, args);
572 EncoderBase::Operands args;
574 args.add(RegName_ECX);
575 add_imm(args, imm);
576 return (char*)EncoderBase::encode(stream, Mnemonic_LOOP, args);
581 EncoderBase::Operands args;
583 add_imm(args, imm);
584 return (char*)EncoderBase::encode(stream, Mnemonic_JMP, args);
588 EncoderBase::Operands args;
590 add_imm(args, imm);
591 return (char*)EncoderBase::encode(stream, Mnemonic_JMP, args);
595 EncoderBase::Operands args;
596 add_rm(args, rm, sz);
597 return (char*)EncoderBase::encode(stream, Mnemonic_JMP, args);
647 EncoderBase::Operands args;
649 add_imm(args, imm);
650 return (char*)EncoderBase::encode(stream, m, args);
662 EncoderBase::Operands args;
664 add_imm(args, imm);
665 return (char*)EncoderBase::encode(stream, m, args);
682 EncoderBase::Operands args;
683 add_imm(args, imm);
684 return (char*)EncoderBase::encode(stream, Mnemonic_CALL, args);
690 EncoderBase::Operands args;
691 add_rm(args, rm, sz);
692 return (char*)EncoderBase::encode(stream, Mnemonic_CALL, args);
723 EncoderBase::Operands args;
724 return (char*)EncoderBase::encode(stream, Mnemonic_RET, args);
729 EncoderBase::Operands args;
732 args.add(EncoderBase::Operand(map_size(size_16), imm.get_value()));
733 return (char*)EncoderBase::encode(stream, Mnemonic_RET, args);
739 EncoderBase::Operands args(EncoderBase::Operand(OpndSize_16, pop, OpndExt_Zero));
740 return (char*)EncoderBase::encode(stream, Mnemonic_RET, args);
746 EncoderBase::Operands args;
748 add_fp(args, 0, is_double);
749 add_m(args, m, is_double ? size_64 : size_32);
750 return (char*)EncoderBase::encode(stream, Mnemonic_FLD, args);
756 EncoderBase::Operands args;
758 add_m(args, mem, is_long ? size_64 : size_32);
760 add_fp(args, 0, is_long);
761 return (char*)EncoderBase::encode(stream, Mnemonic_FISTP, args);
765 add_m(args, mem, size_32);
766 add_fp(args, 0, false);
767 return (char*)EncoderBase::encode(stream, Mnemonic_FIST, args);
773 EncoderBase::Operands args;
774 add_m(args, m, is_double ? size_64 : size_32);
776 add_fp(args, 0, is_double);
779 args);
784 EncoderBase::Operands args;
785 add_fp(args, i, true);
788 args);
792 EncoderBase::Operands args;
793 add_m(args, mem, size_16);
794 return (char*)EncoderBase::encode(stream, Mnemonic_FLDCW, args);
798 EncoderBase::Operands args;
799 add_m(args, mem, size_16);
800 return (char*)EncoderBase::encode(stream, Mnemonic_FNSTCW, args);
811 EncoderBase::Operands args;
814 args);
819 EncoderBase::Operands args;
825 return (char*)EncoderBase::encode(stream, Mnemonic_SCAS, args);
836 EncoderBase::Operands args;
837 return (char*)EncoderBase::encode(stream, Mnemonic_STOS, args);