systemz_detail.c
Go to the documentation of this file.
1 /* Capstone testing regression */
2 /* By Do Minh Tuan <tuanit96@gmail.com>, 02-2019 */
3 
4 
5 #include "factory.h"
6 
7 char *get_detail_sysz(csh *handle, cs_mode mode, cs_insn *ins)
8 {
9  cs_sysz *sysz;
10  int i;
11  char *result;
12 
13  result = (char *)malloc(sizeof(char));
14  result[0] = '\0';
15 
16  if (ins->detail == NULL)
17  return result;
18 
19  sysz = &(ins->detail->sysz);
20  if (sysz->op_count)
21  add_str(&result, " ; op_count: %u", sysz->op_count);
22 
23  for (i = 0; i < sysz->op_count; i++) {
24  cs_sysz_op *op = &(sysz->operands[i]);
25  switch((int)op->type) {
26  default:
27  break;
28  case SYSZ_OP_REG:
29  add_str(&result, " ; operands[%u].type: REG = %s", i, cs_reg_name(*handle, op->reg));
30  break;
31  case SYSZ_OP_ACREG:
32  add_str(&result, " ; operands[%u].type: ACREG = %u", i, op->reg);
33  break;
34  case SYSZ_OP_IMM:
35  add_str(&result, " ; operands[%u].type: IMM = 0x%" PRIx64 "", i, op->imm);
36  break;
37  case SYSZ_OP_MEM:
38  add_str(&result, " ; operands[%u].type: MEM", i);
39  if (op->mem.base != SYSZ_REG_INVALID)
40  add_str(&result, " ; operands[%u].mem.base: REG = %s", i, cs_reg_name(*handle, op->mem.base));
41  if (op->mem.index != SYSZ_REG_INVALID)
42  add_str(&result, " ; operands[%u].mem.index: REG = %s", i, cs_reg_name(*handle, op->mem.index));
43  if (op->mem.length != 0)
44  add_str(&result, " ; operands[%u].mem.length: 0x%" PRIx64 "", i, op->mem.length);
45  if (op->mem.disp != 0)
46  add_str(&result, " ; operands[%u].mem.disp: 0x%" PRIx64 "", i, op->mem.disp);
47 
48  break;
49  }
50  }
51 
52  if (sysz->cc != 0)
53  add_str(&result, " ; Code condition: %u", sysz->cc);
54 
55  return result;
56 }
57 
get_detail_sysz
char * get_detail_sysz(csh *handle, cs_mode mode, cs_insn *ins)
Definition: systemz_detail.c:7
_gevent_test_main.result
result
Definition: _gevent_test_main.py:96
SYSZ_REG_INVALID
@ SYSZ_REG_INVALID
Definition: systemz.h:48
cs_sysz::cc
sysz_cc cc
Definition: systemz.h:195
factory.h
cs_sysz
Definition: systemz.h:194
cs_sysz::operands
cs_sysz_op operands[6]
operands for this instruction.
Definition: systemz.h:199
mode
const char int mode
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:135
SYSZ_OP_REG
@ SYSZ_OP_REG
= CS_OP_REG (Register operand).
Definition: systemz.h:40
SYSZ_OP_ACREG
@ SYSZ_OP_ACREG
Access register operand.
Definition: systemz.h:43
cs_mode
cs_mode
Mode type.
Definition: capstone.h:103
cs_sysz_op
Instruction operand.
Definition: systemz.h:184
cs_reg_name
const CAPSTONE_EXPORT char *CAPSTONE_API cs_reg_name(csh ud, unsigned int reg)
Definition: cs.c:1176
add_str
void add_str(char **src, const char *format,...)
Definition: helper.c:89
SYSZ_OP_MEM
@ SYSZ_OP_MEM
= CS_OP_MEM (Memory operand).
Definition: systemz.h:42
csh
size_t csh
Definition: capstone.h:71
SYSZ_OP_IMM
@ SYSZ_OP_IMM
= CS_OP_IMM (Immediate operand).
Definition: systemz.h:41
handle
static csh handle
Definition: test_arm_regression.c:16
op
static grpc_op * op
Definition: test/core/fling/client.cc:47
cs_sysz::op_count
uint8_t op_count
Definition: systemz.h:198
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:28