[kaffe] AWT problem

2003-03-10 Thread Justin Dearing
Hello all,

I'm having a problem with a small awt proram I'm wri


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] AWT problem

2003-03-10 Thread Dalibor Topic

--- Justin Dearing [EMAIL PROTECTED] wrote:
 Hello all,
 
 I'm having a problem with a small awt proram I'm wri

You may have a problem with your internet connection
as well ;)

please repost your bug report.

cheers,
dalibor topic

__
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Re: AWT problem

2003-03-10 Thread Tony Wyatt
Hi Dalibor,

On 10-Mar-03, you wrote:

 
 --- Justin Dearing [EMAIL PROTECTED] wrote:
 Hello all,
 
 I'm having a problem with a small awt proram I'm wri
 
 You may have a problem with your internet connection
 as well ;)
 
Ah, that's a relief. I thought there must be a large fly sitting on my glasses.

tony


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] JIT3 Questions

2003-03-10 Thread Kevin D. Kissell
I've been looking at the problem with JIT3 on MIPS platforms,
and have come across something distinctly suspicious that I know
how to fix in the abstract.  I could use some guidance from other
more experienced JIT hands as to how to best deal with it in practice.

In the generated function prologue in config/mips/jit3-mips.def,
we have...

=== Begin Source Fragment 
define_insn(prologue, prologue_xxC) {
label* l;
Method* meth;
int limit;
int haveint;
int j;
int i;
int fi;
int a;

/* Max_args is the maximum number of arguments this method pushed
 * onto the stack (allowing for alignment).  We always allow for
 * the 4 argument registers.
 */
max_args = NR_ARGUMENTS;

debug_name((prologue:\n));

/* Save and move sp, fp  r31 */
insn_RRR(_ADDU, REG_i1, REG_fp, REG_i0);
insn_RRR(_ADDU, REG_fp, REG_sp, REG_i0);

/* Remember where the framesize should go */
l = (label*)const_int(1);
l-type = Lframe|Labsolute|Lgeneral;
l-at = (uintp)CODEPC;

insn_RRC(_ADDIU, REG_sp, REG_sp, 0); /* framesize */
ldst_RRC(_SW, REG_ra, REG_fp, -4); /* save $ra */
ldst_RRC(_SW, REG_i1, REG_fp, -8); /* save old $fp */
ldst_RRC(_SW, REG_gp, REG_fp, -12); /* save $gp */

debug((mov i1,fp\n));
debug((mov fp,sp\n));
debug((addiu   sp,sp,-framesize\n));
debug((sw  ra,-4(fp)\n));
debug((sw  i1,-8(fp)\n));
debug((sw  gp,-12(fp)\n));

#if defined(USE_JIT_CONSTANT_POOL)
/* Get pointer to constant pool */
insn_RRR(_ADDU, CONSTPOOL_BASE, REG_i25, REG_i0);
ldst_RRC(_SW, REG_gp, REG_fp, -16);
debug((movegp,i25\n));
debug((sw  gp,-16(fp)\n));
#endif

/* Save callee save regs */
for (i = 0; i  8; i++) {
ldst_RRC(_SW, REG_s0+i, REG_fp, -SLOTSIZE*(5+i));
debug((sw  
%s,%d(fp)\n,regname(REG_s0+i),-SLOTSIZE*(4+i)));
}
== End Source Fragment ===

Now, as it happens, the offset generated to save register $16, i=0 in the for
loop above, ends up being -16.  Which is to say, if USE_JIT_CONSTANT_POOL
is defined (which it is by default), the same storage location in the frame is used 
for 
both $16 and $25.  Unfortunately, if I undefine USE_JIT_CONSTANT_POOL
in jit.h, where it is defined, the resulting JIT doesn't work.  In the abstract, it 
should
be a simple problem of upping the frame size by 8 bytes (8 not 4, to preserve 
alignment),
and using a new offset for $25.  However, in the code above, the frame size seems
to be generated automagically to replace a zero constant in the instruction generation
macro with some method-dependent frame size that I speculate somehow already
allows for some number of saved registers in the frame.  Where is this defined?
Are the offsets into the frame for the con
Is the relationship between the saved register context and other values on the
frame fixed, such that I cannot insert a new storage element between them?
I've been trying to code something really sneaky to save/restore the register
behind the back of the rest of the frame management code in a sort of
sub-frame, but the first cut at that doesn't work, and frankly, it's not what
I would consider to be wholesome coding.  How can I adjust the total frame
size to add a new element?

Kevin K.


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] JIT3 Questions

2003-03-10 Thread Kevin D. Kissell
Never mind.  It looks as if there was a bug in the JIT diagnostic trace
that isn't in the generated code itself.  Note:

 /* Save callee save regs */
 for (i = 0; i  8; i++) {
 ldst_RRC(_SW, REG_s0+i, REG_fp, -SLOTSIZE*(5+i));
 debug((sw  
 %s,%d(fp)\n,regname(REG_s0+i),-SLOTSIZE*(4+i)));
 }

