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

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

[Dotgnu-pnet-commits] CVS: pnet/engine unroll.c, 1.5, 1.6 unroll_ptr.c,


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/engine unroll.c, 1.5, 1.6 unroll_ptr.c, 1.1, 1.2 unroll_var.c, 1.1, 1.2
Date: Fri, 11 Jul 2003 23:53:00 -0400

Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv24271/engine

Modified Files:
        unroll.c unroll_ptr.c unroll_var.c 
Log Message:


Fix some ARM-related bugs in the generic unroller.


Index: unroll.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/unroll.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** unroll.c    11 Jul 2003 04:24:59 -0000      1.5
--- unroll.c    12 Jul 2003 03:52:58 -0000      1.6
***************
*** 394,397 ****
--- 394,398 ----
                if(MD_IS_NATIVE_REG(reg))
                {
+                       reg &= ~MD_NATIVE_REG_MASK;
                        md_store_membase_word_native
                                (unroll->out, reg, MD_REG_STACK, 
unroll->stackHeight);
***************
*** 403,407 ****
                }
                unroll->stackHeight += sizeof(CVMWord);
-               reg &= ~MD_NATIVE_REG_MASK;
                for(index = 1; index < unroll->pseudoStackSize; ++index)
                {
--- 404,407 ----
***************
*** 1503,1507 ****
  #ifdef UNROLL_DEBUG
        /* Dump the translated code */
!       DumpCode(method, posn.ptr, (int)(unroll.out - posn.ptr));
  #endif
  
--- 1503,1507 ----
  #ifdef UNROLL_DEBUG
        /* Dump the translated code */
!       DumpCode(method, posn.ptr, (int)(((unsigned char *)unroll.out) - 
posn.ptr));
  #endif
  

Index: unroll_ptr.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/unroll_ptr.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** unroll_ptr.c        11 Jul 2003 00:58:26 -0000      1.1
--- unroll_ptr.c        12 Jul 2003 03:52:58 -0000      1.2
***************
*** 597,601 ****
        UNROLL_START();
        GetTopTwoWordRegisters(&unroll, &reg, &reg2,
!                                                  MD_REG1_NATIVE | 
MD_REG2_NATIVE);
        CheckArrayAccess(&unroll, reg, reg2, pc, (unsigned char *)inst);
        md_load_memindex_word_native(unroll.out, reg, reg, reg2, 
MD_ARRAY_HEADER);
--- 597,601 ----
        UNROLL_START();
        GetTopTwoWordRegisters(&unroll, &reg, &reg2,
!                                                  MD_REG1_NATIVE | 
MD_REG2_32BIT);
        CheckArrayAccess(&unroll, reg, reg2, pc, (unsigned char *)inst);
        md_load_memindex_word_native(unroll.out, reg, reg, reg2, 
MD_ARRAY_HEADER);

Index: unroll_var.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/unroll_var.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** unroll_var.c        14 May 2003 06:17:12 -0000      1.1
--- unroll_var.c        12 Jul 2003 03:52:58 -0000      1.2
***************
*** 166,170 ****
        unsigned temp = CVM_ARG_BYTE;
        UNROLL_START();
!       reg = GetCachedWordRegister(&unroll, temp, MD_REG1_NATIVE);
        if(reg != -1)
        {
--- 166,170 ----
        unsigned temp = CVM_ARG_BYTE;
        UNROLL_START();
!       reg = GetCachedWordRegister(&unroll, temp, MD_REG1_32BIT);
        if(reg != -1)
        {
***************
*** 397,401 ****
        {
                /* The top is already in a register, so move it to a new 
register */
!               reg2 = GetWordRegister(&unroll, GetTopRegisterFlags(&unroll));
                if(unroll.pseudoStackSize > 1)
                {
--- 397,402 ----
        {
                /* The top is already in a register, so move it to a new 
register */
!               int flags = GetTopRegisterFlags(&unroll);
!               reg2 = GetWordRegister(&unroll, flags);
                if(unroll.pseudoStackSize > 1)
                {
***************
*** 406,410 ****
                        /* "GetWordRegister" flushed all registers, so the value
                           we want to duplicate is now on the CVM stack */
!                       if(GetTopRegisterFlags(&unroll))
                        {
                                md_load_membase_word_native
--- 407,411 ----
                        /* "GetWordRegister" flushed all registers, so the value
                           we want to duplicate is now on the CVM stack */
!                       if((flags & MD_REGN_NATIVE) != 0)
                        {
                                md_load_membase_word_native
***************
*** 422,432 ****
        else
        {
-       #ifdef IL_NATIVE_INT32
-               /* The top is on the CVM stack */
-               reg = GetWordRegister(&unroll, MD_REG1_32BIT);
-               md_load_membase_word_32
-                               (unroll.out, reg,
-                                MD_REG_STACK, unroll.stackHeight - 
sizeof(CVMWord));
-       #else
                /* We don't know if the top is 32-bit or native, so copy
                   the entire native word but leave it on the CVM stack.
--- 423,426 ----
***************
*** 439,443 ****
                                (unroll.out, MD_REG_0, MD_REG_STACK, 
unroll.stackHeight);
                unroll.stackHeight += sizeof(CVMWord);
-       #endif
        }
        MODIFY_UNROLL_PC(CVM_LEN_NONE);
--- 433,436 ----





reply via email to

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