dotgnu-pnet-commits
[Top][All Lists]
Advanced

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

[dotgnu-pnet-commits] pnet ChangeLog engine/md_arm.h engine/unroll_ar...


From: Radek Polak
Subject: [dotgnu-pnet-commits] pnet ChangeLog engine/md_arm.h engine/unroll_ar...
Date: Sat, 29 Mar 2008 19:17:23 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    pnet
Changes by:     Radek Polak <radekp>    08/03/29 19:17:23

Modified files:
        .              : ChangeLog 
        engine         : md_arm.h unroll_arith.c 

Log message:
        changes to make unroller work on ARM EABI

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3537&r2=1.3538
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/md_arm.h?cvsroot=dotgnu-pnet&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/unroll_arith.c?cvsroot=dotgnu-pnet&r1=1.8&r2=1.9

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3537
retrieving revision 1.3538
diff -u -b -r1.3537 -r1.3538
--- ChangeLog   24 Mar 2008 09:04:41 -0000      1.3537
+++ ChangeLog   29 Mar 2008 19:17:22 -0000      1.3538
@@ -1,3 +1,10 @@
+2008-03-29  Radek Polak  <address@hidden>
+
+       * engine/md_arm.h: Fix array start on ARM EABI.
+
+       * engine/unroll_arith.c: Do not use unroller for working with long, 
because
+       of 8 byte aligned CVM word on ARM EABI.
+
 2008-03-24  Klaus Treichel  <address@hidden>
 
        * engine/jitc.c: Add creation of value types (structs/unions) including

Index: engine/md_arm.h
===================================================================
RCS file: /sources/dotgnu-pnet/pnet/engine/md_arm.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- engine/md_arm.h     10 Aug 2003 06:20:09 -0000      1.10
+++ engine/md_arm.h     29 Mar 2008 19:17:23 -0000      1.11
@@ -628,6 +628,19 @@
                        arm_patch((patch), (inst))
 
 /*
+ * Advance reg1 to the first array element. This means adding 4 on EABI
+ * because sizeof(System_Array) is 8 here.
+ */
+#ifdef __ARM_EABI__
+       #define arm_bounds_check_advance(inst, reg1) \
+               do { \
+                       md_add_reg_imm((inst), reg1, 4); \
+               } while (0)
+#else
+       #define arm_bounds_check_advance(inst, reg1)
+#endif
+
+/*
  * Check an array bounds value.  "reg1" points to the array,
  * and "reg2" is the array index to check.  This will advance
  * the pointer in "reg1" past the array bounds value.
@@ -635,6 +648,7 @@
 #define        md_bounds_check(inst,reg1,reg2) \
                        do { \
                                arm_load_advance((inst), ARM_WORK, (reg1)); \
+                               arm_bounds_check_advance((inst), (reg1)); \
                                arm_test_reg_reg((inst), ARM_CMP, (reg2), 
ARM_WORK); \
                        } while (0)
 

Index: engine/unroll_arith.c
===================================================================
RCS file: /sources/dotgnu-pnet/pnet/engine/unroll_arith.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- engine/unroll_arith.c       21 Nov 2005 06:38:40 -0000      1.8
+++ engine/unroll_arith.c       29 Mar 2008 19:17:23 -0000      1.9
@@ -350,7 +350,7 @@
 }
 break;
 
-#ifndef CVM_PPC /* has 8 byte CVMWords */
+#if !defined(CVM_PPC) && !defined(__ARM_EABI__) /* has 8 byte CVMWords */
 
 case COP_LADD:
 {




reply via email to

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