SLOTSIZE*(4+i) is being reported as the frame offset used, but it's the
(arguably more correct) value of SLOTSIZE*(5+i) that was being used.

Kevin K.

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] JIT3 Questions

2003-03-10 Thread Timothy Stack
 
 I've been looking at the problem with JIT3 on MIPS platforms,
 and have come across something distinctly suspicious that I know
 how to fix in the abstract.  I could use some guidance from other
 more experienced JIT hands as to how to best deal with it in practice.
 
 In the generated function prologue in config/mips/jit3-mips.def,
 we have...
 
 === Begin Source Fragment 
 define_insn(prologue, prologue_xxC) {
 label* l;
 Method* meth;
 int limit;
 int haveint;
 int j;
 int i;
 int fi;
 int a;
 
 /* Max_args is the maximum number of arguments this method pushed
  * onto the stack (allowing for alignment).  We always allow for
  * the 4 argument registers.
  */
 max_args = NR_ARGUMENTS;
 
 debug_name((prologue:\n));
 
 /* Save and move sp, fp  r31 */
 insn_RRR(_ADDU, REG_i1, REG_fp, REG_i0);
 insn_RRR(_ADDU, REG_fp, REG_sp, REG_i0);
 
 /* Remember where the framesize should go */
 l = (label*)const_int(1);
 l-type = Lframe|Labsolute|Lgeneral;
 l-at = (uintp)CODEPC;
 
 insn_RRC(_ADDIU, REG_sp, REG_sp, 0); /* framesize */
 ldst_RRC(_SW, REG_ra, REG_fp, -4); /* save $ra */
 ldst_RRC(_SW, REG_i1, REG_fp, -8); /* save old $fp */
 ldst_RRC(_SW, REG_gp, REG_fp, -12); /* save $gp */
 
 debug((mov i1,fp\n));
 debug((mov fp,sp\n));
 debug((addiu   sp,sp,-framesize\n));
 debug((sw  ra,-4(fp)\n));
 debug((sw  i1,-8(fp)\n));
 debug((sw  gp,-12(fp)\n));
 
 #if defined(USE_JIT_CONSTANT_POOL)
 /* Get pointer to constant pool */
 insn_RRR(_ADDU, CONSTPOOL_BASE, REG_i25, REG_i0);
 ldst_RRC(_SW, REG_gp, REG_fp, -16);
 debug((movegp,i25\n));
 debug((sw  gp,-16(fp)\n));
 #endif
 
 /* Save callee save regs */
 for (i = 0; i  8; i++) {
 ldst_RRC(_SW, REG_s0+i, REG_fp, -SLOTSIZE*(5+i));
 debug((sw  
 %s,%d(fp)\n,regname(REG_s0+i),-SLOTSIZE*(4+i)));
 }
 == End Source Fragment ===
 
 Now, as it happens, the offset generated to save register $16, i=0 in the for
 loop above, ends up being -16.  Which is to say, if USE_JIT_CONSTANT_POOL
 is defined (which it is by default), the same storage location in the frame is used 
 for 
 both $16 and $25.  Unfortunately, if I undefine USE_JIT_CONSTANT_POOL
 in jit.h, where it is defined, the resulting JIT doesn't work.  In the abstract, it 
 should
 be a simple problem of upping the frame size by 8 bytes (8 not 4, to preserve 
 alignment),
 and using a new offset for $25.  However, in the code above, the frame size seems
 to be generated automagically to replace a zero constant in the instruction 
 generation
 macro with some method-dependent frame size that I speculate somehow already
 allows for some number of saved registers in the frame.  Where is this defined?
 Are the offsets into the frame for the con
 Is the relationship between the saved register context and other values on the
 frame fixed, such that I cannot insert a new storage element between them?
 I've been trying to code something really sneaky to save/restore the register
 behind the back of the rest of the frame management code in a sort of
 sub-frame, but the first cut at that doesn't work, and frankly, it's not what
 I would consider to be wholesome coding.  How can I adjust the total frame
 size to add a new element?
 
 Kevin K.
 
 
 ___
 kaffe mailing list
 [EMAIL PROTECTED]
 http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
 


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] JIT3 Questions

2003-03-10 Thread Timothy Stack

ops, sorry about the previous email

 
 I've been looking at the problem with JIT3 on MIPS platforms,
 and have come across something distinctly suspicious that I know
 how to fix in the abstract.  I could use some guidance from other
 more experienced JIT hands as to how to best deal with it in practice.
 
 In the generated function prologue in config/mips/jit3-mips.def,
 we have...
 
 === Begin Source Fragment 
 define_insn(prologue, prologue_xxC) {
 label* l;
 Method* meth;
 int limit;
 int haveint;
 int j;
 int i;
 int fi;
 int a;
 
 /* Max_args is the maximum number of arguments this method pushed
  * onto the stack (allowing for alignment).  We always allow for
  * the 4 argument registers.
  */
 max_args = NR_ARGUMENTS;
 
 debug_name((prologue:\n));
 
 /* Save and move sp, fp  r31 */
 insn_RRR(_ADDU, REG_i1, REG_fp, REG_i0);
 insn_RRR(_ADDU, REG_fp, REG_sp, REG_i0);
 
 /* Remember where the framesize should go */
 l = (label*)const_int(1);
 l-type = Lframe|Labsolute|Lgeneral;
 l-at = (uintp)CODEPC;
 
 insn_RRC(_ADDIU, REG_sp, REG_sp, 0); /* framesize */
 ldst_RRC(_SW, REG_ra, REG_fp, -4); /* save $ra */
 ldst_RRC(_SW, REG_i1, REG_fp, -8); /* save old $fp */
 ldst_RRC(_SW, REG_gp, REG_fp, -12); /* save $gp */
 
 debug((mov i1,fp\n));
 debug((mov fp,sp\n));
 debug((addiu   sp,sp,-framesize\n));
 debug((sw  ra,-4(fp)\n));
 debug((sw  i1,-8(fp)\n));
 debug((sw  gp,-12(fp)\n));
 
 #if defined(USE_JIT_CONSTANT_POOL)
 /* Get pointer to constant pool */
 insn_RRR(_ADDU, CONSTPOOL_BASE, REG_i25, REG_i0);
 ldst_RRC(_SW, REG_gp, REG_fp, -16);
 debug((movegp,i25\n));
 debug((sw  gp,-16(fp)\n));
 #endif
 
 /* Save callee save regs */
 for (i = 0; i  8; i++) {
 ldst_RRC(_SW, REG_s0+i, REG_fp, -SLOTSIZE*(5+i));
 debug((sw  
 %s,%d(fp)\n,regname(REG_s0+i),-SLOTSIZE*(4+i)));
 }
 == End Source Fragment ===
 
 Now, as it happens, the offset generated to save register $16, i=0 in the for
 loop above, ends up being -16.  Which is to say, if USE_JIT_CONSTANT_POOL
 is defined (which it is by default), the same storage location in the frame is used 
 for 
 both $16 and $25.  Unfortunately, if I undefine USE_JIT_CONSTANT_POOL
 in jit.h, where it is defined, the resulting JIT doesn't work.  In the abstract, it 
 should
 be a simple problem of upping the frame size by 8 bytes (8 not 4, to preserve 
 alignment),
 and using a new offset for $25.  However, in the code above, the frame size seems
 to be generated automagically to replace a zero constant in the instruction 
 generation
 macro with some method-dependent frame size that I speculate somehow already
 allows for some number of saved registers in the frame.  Where is this defined?

I think the 'label' stuff does what you want.  In the mips case the code 
that does the replacement is defined in jit.h:

#define LABEL_Lframe(P,V,L) \
{ \
int framesize = FRAMESIZE; \
assert((framesize  0xF000) == 0); \
*(P) = (*(P)  0x) | ((-framesize)  0x); \
}

...

#define EXTRA_LABELS(P,D,L) \
case Lframe:LABEL_Lframe(P,D,L);break;  \
...

And the label is setup with this line from the prologue:

/* Remember where the framesize should go */
l = (label*)const_int(1);
l-type = Lframe|Labsolute|Lgeneral;
l-at = (uintp)CODEPC;

Then, when the jitter is doing post processing of the code it will 
execute the LABEL_Lframe macro to replace the value at 'l-at'.

 Is the relationship between the saved register context and other values on the
 frame fixed, such that I cannot insert a new storage element between them?

Not really.  You determine the layout of the stack frame so you can do 
whatever you want.  Its mostly a matter of tweaking the label macros 
appropriately.

 I've been trying to code something really sneaky to save/restore the register
 behind the back of the rest of the frame management code in a sort of
 sub-frame, but the first cut at that doesn't work, and frankly, it's not what
 I would consider to be wholesome coding.

hmm...  Can it not be worked into the existing frame management stuff?  
This would benefit other architectures as well.

 How can I adjust the total frame size to add a new element?

Just pump the 'framesize' value in the LABEL_Lframe() macro.

 Kevin K.

tim

___
kaffe mailing list
[EMAIL PROTECTED]

[kaffe] .properties files with Kaffe

2003-03-10 Thread Tanguy Monfort



Hello,

As I am new with Kaffe, the fhis question may 
appear to be stupid :)

Does anybody knowhow I can use ".properties" 
files like "javax.comm.properties" with Kaffe ?

Thanks by advance.

Best regards,

Tanguy Monfort.


Re: [kaffe] .properties files with Kaffe

2003-03-10 Thread Dalibor Topic
Hi Tanguy,

--- Tanguy Monfort [EMAIL PROTECTED] wrote:

 Does anybody know how I can use .properties files
 like javax.comm.properties with Kaffe ?

I would expect it to work the same like with Sun's
impementation:

http://javaalmanac.com/egs/java.util/Props.html

cheers,
dalibor topic

__
Do you Yahoo!?
Yahoo! Web Hosting - establish your business online
http://webhosting.yahoo.com

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe