patchDotGNU Portable.NET - Patches: patch #3547, Libjit register overwrite for...


You are not allowed to post comments on this tracker with your current authentication level.

patch #3547: Libjit register overwrite for store element

Submitted by:  Evin Robertson <evin>
Submitted on:  Fri 03 Dec 2004 08:06:14 PM UTC  
Category:  None Priority:  5 - Normal
Status:  None Privacy:  Public
Assigned to:  None Open/Closed:  Open

Fri 03 Dec 2004 08:06:14 PM UTC, original submission:  

Same problem as before with store relative overwriting the destination address with the value.  This time with store element.

The register allocater seems to get confused if either the destination or the value being written are constants.  Segmentation faults result.

To work around this, I check for immediates like you did before.  I added [imm, reg, imm] and [imm, reg, reg] and [reg, reg, imm] modes for the store element opcodes.

However, the gen-sel tool doesn't like multiple immediates (it will overwrite one with the other).  So I reworked it to take up to 8 registers, and 8 immediates.  The names are reg1 to reg8 and imm_value1 to imm_value8.  A few places in the x86 sel file thus needed a 'reg' changed to a 'reg1'.

If you apply patch #3546 it will need its 'reg' changed to 'reg1' as well.

Evin Robertson <evin>


Attached Files
file #8125:  jitreg.patch added by evin (8KiB - application/octet-stream - Multiple immediates for gen-sel and correction for store element)


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


Do you think this task is very important?
If so, you can add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.




Follow 2 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2004-12-03 evin Attached File- => Added jitreg.patch, #3915
    Carbon-Copy- => Added rweather

Back to the top

Powered by Savane 3.5