[Top][All Lists]
[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, ®, ®2,
! 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, ®, ®2,
! 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 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [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,
Rhys Weatherley <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnet ChangeLog,1.2546,1.2547
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnet/engine arm_codegen.h, 1.3, 1.4 md_arm.h, 1.6, 1.7
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnet ChangeLog,1.2546,1.2547
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnet/engine arm_codegen.h, 1.3, 1.4 md_arm.h, 1.6, 1.7
- Index(es):