lightning
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lightning] [PATCH 3/4] misc: Make jit_note and related functions take a


From: Holger Hans Peter Freyther
Subject: [Lightning] [PATCH 3/4] misc: Make jit_note and related functions take a const argument
Date: Sat, 1 Nov 2014 21:14:06 +0100

Make jit_memcpy, jit_memmove, jit_data take const pointers to
allow jit_note to be used with a const string (e.g. a string
literal, __FILE__ or __func__). This is needed for GNU Smalltalk
to silence compiler warnings.

Sadly "const jit_pointer_t" is not the same as "typedef const void *"
so I introduced a new typedef for a const jit pointer. The other
option would be to replace jit_pointer_t with void*.
---
 include/lightning.h             |  9 +++------
 include/lightning/jit_private.h | 10 +++++++---
 lib/jit_disasm.c                |  2 +-
 lib/jit_memory.c                |  4 ++--
 lib/jit_note.c                  |  4 ++--
 lib/lightning.c                 | 10 +++++-----
 6 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/include/lightning.h b/include/lightning.h
index b495af8..461661a 100644
--- a/include/lightning.h
+++ b/include/lightning.h
@@ -174,7 +174,6 @@ typedef struct jit_node             jit_node_t;
 typedef struct jit_state       jit_state_t;
 
 typedef enum {
-#define jit_data(u,v,w)                _jit_data(_jit,u,v,w)
     jit_code_data,
 #define jit_live(u)            jit_new_node_w(jit_code_live, u)
 #define jit_align(u)           jit_new_node_w(jit_code_align, u)
@@ -845,7 +844,7 @@ typedef void  (*jit_free_func_ptr)  (void*);
 /*
  * Prototypes
  */
-extern void init_jit(char*);
+extern void init_jit(const char*);
 extern void finish_jit(void);
 
 extern jit_state_t *jit_new_state(void);
@@ -856,10 +855,8 @@ extern void _jit_destroy_state(jit_state_t*);
 
 #define jit_address(node)      _jit_address(_jit, node)
 extern jit_pointer_t _jit_address(jit_state_t*, jit_node_t*);
-extern jit_node_t *_jit_data(jit_state_t*, jit_pointer_t,
-                            jit_word_t, jit_int32_t);
-extern jit_node_t *_jit_name(jit_state_t*, char*);
-extern jit_node_t *_jit_note(jit_state_t*, char*, int);
+extern jit_node_t *_jit_name(jit_state_t*, const char*);
+extern jit_node_t *_jit_note(jit_state_t*, const char*, int);
 extern jit_node_t *_jit_label(jit_state_t*);
 extern jit_node_t *_jit_forward(jit_state_t*);
 extern jit_node_t *_jit_indirect(jit_state_t*);
diff --git a/include/lightning/jit_private.h b/include/lightning/jit_private.h
index 128bd1a..2a48fec 100644
--- a/include/lightning/jit_private.h
+++ b/include/lightning/jit_private.h
@@ -127,6 +127,10 @@ typedef jit_uint32_t               jit_regset_t;
 typedef jit_uint64_t           jit_regset_t;
 #endif
 
+#define jit_data(u,v,w)                _jit_data(_jit,u,v,w)
+extern jit_node_t *_jit_data(jit_state_t*, const void*,
+                            jit_word_t, jit_int32_t);
+
 #define jit_size(vector)       (sizeof(vector) / sizeof((vector)[0]))
 
 #define jit_reg_free_p(regno)                                          \
@@ -601,7 +605,7 @@ _emit_ldxi_d(jit_state_t*, jit_int32_t, jit_int32_t, 
jit_word_t);
 extern void
 _emit_stxi_d(jit_state_t*, jit_word_t, jit_int32_t, jit_int32_t);
 
-extern void jit_init_debug(char*);
+extern void jit_init_debug(const char*);
 extern void jit_finish_debug(void);
 
 extern void jit_init_note(void);
@@ -611,8 +615,8 @@ extern void _jit_set_note(jit_state_t*, jit_note_t*, char*, 
int, jit_int32_t);
 #define jit_annotate()         _jit_annotate(_jit)
 extern void _jit_annotate(jit_state_t*);
 
-extern jit_pointer_t jit_memcpy(jit_pointer_t,jit_pointer_t,jit_word_t);
-extern jit_pointer_t jit_memmove(jit_pointer_t,jit_pointer_t,jit_word_t);
+extern jit_pointer_t jit_memcpy(jit_pointer_t,const void*,jit_word_t);
+extern jit_pointer_t jit_memmove(jit_pointer_t,const void*,jit_word_t);
 extern void jit_alloc(jit_pointer_t*, jit_word_t);
 extern void jit_realloc(jit_pointer_t*, jit_word_t, jit_word_t);
 void jit_free(jit_pointer_t*);
diff --git a/lib/jit_disasm.c b/lib/jit_disasm.c
index 31480af..6f9227d 100644
--- a/lib/jit_disasm.c
+++ b/lib/jit_disasm.c
@@ -57,7 +57,7 @@ static jit_state_t             *disasm_jit;
  * Implementation
  */
 void
-jit_init_debug(char *progname)
+jit_init_debug(const char *progname)
 {
 #if DISASSEMBLER
     bfd_init();
diff --git a/lib/jit_memory.c b/lib/jit_memory.c
index b4193e4..74cb228 100644
--- a/lib/jit_memory.c
+++ b/lib/jit_memory.c
@@ -39,7 +39,7 @@ static jit_free_func_ptr jit_free_ptr = jit_default_free_func;
  * Implementation
  */
 jit_pointer_t
-jit_memcpy(jit_pointer_t dst, jit_pointer_t src, jit_word_t size)
+jit_memcpy(jit_pointer_t dst, const void *src, jit_word_t size)
 {
     if (size)
        return (memcpy(dst, src, size));
@@ -47,7 +47,7 @@ jit_memcpy(jit_pointer_t dst, jit_pointer_t src, jit_word_t 
size)
 }
 
 jit_pointer_t
-jit_memmove(jit_pointer_t dst, jit_pointer_t src , jit_word_t size)
+jit_memmove(jit_pointer_t dst, const void *src , jit_word_t size)
 {
     if (size)
        return (memmove(dst, src, size));
diff --git a/lib/jit_note.c b/lib/jit_note.c
index f3d35fa..160551e 100644
--- a/lib/jit_note.c
+++ b/lib/jit_note.c
@@ -47,7 +47,7 @@ jit_finish_note(void)
 }
 
 jit_node_t *
-_jit_name(jit_state_t *_jit, char *name)
+_jit_name(jit_state_t *_jit, const char *name)
 {
     jit_node_t         *node;
 
@@ -70,7 +70,7 @@ _jit_name(jit_state_t *_jit, char *name)
 }
 
 jit_node_t *
-_jit_note(jit_state_t *_jit, char *name, int line)
+_jit_note(jit_state_t *_jit, const char *name, int line)
 {
     jit_node_t         *node;
 
diff --git a/lib/lightning.c b/lib/lightning.c
index 7240f6b..8f892da 100644
--- a/lib/lightning.c
+++ b/lib/lightning.c
@@ -44,7 +44,7 @@
 /*
  * Prototypes
  */
-static jit_word_t hash_data(jit_pointer_t, jit_word_t);
+static jit_word_t hash_data(const void*, jit_word_t);
 
 #define new_pool()                     _new_pool(_jit)
 static void _new_pool(jit_state_t*);
@@ -178,7 +178,7 @@ _patch_register(jit_state_t *jit, jit_node_t *node, 
jit_node_t *link,
  * Implementation
  */
 void
-init_jit(char *progname)
+init_jit(const char *progname)
 {
     jit_get_cpu();
     jit_init_debug(progname);
@@ -536,9 +536,9 @@ _jit_load(jit_state_t *_jit, jit_int32_t reg)
 }
 
 static jit_word_t
-hash_data(jit_pointer_t data, jit_word_t length)
+hash_data(const void *data, jit_word_t length)
 {
-    jit_uint8_t                *ptr;
+    const jit_uint8_t          *ptr;
     jit_word_t          i, key;
     for (i = key = 0, ptr = data; i < length; i++)
        key = (key << (key & 1)) ^ ptr[i];
@@ -558,7 +558,7 @@ _jit_address(jit_state_t *_jit, jit_node_t *node)
 }
 
 jit_node_t *
-_jit_data(jit_state_t *_jit, jit_pointer_t data,
+_jit_data(jit_state_t *_jit, const void *data,
          jit_word_t length, jit_int32_t align)
 {
     jit_word_t          key;
-- 
2.1.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]