summaryrefslogtreecommitdiff
path: root/portability
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2012-10-28 18:27:36 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2012-10-28 18:27:36 -0400
commitc8b2c39f78b0389d6d1bc605c44fcf415660c164 (patch)
treef143a29701820d7946a367d6cde8856c7996938e /portability
parent74734eb9179e5a2fb9bc8506a5b83cccf04a5304 (diff)
notes about portability
Diffstat (limited to 'portability')
-rw-r--r--portability33
1 files changed, 33 insertions, 0 deletions
diff --git a/portability b/portability
new file mode 100644
index 0000000..fcb4736
--- /dev/null
+++ b/portability
@@ -0,0 +1,33 @@
+- op_t exists on all architectures, but may have different contents;
+ it is always passable by value.
+
+- pixman-assembler.h:
+
+ - declaration of general assembler methods:
+
+ pixman_assembler_t *pixman_asm_create (
+ inst_t *instructions, patch_function_t patch, emit_function_t *emit);
+ pixman_asm (pixman_asm_t *a, const char *instruction, ...);
+ pixman_asm_label (pixman_asm_t *a, const char *label_name);
+ pixman_asm_lookup_label (pixman_asm_t *as, const char *label);
+
+- pixman-<arch>-assembler.h contains:
+
+ - definition of op_t for the architecture in question
+ - constructors of op_t for the architecture in question
+ - declaration of pixman_assembler_create_<arch>
+ - declaration of table of inst_t for architecture
+
+- pixman-assembler.c:
+
+ - includes pixman-<arch>-assembler.h
+ - includes pixman-assembler.h
+
+ - has code to:
+
+ lookup functions by name and addressing-modes ie., op_t must
+ contain a mask indicating which addressing modes it matches.
+
+ locate labels based on their names
+
+ fix up jumps by calling out to 'patch'