- Resolve some casting issues with Visual Studio. (#1007)
This commit is contained in:
parent
60f17f5b70
commit
782d339fc7
|
@ -1616,11 +1616,11 @@ static DecodeStatus DecodeSystemPStateInstruction(MCInst *Inst,
|
||||||
uint32_t insn, uint64_t Addr,
|
uint32_t insn, uint64_t Addr,
|
||||||
void *Decoder)
|
void *Decoder)
|
||||||
{
|
{
|
||||||
uint64_t op1 = fieldFromInstruction(insn, 16, 3);
|
uint32_t op1 = fieldFromInstruction(insn, 16, 3);
|
||||||
uint64_t op2 = fieldFromInstruction(insn, 5, 3);
|
uint32_t op2 = fieldFromInstruction(insn, 5, 3);
|
||||||
uint64_t crm = fieldFromInstruction(insn, 8, 4);
|
uint32_t crm = fieldFromInstruction(insn, 8, 4);
|
||||||
bool ValidNamed;
|
bool ValidNamed;
|
||||||
uint64_t pstate_field = (op1 << 3) | op2;
|
uint32_t pstate_field = (op1 << 3) | op2;
|
||||||
|
|
||||||
MCOperand_CreateImm0(Inst, pstate_field);
|
MCOperand_CreateImm0(Inst, pstate_field);
|
||||||
MCOperand_CreateImm0(Inst, crm);
|
MCOperand_CreateImm0(Inst, crm);
|
||||||
|
@ -1633,9 +1633,9 @@ static DecodeStatus DecodeSystemPStateInstruction(MCInst *Inst,
|
||||||
static DecodeStatus DecodeTestAndBranch(MCInst *Inst, uint32_t insn,
|
static DecodeStatus DecodeTestAndBranch(MCInst *Inst, uint32_t insn,
|
||||||
uint64_t Addr, void *Decoder)
|
uint64_t Addr, void *Decoder)
|
||||||
{
|
{
|
||||||
uint64_t Rt = fieldFromInstruction(insn, 0, 5);
|
uint32_t Rt = fieldFromInstruction(insn, 0, 5);
|
||||||
uint64_t bit = fieldFromInstruction(insn, 31, 1) << 5;
|
uint32_t bit = fieldFromInstruction(insn, 31, 1) << 5;
|
||||||
int64_t dst = fieldFromInstruction(insn, 5, 14);
|
uint32_t dst = fieldFromInstruction(insn, 5, 14);
|
||||||
|
|
||||||
bit |= fieldFromInstruction(insn, 19, 5);
|
bit |= fieldFromInstruction(insn, 19, 5);
|
||||||
|
|
||||||
|
|
|
@ -136,8 +136,8 @@ void AArch64_printInst(MCInst *MI, SStream *O, void *Info)
|
||||||
if (MCOperand_isImm(Op2) && MCOperand_isImm(Op3)) {
|
if (MCOperand_isImm(Op2) && MCOperand_isImm(Op3)) {
|
||||||
char *AsmMnemonic = NULL;
|
char *AsmMnemonic = NULL;
|
||||||
int shift = 0;
|
int shift = 0;
|
||||||
int64_t immr = MCOperand_getImm(Op2);
|
int immr = (int)MCOperand_getImm(Op2);
|
||||||
int64_t imms = MCOperand_getImm(Op3);
|
int imms = (int)MCOperand_getImm(Op3);
|
||||||
|
|
||||||
if (Opcode == AArch64_UBFMWri && imms != 0x1F && ((imms + 1) == immr)) {
|
if (Opcode == AArch64_UBFMWri && imms != 0x1F && ((imms + 1) == immr)) {
|
||||||
AsmMnemonic = "lsl";
|
AsmMnemonic = "lsl";
|
||||||
|
@ -974,7 +974,7 @@ static void printImmScale(MCInst *MI, unsigned OpNum, SStream *O, int Scale)
|
||||||
|
|
||||||
if (MI->csh->detail) {
|
if (MI->csh->detail) {
|
||||||
if (MI->csh->doing_mem) {
|
if (MI->csh->doing_mem) {
|
||||||
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].mem.disp = val;
|
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].mem.disp = (int32_t)val;
|
||||||
} else {
|
} else {
|
||||||
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].type = ARM64_OP_IMM;
|
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].type = ARM64_OP_IMM;
|
||||||
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].imm = val;
|
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].imm = val;
|
||||||
|
@ -992,7 +992,7 @@ static void printUImm12Offset(MCInst *MI, unsigned OpNum, unsigned Scale, SStrea
|
||||||
printInt64Bang(O, val);
|
printInt64Bang(O, val);
|
||||||
if (MI->csh->detail) {
|
if (MI->csh->detail) {
|
||||||
if (MI->csh->doing_mem) {
|
if (MI->csh->doing_mem) {
|
||||||
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].mem.disp = val;
|
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].mem.disp = (int32_t)val;
|
||||||
} else {
|
} else {
|
||||||
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].type = ARM64_OP_IMM;
|
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].type = ARM64_OP_IMM;
|
||||||
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].imm = val;
|
MI->flat_insn->detail->arm64.operands[MI->flat_insn->detail->arm64.op_count].imm = val;
|
||||||
|
|
|
@ -1157,7 +1157,7 @@ static void printPostIdxRegOperand(MCInst *MI, unsigned OpNum, SStream *O)
|
||||||
static void printPostIdxImm8s4Operand(MCInst *MI, unsigned OpNum, SStream *O)
|
static void printPostIdxImm8s4Operand(MCInst *MI, unsigned OpNum, SStream *O)
|
||||||
{
|
{
|
||||||
MCOperand *MO = MCInst_getOperand(MI, OpNum);
|
MCOperand *MO = MCInst_getOperand(MI, OpNum);
|
||||||
unsigned Imm = (unsigned int)MCOperand_getImm(MO);
|
int Imm = (int)MCOperand_getImm(MO);
|
||||||
|
|
||||||
if (((Imm & 0xff) << 2) > HEX_THRESHOLD) {
|
if (((Imm & 0xff) << 2) > HEX_THRESHOLD) {
|
||||||
SStream_concat(O, "#%s0x%x", ((Imm & 256) ? "" : "-"), ((Imm & 0xff) << 2));
|
SStream_concat(O, "#%s0x%x", ((Imm & 256) ? "" : "-"), ((Imm & 0xff) << 2));
|
||||||
|
@ -1166,7 +1166,7 @@ static void printPostIdxImm8s4Operand(MCInst *MI, unsigned OpNum, SStream *O)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MI->csh->detail) {
|
if (MI->csh->detail) {
|
||||||
int v = (Imm & 256) ? ((Imm & 0xff) << 2) : -((((int)Imm) & 0xff) << 2);
|
int v = (Imm & 256) ? ((Imm & 0xff) << 2) : -((Imm & 0xff) << 2);
|
||||||
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].type = ARM_OP_IMM;
|
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].type = ARM_OP_IMM;
|
||||||
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].imm = v;
|
MI->flat_insn->detail->arm.operands[MI->flat_insn->detail->arm.op_count].imm = v;
|
||||||
MI->flat_insn->detail->arm.op_count++;
|
MI->flat_insn->detail->arm.op_count++;
|
||||||
|
|
Loading…
Reference in New Issue