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

Submitter:  Evin Robertson <evin>
Submitted:  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>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

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


There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.


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.13-4b48.
Corresponding source code