Lines Matching defs:operand

34 /* Type of operand */
48 unsigned char bits; /* The number of bits in the operand. */
344 /* Extracts an operand value from an instruction. */
346 const struct s390_operand *operand)
352 /* Extract fragments of the operand byte for byte. */
353 cp = code + operand->shift / 8;
354 bits = (operand->shift & 7) + operand->bits;
362 val &= ((1U << (operand->bits - 1)) << 1) - 1;
365 if (operand->bits == 20 && operand->shift == 20)
369 if (operand->flags & OPERAND_VR) {
370 if (operand->shift == 8)
372 else if (operand->shift == 12)
374 else if (operand->shift == 16)
376 else if (operand->shift == 32)
380 /* Sign extend value if the operand is signed or pc relative. */
381 if ((operand->flags & (OPERAND_SIGNED | OPERAND_PCREL)) &&
382 (val & (1U << (operand->bits - 1))))
383 val |= (-1U << (operand->bits - 1)) << 1;
385 /* Double value if the operand is pc relative. */
386 if (operand->flags & OPERAND_PCREL)
390 if (operand->flags & OPERAND_LENGTH)
428 const struct s390_operand *operand;
446 operand = operands + *ops;
447 value = extract_operand(code, operand);
448 if ((operand->flags & OPERAND_INDEX) && value == 0)
450 if ((operand->flags & OPERAND_BASE) &&
457 if (operand->flags & OPERAND_GPR)
459 else if (operand->flags & OPERAND_FPR)
461 else if (operand->flags & OPERAND_AR)
463 else if (operand->flags & OPERAND_CR)
465 else if (operand->flags & OPERAND_VR)
467 else if (operand->flags & OPERAND_PCREL) {
471 } else if (operand->flags & OPERAND_SIGNED)
475 if (operand->flags & OPERAND_DISP)
477 else if (operand->flags & OPERAND_BASE) {