self modifying executables

CTho9305

Elite Member
Jul 26, 2000
9,214
1
81
how does a harvard architecture handle self-modifying code? i've always been told the writing has to take place in the data cache, and the instruction cache marked invalid. how is it implemented?
 

Burner

Member
Oct 25, 1999
85
0
0
most likely it gives you a protection fault.
I don't think many executeables do this anymore. They used to because of the lack of available memory.
The OS should forbid doing this.

I think you can do this with explicit software calls to flush the cache. This is likely what current architectures are like.
You can also try to see if you hit in the i cache and flush it if you write back. I doubt any do this because of the extreme rarity of the code, and it would increase cache access time.
 

BurntKooshie

Diamond Member
Oct 9, 1999
4,204
0
0
I know that both AMD and Intel urge developers not to use self-modifying code for preformance reasons....
 

otlg25

Senior member
Aug 20, 2001
394
0
0
The instruction cache is invalidated when you write to the corresponding memory region that the instruction lives in. On modern processors this causes the processor to fault, invalidate/flush the cache, write out the datacache line (the one that contains the instruction), dump all instructions which are currently in flight, and reload everything from step 1. Also any predecode (or similar) bits are tossed.. and if you do it on a P4, you may as well turn the trace cache off

Oh yeah and I would LOVE to see this code run on a transmeta CPU.. I bet it really makes a mess of code-morphing

Steve
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |