Author: chromatic
Date: Mon Mar 31 22:04:59 2008
New Revision: 26685

Added:
   trunk/src/jit/arm/exec_dep.c   (contents, props changed)
Modified:
   trunk/MANIFEST
   trunk/src/jit/arm/exec_dep.h
   trunk/src/jit/i386/exec_dep.h

Log:
[JIT] Fixed the JIT build on ARM accidentally broken in r26636.  This also
finishes more of what RT #47289 tried to accomplish.

Modified: trunk/MANIFEST
==============================================================================
--- trunk/MANIFEST      (original)
+++ trunk/MANIFEST      Mon Mar 31 22:04:59 2008
@@ -2729,6 +2729,7 @@
 src/jit/amd64/core.jit                                      []
 src/jit/amd64/jit_emit.h                                    []
 src/jit/arm/core.jit                                        []
+src/jit/arm/exec_dep.c                                      []
 src/jit/arm/exec_dep.h                                      []
 src/jit/arm/jit_emit.h                                      []
 src/jit/hppa/core.jit                                       []
@@ -2743,8 +2744,8 @@
 src/jit/mips/jit_emit.h                                     []
 src/jit/ppc/asm.s                                           []
 src/jit/ppc/core.jit                                        []
-src/jit/ppc/exec_dep.h                                      []
 src/jit/ppc/exec_dep.c                                      []
+src/jit/ppc/exec_dep.h                                      []
 src/jit/ppc/jit_emit.h                                      []
 src/jit/ppc/ppc-linux.s                                     []
 src/jit/skeleton/jit_emit.h                                 []

Added: trunk/src/jit/arm/exec_dep.c
==============================================================================
--- (empty file)
+++ trunk/src/jit/arm/exec_dep.c        Mon Mar 31 22:04:59 2008
@@ -0,0 +1,96 @@
+/* Copyright (C) 2003-2008, The Perl Foundation. */
+
+/*
+ * exec_dep.c
+ *
+ * SVN Info
+ *    $Id$
+ * Overview:
+ *    ARM dependent functions to emit an executable.
+ * History:
+ *      Initial version by Daniel Grunblatt on 2003.8.12
+ * Notes:
+ * References:
+ */
+
+#ifndef PARROT_ARM_EXEC_DEP_H_GUARD
+#define PARROT_ARM_EXEC_DEP_H_GUARD
+
+#ifdef JIT_CGP
+
+void
+Parrot_exec_normal_op(Parrot_jit_info_t *jit_info, PARROT_INTERP)
+{
+}
+
+#else /* JIT_CGP */
+
+void
+Parrot_exec_normal_op(Parrot_jit_info_t *jit_info, PARROT_INTERP)
+{
+    jit_info->native_ptr = emit_mov(jit_info->native_ptr, r1, r4);
+#  ifndef ARM_K_BUG
+    jit_info->native_ptr = emit_mov(jit_info->native_ptr, REG14_lr, REG15_pc);
+    jit_info->native_ptr = emit_ldmstm(jit_info->native_ptr,
+                                        cond_AL, is_load, dir_IA,
+                                        is_writeback,
+                                        REG14_lr,
+                                        reg2mask(0) | reg2mask(REG15_pc));
+#  else
+    jit_info->native_ptr = emit_arith_immediate(jit_info->native_ptr, cond_AL,
+                                                 ADD, 0, REG14_lr, REG15_pc,
+                                                 4, 0);
+    jit_info->native_ptr = emit_ldmstm(jit_info->native_ptr,
+                                        cond_AL, is_load, dir_IA,
+                                        is_writeback,
+                                        REG14_lr,
+                                        reg2mask(0) | reg2mask(REG12_ip));
+    jit_info->native_ptr = emit_mov(jit_info->native_ptr, REG15_pc, REG12_ip);
+#  endif /* ARM_K_BUG */
+    Parrot_exec_add_text_rellocation(jit_info->objfile,
+        jit_info->native_ptr, RTYPE_DATA, "program_code", 0);
+    jit_info->native_ptr
+        = emit_word(jit_info->native_ptr, ((int)jit_info->cur_op) -
+            ((int)interp->code->base.data) +
+                (jit_info->objfile->bytecode_header_size));
+    Parrot_exec_add_text_rellocation(jit_info->objfile,
+        jit_info->native_ptr, RTYPE_FUNC,
+            interp->op_info_table[*jit_info->cur_op].func_name, 0);
+    jit_info->native_ptr
+        = emit_word(jit_info->native_ptr, 0);
+}
+
+#endif /* JIT_CGP */
+
+void
+Parrot_exec_cpcf_op(Parrot_jit_info_t *jit_info, PARROT_INTERP)
+{
+    Parrot_exec_normal_op(jit_info, interp);
+    Parrot_jump_to_op_in_reg(jit_info, interp, r0);
+}
+
+void
+Parrot_exec_restart_op(Parrot_jit_info_t *jit_info, PARROT_INTERP)
+{
+}
+
+/* Assign the offset of the progra_code */
+static void
+offset_fixup(Parrot_exec_objfile_t *obj)
+{
+    int i, j;
+
+    for (i = 0; i < obj->data_count; i++) {
+        for (j = 0; j < i; j++)
+            obj->symbol_table[i].value += obj->data_size[j];
+    }
+}
+
+#endif /* PARROT_ARM_EXEC_DEP_H_GUARD */
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: trunk/src/jit/arm/exec_dep.h
==============================================================================
--- trunk/src/jit/arm/exec_dep.h        (original)
+++ trunk/src/jit/arm/exec_dep.h        Mon Mar 31 22:04:59 2008
@@ -1,6 +1,4 @@
-/*
- * Copyright (C) 2003-2007, The Perl Foundation.
- */
+/* Copyright (C) 2003-2008, The Perl Foundation. */
 
 /*
  * exec_dep.h
@@ -21,80 +19,27 @@
 #ifdef JIT_CGP
 
 void
-Parrot_exec_normal_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-}
+Parrot_exec_normal_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
 
 #else /* JIT_CGP */
 
 void
