3 ms·
> Which bit do you not understand? How you are disagreeing with me, then? The actual page table entries that the ARM CPU looks at will never mark a page contai
by anyfoo 5y ago
> Which bit do you not understand?
How you are disagreeing with me, then? The actual page table entries that the ARM CPU looks at will never mark a page containing x86 code as executable. x86 execution bit semantics are implemented, but on a different layer. From the ARM CPU's POV, the x86 code is always just data.
- chrisseaton 5y ago> those are not something the x86 code knows about The implementation of AMD64 is in software. It knows about page executable bits. The 'x86' code knows about them. Again, how do you think things like V8 and the JVM work on Rosetta otherwise?
- anyfoo 5y ago> The implementation of AMD64 is in software. It knows about page executable bits. The 'x86' code knows about them. Where did I claim anything else? The thing I claimed the x86 code does not know about is the pages that contain the translated ARM code, which are distinct from the pages that contain the x86 code. The former pages are marked executable in the actual page tables, the latter pages have a software executable bit in the kernel, but are not marked as such in the actual page tables. > Again, how do you think things like V8 and the JVM work on Rosetta otherwise? Did I write something confusing that gave the wrong impression? My last answer says: "x86 execution bit semantics are implemented, but on a different layer".