summaryrefslogtreecommitdiff
path: root/src/arch/dalvik/opdefs
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/dalvik/opdefs')
-rw-r--r--src/arch/dalvik/opdefs/Makefile.am6
-rw-r--r--src/arch/dalvik/opdefs/goto_28.d8
-rw-r--r--src/arch/dalvik/opdefs/goto_29.d8
-rw-r--r--src/arch/dalvik/opdefs/goto_2a.d8
-rw-r--r--src/arch/dalvik/opdefs/if_32.d8
-rw-r--r--src/arch/dalvik/opdefs/if_33.d8
-rw-r--r--src/arch/dalvik/opdefs/if_34.d8
-rw-r--r--src/arch/dalvik/opdefs/if_35.d8
-rw-r--r--src/arch/dalvik/opdefs/if_36.d8
-rw-r--r--src/arch/dalvik/opdefs/if_37.d8
-rw-r--r--src/arch/dalvik/opdefs/if_38.d8
-rw-r--r--src/arch/dalvik/opdefs/if_39.d8
-rw-r--r--src/arch/dalvik/opdefs/if_3a.d8
-rw-r--r--src/arch/dalvik/opdefs/if_3b.d8
-rw-r--r--src/arch/dalvik/opdefs/if_3c.d8
-rw-r--r--src/arch/dalvik/opdefs/if_3d.d8
-rw-r--r--src/arch/dalvik/opdefs/return_0e.d6
-rw-r--r--src/arch/dalvik/opdefs/return_0f.d6
-rw-r--r--src/arch/dalvik/opdefs/return_10.d6
-rw-r--r--src/arch/dalvik/opdefs/return_11.d6
20 files changed, 150 insertions, 0 deletions
diff --git a/src/arch/dalvik/opdefs/Makefile.am b/src/arch/dalvik/opdefs/Makefile.am
index eebf04e..055e8a4 100644
--- a/src/arch/dalvik/opdefs/Makefile.am
+++ b/src/arch/dalvik/opdefs/Makefile.am
@@ -16,11 +16,17 @@ D2C_PREFIX = DALVIK_OPT_
D2C_ENCODINGS = \
-e none
+D2C_MACROS = \
+ -M SetInsFlag=g_arch_instruction_set_flag
+
FIXED_C_INCLUDES = \
\n\#include \<stdint.h\> \
\n \
+ \n\#include \"..\/fetch.h\" \
\n\#include \"..\/helpers.h\" \
\n\#include \"..\/instruction.h\" \
+ \n\#include \"..\/link.h\" \
+ \n\#include \"..\/post.h\" \
\n\#include \"..\/processor.h\" \
\n\#include \"..\/..\/context.h\" \
\n\#include \"..\/..\/..\/analysis\/content.h\" \
diff --git a/src/arch/dalvik/opdefs/goto_28.d b/src/arch/dalvik/opdefs/goto_28.d
index ab5d4e6..a9c12d1 100644
--- a/src/arch/dalvik/opdefs/goto_28.d
+++ b/src/arch/dalvik/opdefs/goto_28.d
@@ -27,4 +27,12 @@
@format 10t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_goto_instruction
+ link = handle_jump_as_link
+ post = post_process_dalvik_goto_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/goto_29.d b/src/arch/dalvik/opdefs/goto_29.d
index 3df2500..8272a7d 100644
--- a/src/arch/dalvik/opdefs/goto_29.d
+++ b/src/arch/dalvik/opdefs/goto_29.d
@@ -27,4 +27,12 @@
@format 20t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_goto_instruction
+ link = handle_jump_as_link
+ post = post_process_dalvik_goto_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/goto_2a.d b/src/arch/dalvik/opdefs/goto_2a.d
index ea2f8aa..937b10d 100644
--- a/src/arch/dalvik/opdefs/goto_2a.d
+++ b/src/arch/dalvik/opdefs/goto_2a.d
@@ -27,4 +27,12 @@
@format 30t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_goto_instruction
+ link = handle_jump_as_link
+ post = post_process_dalvik_goto_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_32.d b/src/arch/dalvik/opdefs/if_32.d
index 587b4c2..714c384 100644
--- a/src/arch/dalvik/opdefs/if_32.d
+++ b/src/arch/dalvik/opdefs/if_32.d
@@ -27,4 +27,12 @@
@format 22t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_if_instruction
+ link = handle_dalvik_if_branch_as_link
+ post = post_process_dalvik_goto_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_33.d b/src/arch/dalvik/opdefs/if_33.d
index 51f09cc..f655f67 100644
--- a/src/arch/dalvik/opdefs/if_33.d
+++ b/src/arch/dalvik/opdefs/if_33.d
@@ -27,4 +27,12 @@
@format 22t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_if_instruction
+ link = handle_dalvik_if_branch_as_link
+ post = post_process_dalvik_if_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_34.d b/src/arch/dalvik/opdefs/if_34.d
index 14429eb..1146980 100644
--- a/src/arch/dalvik/opdefs/if_34.d
+++ b/src/arch/dalvik/opdefs/if_34.d
@@ -27,4 +27,12 @@
@format 22t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_if_instruction
+ link = handle_dalvik_if_branch_as_link
+ post = post_process_dalvik_if_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_35.d b/src/arch/dalvik/opdefs/if_35.d
index 642e1b0..b11b243 100644
--- a/src/arch/dalvik/opdefs/if_35.d
+++ b/src/arch/dalvik/opdefs/if_35.d
@@ -27,4 +27,12 @@
@format 22t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_if_instruction
+ link = handle_dalvik_if_branch_as_link
+ post = post_process_dalvik_if_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_36.d b/src/arch/dalvik/opdefs/if_36.d
index 962b341..7436901 100644
--- a/src/arch/dalvik/opdefs/if_36.d
+++ b/src/arch/dalvik/opdefs/if_36.d
@@ -27,4 +27,12 @@
@format 22t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_if_instruction
+ link = handle_dalvik_if_branch_as_link
+ post = post_process_dalvik_if_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_37.d b/src/arch/dalvik/opdefs/if_37.d
index 29f1601..9ecbd84 100644
--- a/src/arch/dalvik/opdefs/if_37.d
+++ b/src/arch/dalvik/opdefs/if_37.d
@@ -27,4 +27,12 @@
@format 22t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_if_instruction
+ link = handle_dalvik_if_branch_as_link
+ post = post_process_dalvik_if_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_38.d b/src/arch/dalvik/opdefs/if_38.d
index 19d0ad9..ff21f2b 100644
--- a/src/arch/dalvik/opdefs/if_38.d
+++ b/src/arch/dalvik/opdefs/if_38.d
@@ -27,4 +27,12 @@
@format 21t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_ifz_instruction
+ link = handle_dalvik_ifz_branch_as_link
+ post = post_process_dalvik_ifz_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_39.d b/src/arch/dalvik/opdefs/if_39.d
index fc63f81..0dbba57 100644
--- a/src/arch/dalvik/opdefs/if_39.d
+++ b/src/arch/dalvik/opdefs/if_39.d
@@ -27,4 +27,12 @@
@format 21t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_ifz_instruction
+ link = handle_dalvik_ifz_branch_as_link
+ post = post_process_dalvik_ifz_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_3a.d b/src/arch/dalvik/opdefs/if_3a.d
index 4f78692..b003824 100644
--- a/src/arch/dalvik/opdefs/if_3a.d
+++ b/src/arch/dalvik/opdefs/if_3a.d
@@ -27,4 +27,12 @@
@format 21t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_ifz_instruction
+ link = handle_dalvik_ifz_branch_as_link
+ post = post_process_dalvik_ifz_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_3b.d b/src/arch/dalvik/opdefs/if_3b.d
index 2d4a804..f571d7e 100644
--- a/src/arch/dalvik/opdefs/if_3b.d
+++ b/src/arch/dalvik/opdefs/if_3b.d
@@ -27,4 +27,12 @@
@format 21t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_ifz_instruction
+ link = handle_dalvik_ifz_branch_as_link
+ post = post_process_dalvik_ifz_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_3c.d b/src/arch/dalvik/opdefs/if_3c.d
index 08dcf19..154fe2c 100644
--- a/src/arch/dalvik/opdefs/if_3c.d
+++ b/src/arch/dalvik/opdefs/if_3c.d
@@ -27,4 +27,12 @@
@format 21t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_ifz_instruction
+ link = handle_dalvik_ifz_branch_as_link
+ post = post_process_dalvik_ifz_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/if_3d.d b/src/arch/dalvik/opdefs/if_3d.d
index fd0b239..2aa5f87 100644
--- a/src/arch/dalvik/opdefs/if_3d.d
+++ b/src/arch/dalvik/opdefs/if_3d.d
@@ -27,4 +27,12 @@
@format 21t
+ @hooks {
+
+ fetch = help_fetching_with_dalvik_ifz_instruction
+ link = handle_dalvik_ifz_branch_as_link
+ post = post_process_dalvik_ifz_target_resolution
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/return_0e.d b/src/arch/dalvik/opdefs/return_0e.d
index 6b71fa7..98fa1a8 100644
--- a/src/arch/dalvik/opdefs/return_0e.d
+++ b/src/arch/dalvik/opdefs/return_0e.d
@@ -27,4 +27,10 @@
@format 10x
+ @rules {
+
+ call SetInsFlag(AIF_RETURN_POINT)
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/return_0f.d b/src/arch/dalvik/opdefs/return_0f.d
index 8fbd711..7e681ae 100644
--- a/src/arch/dalvik/opdefs/return_0f.d
+++ b/src/arch/dalvik/opdefs/return_0f.d
@@ -27,4 +27,10 @@
@format 11x
+ @rules {
+
+ call SetInsFlag(AIF_RETURN_POINT)
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/return_10.d b/src/arch/dalvik/opdefs/return_10.d
index 0ff6dd8..644760c 100644
--- a/src/arch/dalvik/opdefs/return_10.d
+++ b/src/arch/dalvik/opdefs/return_10.d
@@ -27,4 +27,10 @@
@format 11x
+ @rules {
+
+ call SetInsFlag(AIF_RETURN_POINT)
+
+ }
+
}
diff --git a/src/arch/dalvik/opdefs/return_11.d b/src/arch/dalvik/opdefs/return_11.d
index 85bf2da..b8e4e60 100644
--- a/src/arch/dalvik/opdefs/return_11.d
+++ b/src/arch/dalvik/opdefs/return_11.d
@@ -27,4 +27,10 @@
@format 11x
+ @rules {
+
+ call SetInsFlag(AIF_RETURN_POINT)
+
+ }
+
}