Merge branch 'ppc64' of https://github.com/randomstuff/capstone into randomstuff-ppc64
diff --git a/arch/PowerPC/PPCInstPrinter.c b/arch/PowerPC/PPCInstPrinter.c
index 5119433..dcba431 100644
--- a/arch/PowerPC/PPCInstPrinter.c
+++ b/arch/PowerPC/PPCInstPrinter.c
@@ -19,6 +19,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <inttypes.h>
 
 #include "PPCInstPrinter.h"
 #include "PPCPredicates.h"
@@ -710,17 +711,17 @@
 	}
 
 	if (MCOperand_isImm(Op)) {
-		int32_t imm = (int32_t)MCOperand_getImm(Op);
+		uint64_t imm = MCOperand_getImm(Op);
 		if (imm >= 0) {
 			if (imm > HEX_THRESHOLD)
-				SStream_concat(O, "0x%x", imm);
+				SStream_concat(O, "0x%" PRIx64, imm);
 			else
-				SStream_concat(O, "%u", imm);
+				SStream_concat(O, "%" PRIu64 , imm);
 		} else {
 			if (imm < -HEX_THRESHOLD)
-				SStream_concat(O, "-0x%x", -imm);
+				SStream_concat(O, "-0x%" PRIx64 , -imm);
 			else
-				SStream_concat(O, "-%u", -imm);
+				SStream_concat(O, "-%" PRIu64 , -imm);
 		}
 
 		if (MI->csh->detail) {
diff --git a/bindings/java/capstone/Ppc.java b/bindings/java/capstone/Ppc.java
index 25eeb38..128667a 100644
--- a/bindings/java/capstone/Ppc.java
+++ b/bindings/java/capstone/Ppc.java
@@ -36,7 +36,7 @@
 
   public static class OpValue extends Union {
     public int reg;
-    public int imm;
+    public long imm;
     public MemType mem;
     public CrxType crx;
   }
diff --git a/bindings/java/capstone/X86.java b/bindings/java/capstone/X86.java
index 28fbebf..19ed8af 100644
--- a/bindings/java/capstone/X86.java
+++ b/bindings/java/capstone/X86.java
@@ -116,6 +116,7 @@
     public int sibIndex;
     public byte sibScale;
     public int sibBase;
+    public int xopCC;
     public int sseCC;
     public int avxCC;
     public boolean avxSae;
diff --git a/include/capstone/ppc.h b/include/capstone/ppc.h
index b2bdff3..1fbdc63 100644
--- a/include/capstone/ppc.h
+++ b/include/capstone/ppc.h
@@ -66,7 +66,7 @@
 	ppc_op_type type;	// operand type
 	union {
 		unsigned int reg;	// register value for REG operand
-		int32_t imm;		// immediate value for IMM operand
+		int64_t imm;		// immediate value for IMM operand
 		ppc_op_mem mem;		// base/disp value for MEM operand
 		ppc_op_crx crx;		// operand with condition register
 	};
diff --git a/tests/test_ppc.c b/tests/test_ppc.c
index a39b6f8..b841881 100644
--- a/tests/test_ppc.c
+++ b/tests/test_ppc.c
@@ -79,7 +79,7 @@
 				printf("\t\toperands[%u].type: REG = %s\n", i, cs_reg_name(handle, op->reg));
 				break;
 			case PPC_OP_IMM:
-				printf("\t\toperands[%u].type: IMM = 0x%x\n", i, op->imm);
+				printf("\t\toperands[%u].type: IMM = 0x%" PRIx64 "\n", i, op->imm);
 				break;
 			case PPC_OP_MEM:
 				printf("\t\toperands[%u].type: MEM\n", i);