Commit Graph

21 Commits

Author SHA1 Message Date
William Maddox
f42400812e Bug 560639 - Reinstate CodeAlloc::size(const CodeList*) recently removed as "dead" (r=edwsmith+ nnethercote+)
--HG--
extra : convert_revision : aec5028a49e90c4be18de667a2807896e3b689ad
2010-05-26 17:29:16 -07:00
Nicholas Nethercote
3c1d859013 Backout the last NJ-to-TM merge (TM revisions b44daa2c0503 to b3167f8f9459, inclusive) because it caused lots of oranges. r=me. 2010-06-03 21:28:18 -07:00
William Maddox
5ccfce19cc Bug 560639 - Reinstate CodeAlloc::size(const CodeList*) recently removed as "dead" (r=edwsmith+ nnethercote+)
--HG--
extra : convert_revision : aec5028a49e90c4be18de667a2807896e3b689ad
2010-05-26 17:29:16 -07:00
Edwin Smith
069062a9f7 Fixed whitespace drift.
--HG--
extra : convert_revision : e2770eef5208a99078207d999ba2d84346651db8
2010-04-26 10:53:32 -04:00
Nicholas Nethercote
3a4a3d6046 Bug 557991 - nanojit: remove dead code from CodeAlloc. r=edwsmith.
--HG--
extra : convert_revision : 335ca0fff2a7ac451d0fa1c11594f6dbacada648
2010-04-08 18:33:21 -07:00
Edwin Smith
8e9b1ee383 CodeAlloc changes to eliminate dependency on 4K system page size (bug 545295 r=edwsmith+)
--HG--
extra : convert_revision : f1734da5dae9a73cf52692fc8dd72c25d0f12a14
2010-04-05 16:17:01 -04:00
Edwin Smith
605b734ba8 (second try) Adds protect/unprotect API to CodeAlloc (bug 460993 r=nnethercote,rreitmai sr=gal)
Removes calls to VMPI_setPageProtection from CodeAlloc, and adds a new
protect/unprotect API to CodeAlloc, along with an SPI for the vm to implement
actual page protection.

It is up to the VM to call codeAlloc->protect() before executing jit'd code,
but CodeAlloc will internally call unprotect() before modifying blocks, as code
is generated.  If the VM's implementation of allocCodePage allocates memory
as RWX, then the new protection api's can be ignored and the implementations
of markCodeChunkExec/Write can be empty functions.

A flag per code chunk is used so that only modified pages are unprotected and
reprotected.

CodeAlloc never calls VMPI_setPageProtection any more, so platform abstractions
for this can be encapsulated in the CodeAlloc SPI methods.

nanojit/avmplus.cpp was modified to call VMPI_setPageProtection on the platforms
that didn't already allocate code memory as RWX.  Since those callsites are platform
specific and the only place we call VMPI_setPageProtection, the code could be further
simplified.

--HG--
extra : convert_revision : 3c9030f46c15cc0f033592db6ba96674e1f5173b
2010-01-22 15:18:12 -05:00
Nicholas Nethercote
3dd103b579 Backed out changeset (by hand due to update-nanojit difficulties) 69d5a3454a6e (bug 460993), avmplus.cpp changes were bogus. 2010-01-22 08:43:09 +11:00
Edwin Smith
b1f006af09 Adds protect/unprotect API to CodeAlloc (bug 460993 r=nnethercote,rreitmai sr=gal)
Removes calls to VMPI_setPageProtection from CodeAlloc, and adds a new
protect/unprotect API to CodeAlloc, along with an SPI for the vm to implement
actual page protection.

It is up to the VM to call codeAlloc->protect() before executing jit'd code,
but CodeAlloc will internally call unprotect() before modifying blocks, as code
is generated.  If the VM's implementation of allocCodePage allocates memory
as RWX, then the new protection api's can be ignored and the implementations
of markCodeChunkExec/Write can be empty functions.

A flag per code chunk is used so that only modified pages are unprotected and
reprotected.

CodeAlloc never calls VMPI_setPageProtection any more, so platform abstractions
for this can be encapsulated in the CodeAlloc SPI methods.

nanojit/avmplus.cpp was modified to call VMPI_setPageProtection on the platforms
that didn't already allocate code memory as RWX.  Since those callsites are platform
specific and the only place we call VMPI_setPageProtection, the code could be further
simplified.

--HG--
extra : convert_revision : a1002278492b012b727550db2fb928faa6bee36b
2010-01-20 13:32:02 -05:00
Graydon Hoare
399e52afa4 Bug 523505 - move icache flushing logic around, r=gal. 2009-10-21 16:26:52 -07:00
Graydon Hoare
c421bb6e66 Bug 517530 - NJ merge: whitespace, equivalent code, PPC churn, r=dvander. 2009-09-18 13:31:09 -07:00
Graydon Hoare
963fd74e53 Bug 516620 - Kill off residue of MMgc, r=gal.
--HG--
extra : rebase_source : 1bd814f499014507fb60ad554687b12b9fe09a3e
2009-09-10 16:29:36 -07:00
Graydon Hoare
2521578c2d Backed out changeset 35777195800a, perf regression. 2009-09-14 21:07:57 -07:00
Graydon Hoare
5d33edd2e9 Bug 516620 - Kill off residue of MMgc, r=gal. 2009-09-10 16:29:36 -07:00
Andreas Gal
ec9363019f Add a way to flush CodeAllocs without deleting/recreating (515874, r=graydon). 2009-09-12 23:06:51 -07:00
Edwin Smith
74be99c7ff Bug 509609 - Don't allocate CodeAlloc with GC and dont extend GCFinalizedObject, r=dvander. 2009-08-04 14:53:56 -04:00
Graydon Hoare
b8154cc364 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Graydon Hoare
2e92fcbbe3 Backed out changeset d0be9284ea67 2009-07-30 14:28:26 -07:00
Graydon Hoare
caf3859643 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Graydon Hoare
e404f743cd Bug 503593 - NJ: whitespace and modeline cleanup, r=gal.
--HG--
extra : rebase_source : c7fcc1acaadb2264796a3ee7a20866eecc4dc484
2009-07-10 12:58:34 -07:00
Graydon Hoare
203d645160 Bug 503437 - NJ: Commit missing CodeAlloc and NativePPC files from Adobe, r=gal.
--HG--
extra : rebase_source : 51a1d5fdc3c8ce0492f5986612a06858f2c4a5da
2009-07-10 11:21:53 -07:00