Commit Graph

18 Commits

Author SHA1 Message Date
Rick Reitmaier
7c80afcc4e Bug 546660 - Clean up mess around LINUX, AVMPLUS_LINUX, __linux__ (r+nnethercote) [kpalacz]
Gcc defines linux on linux, other compilers are supported to the
extent that they emulate gcc's behavior

--HG--
extra : convert_revision : 6bb42c345395fb0a6f779723157f5e43d6669016
2010-03-04 12:35:45 -08:00
Rick Reitmaier
140845622b Bug 504202 - MIPS target support (r+graydon,rreitmai) [chris.dearman]
MIPS target support added courtesy of Chris Dearman.

--HG--
extra : convert_revision : 45136ae8db067291bb4b6595f6c4319675012cc5
2010-02-01 10:22:30 -08: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
Edwin Smith
245eaeb9f7 Whitespace hygene (r=me)
--HG--
extra : convert_revision : b7a4852a92d3ceb74592c1da0e1cd0beace84eb5
2009-12-21 15:05:48 -05:00
Graydon Hoare
9d9ae9f4a1 Bug 525293 - Cumulative remainder of changes from tamarin, r=dvander. 2009-10-29 12:29:28 -07:00
Graydon Hoare
a87bf773fa Bug 524587 - remove softfloat guards, restore CodeAlloc ref-ptr, r=gal.
--HG--
extra : rebase_source : b7bca87acdd97bf8f0598c6069f7094a16488eb8
2009-10-27 15:24:12 -07:00
Graydon Hoare
951aacba56 Bug 523952 - typos and cleanup from tamarin, r=gal.
--HG--
extra : rebase_source : da1dcdcc6c1f21f73b2223dcdb611c17a9018190
2009-10-22 14:29:37 -07:00
Graydon Hoare
24d43ed812 Bug 523505 - Followup build fixes, r=gal on IRC. 2009-10-21 19:58:21 -07: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
Andreas Gal
ec9363019f Add a way to flush CodeAllocs without deleting/recreating (515874, r=graydon). 2009-09-12 23:06:51 -07: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