-Parrot_exec_normal_op(Parrot_jit_info_t *jit_info,
-                     PARROT_INTERP)
-{
-    jit_info->native_ptr = emit_mov(jit_info->native_ptr, r1, r4);
-#  ifndef ARM_K_BUG
-    jit_info->native_ptr = emit_mov(jit_info->native_ptr, REG14_lr, REG15_pc);
-    jit_info->native_ptr = emit_ldmstm(jit_info->native_ptr,
-                                        cond_AL, is_load, dir_IA,
-                                        is_writeback,
-                                        REG14_lr,
-                                        reg2mask(0) | reg2mask(REG15_pc));
-#  else
-    jit_info->native_ptr = emit_arith_immediate(jit_info->native_ptr, cond_AL,
-                                                 ADD, 0, REG14_lr, REG15_pc,
-                                                 4, 0);
-    jit_info->native_ptr = emit_ldmstm(jit_info->native_ptr,
-                                        cond_AL, is_load, dir_IA,
-                                        is_writeback,
-                                        REG14_lr,
-                                        reg2mask(0) | reg2mask(REG12_ip));
-    jit_info->native_ptr = emit_mov(jit_info->native_ptr, REG15_pc, REG12_ip);
-#  endif /* ARM_K_BUG */
-    Parrot_exec_add_text_rellocation(jit_info->objfile,
-        jit_info->native_ptr, RTYPE_DATA, "program_code", 0);
-    jit_info->native_ptr
-        = emit_word(jit_info->native_ptr, ((int)jit_info->cur_op) -
-            ((int)interp->code->base.data) +
-                (jit_info->objfile->bytecode_header_size));
-    Parrot_exec_add_text_rellocation(jit_info->objfile,
-        jit_info->native_ptr, RTYPE_FUNC,
-            interp->op_info_table[*jit_info->cur_op].func_name, 0);
-    jit_info->native_ptr
-        = emit_word(jit_info->native_ptr, 0);
-}
+Parrot_exec_normal_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
 
 #endif /* JIT_CGP */
 
 void
-Parrot_exec_cpcf_op(Parrot_jit_info_t *jit_info,
-                   PARROT_INTERP)
-{
-    Parrot_exec_normal_op(jit_info, interp);
-    Parrot_jump_to_op_in_reg(jit_info, interp, r0);
-}
+Parrot_exec_cpcf_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
 
 void
-Parrot_exec_restart_op(Parrot_jit_info_t *jit_info,
-                       PARROT_INTERP)
-{
-}
+Parrot_exec_restart_op(Parrot_jit_info_t *jit_info, PARROT_INTERP);
 
-/* Assign the offset of the progra_code */
+/* Assign the offset of the program_code */
 static void
-offset_fixup(Parrot_exec_objfile_t *obj)
-{
-    int i, j;
-
-    for (i = 0; i < obj->data_count; i++) {
-        for (j = 0; j < i; j++)
-            obj->symbol_table[i].value += obj->data_size[j];
-    }
-}
+offset_fixup(Parrot_exec_objfile_t *obj);
 
 #endif /* PARROT_ARM_EXEC_DEP_H_GUARD */
 
-
 /*
  * Local variables:
  *   c-file-style: "parrot"

Modified: trunk/src/jit/i386/exec_dep.h
==============================================================================
--- trunk/src/jit/i386/exec_dep.h       (original)
+++ trunk/src/jit/i386/exec_dep.h       Mon Mar 31 22:04:59 2008
@@ -1,6 +1,4 @@
-/*
- * Copyright (C) 2003-2008, The Perl Foundation.
- */
+/* Copyright (C) 2003-2008, The Perl Foundation.  */
 
 /*
  * exec_dep.h
@@ -30,7 +28,6 @@
 void
 offset_fixup(Parrot_exec_objfile_t *obj);
 
-
 #endif /* PARROT_I386_EXEC_DEP_H_GUARD */
 
 /*

Reply via email to