about summary refs log tree commit diff stats
path: root/miasm2/jitter
diff options
context:
space:
mode:
authorserpilliere <fabrice.desclaux@cea.fr>2016-09-11 00:13:30 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2016-09-12 10:28:48 +0200
commit9164b599b87d43d64e056726038bc99a69bbf40d (patch)
tree2eb0c856899d4feb16ccbaf86c58805ddd7fd059 /miasm2/jitter
parent25da9186cd3240a6d9f38b692d3a1e0c6589eead (diff)
downloadmiasm-9164b599b87d43d64e056726038bc99a69bbf40d.tar.gz
miasm-9164b599b87d43d64e056726038bc99a69bbf40d.zip
Arm: add clz/uxtab
Diffstat (limited to '')
-rw-r--r--miasm2/jitter/arch/JitCore_arm.c11
-rw-r--r--miasm2/jitter/arch/JitCore_arm.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/miasm2/jitter/arch/JitCore_arm.c b/miasm2/jitter/arch/JitCore_arm.c
index a7ed67d0..0d7caeec 100644
--- a/miasm2/jitter/arch/JitCore_arm.c
+++ b/miasm2/jitter/arch/JitCore_arm.c
@@ -201,6 +201,17 @@ void MEM_WRITE_64(JitCpu* jitcpu, uint64_t addr, uint64_t src)
 }
 
 
+uint32_t clz(uint32_t arg)
+{
+
+	int i;
+
+	for (i=0; i<32; i++) {
+		if (arg & (1 << (31-i)))
+			break;
+	}
+	return i;
+}
 
 
 
diff --git a/miasm2/jitter/arch/JitCore_arm.h b/miasm2/jitter/arch/JitCore_arm.h
index 9fde5e93..dda8a65d 100644
--- a/miasm2/jitter/arch/JitCore_arm.h
+++ b/miasm2/jitter/arch/JitCore_arm.h
@@ -32,3 +32,5 @@ typedef struct {
 void dump_gpregs(vm_cpu_t* vmcpu);
 
 #define RETURN_PC return BlockDst;
+
+uint32_t clz(uint32_t arg);