Commit Graph

49 Commits

Author SHA1 Message Date
Edwin Smith
02b8d2a422 Fix PPC bustage for bug 507089 (r=me)
--HG--
extra : convert_revision : 0a31a14aba7746483fe8ff6b8ab287e1784de846
2010-03-23 15:09:52 -04:00
Nicholas Nethercote
070e390dac Bug 507089 - TM/nanojit: prepare to add get/set methods for CallInfo::_argtypes. r=edwsmith.
--HG--
extra : convert_revision : 55f02d7976752940a9f328d440fb6601ee2dc9f4
2010-03-21 19:47:02 -07:00
Nicholas Nethercote
5d4adc4b29 Bug 552374 - nanojit: clean up asm_spill() and friends a little. r=edwsmith.
--HG--
extra : convert_revision : 5806c6f3bf1257fc3142f5eb8718e01071bcbb35
2010-03-21 15:08:03 -07:00
Nicholas Nethercote
5ce0cdcf01 Bug 534310 - nanojit: split asm_quad() into asm_immq() and asm_immf(). r=edwsmith.
--HG--
extra : convert_revision : 04a7a273ac34034a84391f0e9b965220f19200be
2010-03-18 10:21:02 +11:00
Nicholas Nethercote
e9aaac654a Bug 545274 - nanojit: start adding alias info to loads/stores/calls. r=rreitmai.
--HG--
extra : convert_revision : 4adbf1bbb16cf4751b46a49a4f9c474c0ab0a3b9
2010-03-02 12:43:20 +11:00
Nicholas Nethercote
10443de653 Bug 535705 - nanojit: finish regstate update fixes for i386. r=edwsmith.
--HG--
extra : convert_revision : 05949faa5b451d5452c9b5eb95296a53b555dda1
2010-03-01 14:57:19 +11:00
Nicholas Nethercote
764bc7aaa8 Bug 542932 - nanojit: make opcode range checks safer. r=stejohns.
--HG--
extra : convert_revision : a5291bc7b0cef4f41f4180db6388edebdbb4c208
2010-03-01 12:02:01 +11:00
Nicholas Nethercote
23edcdcbce Bug 535706 - nanojit: fix regstate updates for X64. r=edwsmith.
--HG--
extra : convert_revision : 6fb5f71fba861a333e17de644fe49de60bb7a1bd
2010-03-01 09:46:17 +11:00
Nicholas Nethercote
a361abc6fa Bug 539874 - nanojit: remove LIR_ov. r=edwsmith, Jacob.Bramley.
--HG--
extra : convert_revision : eb5f9b4138530e15b3ffd478071bf98bb7495405
2010-02-19 15:04:55 +11:00
Steven Johnson
eecc554117 change 71a045ccce43 inadvertently backed out change b8f64e82da3f; this restores the latter (r=stejohns)
--HG--
extra : convert_revision : 2fbb1bbebee5e0872ea3d485a40d7f71f785f319
2010-02-16 11:59:55 -08:00
Nicholas Nethercote
78e2d52f98 merge
--HG--
extra : convert_revision : 035a5165bc8bbf7940415d4802bf9b14d1226740
2010-02-15 17:24:21 +11:00
Nicholas Nethercote
66b0d6df6b Bug 507089 - TM/nanojit: introduce get/set methods for CallInfo::_argtypes. r=edwsmith.
--HG--
extra : convert_revision : 8075a19e11565e6de5f33ed829fe435e47e116ca
2010-02-15 11:01:04 +11:00
Nicholas Nethercote
2481388fac Bug 542326 - nanojit: add NJ_SOFTFLOAT_SUPPORTED, and only compile in support for non-universal opcodes on platforms that use them. r=stejohns,edwsmith.
--HG--
extra : convert_revision : 990d84e8d841139009cb2728297d81e8fc4aad27
2010-02-12 12:30:16 +11:00
Nicholas Nethercote
b61775ba66 Bug 540368 - nanojit: split LIR_qlo, LIR_live and LIR_ret into two opcodes each to faciliate LIR type-checking (NJ-specific part). r=edwsmith.
--HG--
extra : convert_revision : 54cf6d39a21dc1e209d3e0e48bb6c2b61ab5f909
2010-01-28 08:45:29 +11:00
Edwin Smith
1cd47593e7 Fix unused local variable warning in NativePPC.cpp (r=me)
--HG--
extra : convert_revision : e58ebcf59d3eb1a75a4ad41df32db2794732284b
2010-01-27 10:17:19 -05:00
Nicholas Nethercote
b2dcc26c38 Bug 538924 - nanojit: rework reservations. r=edwsmith.
--HG--
extra : convert_revision : 51a78a175b1074c933323e0bf24d6f64b5c6c35d
2010-01-25 10:39:36 +11:00
Nicholas Nethercote
a0704e558a Bug 540351 - nanojit: refactor hint() and registerAlloc(). r=rreitmai.
--HG--
extra : convert_revision : fa4f34a51239317d312b9388f2eb9ca2631b463e
2010-01-25 09:40:11 +11:00
Nicholas Nethercote
43cc6ace57 Bug 534313 - nanojit: split isQuad() into isI64() + isF64() + is64(). r=dvander,stejohns.
--HG--
extra : convert_revision : f24a70adec4c24dffd3a9c6c3572c5755938291a
2010-01-25 08:25:04 +11:00
Steven Johnson
df649734ff add stub implementations of asm_f2i on PPC and Sparc. add NJ_F2I_SUPPORTED compiletime flag. (r=rreitmai,bug=523251)
--HG--
extra : convert_revision : 387c73e51e77eb47b3344678175208f13390dd02
2010-01-18 15:26:49 -08:00
Nicholas Nethercote
0c9683a5c5 Bug 539379 - TM: Crash [@ ExecuteTrace] or [@ ExecuteTree]. r=edwsmith.
--HG--
extra : convert_revision : a5115ee971c8496182e9b4f6847ad91619b4a585
2010-01-15 15:07:32 +11:00
Steven Johnson
f29b5c8836 nanojit/NativePPC.cpp: PPC backend needs to ensure caller parameter area is at least 8 registers in size (r=rreitmai,r=nnethercote,bug=539270)
--HG--
extra : convert_revision : 8cc0cbcb83e2ac84078705b23a5232a6d8518a6c
2010-01-12 13:49:50 -08:00
Edwin Smith
313f22a44e Lazy-allocate code memory for side exits (bug 538393 r=nnethercote+)
--HG--
extra : convert_revision : 97bacc5dff62389b91741265ca30dc73a2a8f532
2010-01-12 08:58:14 -05:00
Nicholas Nethercote
1022818501 Bug 520714 - nanojit: distinguish 64-bit int and float loads/stores. r=gal,rreitmai.
--HG--
extra : convert_revision : a19809f7ba60b4381b77b84363bebf0ff7cf9629
2010-01-05 14:03:49 +11:00
Edwin Smith
169edd70d1 Fix PPC alignment of immediate quads (usually doubles) (bug 477779 r=stejohns+ r=rreitmai+)
--HG--
extra : convert_revision : 5218b6ab33db0ebfbb8c555a6d42d2074c9c3a8e
2009-12-24 10:13:32 -05:00
Nicholas Nethercote
1c0554f24b Bug 524640 - nanojit: avoid calling releaseRegisters() twice. r=gal.
--HG--
extra : convert_revision : 5af925a7a5ceae6ab8bb9219585bfacccdf56ef0
2009-12-22 21:37:49 +11:00
Steven Johnson
f6bd527266 Encapsulate AR structure (r=nnethercote,bug=473769)
--HG--
extra : convert_revision : a2bdfa990384135e642f027d79dd7c01c48e8994
2009-12-21 10:51:57 -08:00
Nicholas Nethercote
387808d7b9 Bug 527178 - NJ: all our efforts at handling valid displacements are defeated (take 2a). r=graydon,gal.
--HG--
extra : convert_revision : c2be4b89e09d6dd1b8c83b14240d00d57c084419
2009-12-18 08:24:39 +11:00
Nicholas Nethercote
d0b6417b4c Backed out changeset 2bd8a736808d, caused ARM bustage.
--HG--
extra : convert_revision : 7fd3a1258dbf608d4c62862029d1a30317f7b9e5
2009-12-15 13:16:54 +11:00
Nicholas Nethercote
84f5fd65b2 Bug 527178 - NJ: all our efforts at handling valid displacements are defeated (take 2). r=graydon,gal.
--HG--
extra : convert_revision : 2bd8a736808d4a2582233d05832f11899ccc2fd7
2009-12-15 12:54:26 +11:00
Nicholas Nethercote
a4408cec60 Bug 531347 - nanojit: rejig asm_call(). r=edwsmith.
--HG--
extra : convert_revision : 1c68f440a757a8cb002c8da9118d034a9c7d4fab
2009-12-01 18:50:07 -08:00
Steven Johnson
45a6270f4c Add new opcodes to allow load/store of 8-bit int, 16-bit int, and 32-bit floats. Initially implemented only for i386, other backend implementations to follow. See https://bugzilla.mozilla.org/show_bug.cgi?id=527083 for more detail. (r=rreitmai, nnethercote)
--HG--
extra : convert_revision : 7c5395e67078266797de2e2de6555974ee61acf7
2009-12-01 16:50:03 -08:00
Nicholas Nethercote
dfc1dd039d Bug 515313 - nanojit: finish killing reservations. r=edwsmith.
--HG--
extra : convert_revision : 1b6cb808f3048c25857613fa6e77e865fee51d8e
2009-11-24 23:00:23 -08:00
Nicholas Nethercote
a603d864d1 Bug 512181 - nanojit: rework TMFLAGS=assembly,regalloc,activation. r=edwsmith.
--HG--
extra : convert_revision : 43e64a1135f17761aad95ee7ce2d1692aa937579
2009-11-24 22:38:51 -08:00
Nicholas Nethercote
b33368aede Bug 525379 - nanojit: make the _nIns/_nExitIns swap hack more consistent. r=edwsmith.
--HG--
extra : convert_revision : bad9394918255f4afcbff259153dc9d8c9afad25
2009-11-24 14:56:33 +11:00
Edwin Smith
4a6316d03b Suppress unused parameter warning in PPC backend (r=me)
--HG--
extra : convert_revision : 4ac63c016a95f1c58082824cf6813692f51ae917
2009-11-19 10:09:38 -05:00
Nicholas Nethercote
4ca10e2ea0 Bug 515311 - nanojit: kill reservations in the PPC backend. r=rreitmai.
--HG--
extra : convert_revision : e0a0d3915764c663ccf1f0b6bedc14c7303ad239
2009-11-19 10:41:16 +11:00
Edwin Smith
d7a89e77b5 Add LIR_jtbl instruction, and patch up lirasm to remove LIR_ji (bug 465582 r=nnethercote+, rreitmai+)
new opcode: LIR_jtbl.  jtbl takes a uint32_t index and a table of label
references (LIns**), representing a jump to one of the labels.

the index must be in range (range checking is not included in the opcode).

the table is allocated in memory at least as long lived as the LIR; this is
accomplished by doing the allocation from the same Allocator used by LirBuffer.

In the x86 backend, this is implemented with a simple jmp [R*4+ADDR] where ADDR
is the address of the table.  I added a new dataAllocator (Allocator&)
parameter to Assembler, which is used for allocating data along with code (data
& code have same lifetime).  The x86 backend allocates the final table of
addresses from this allocator and embeds the pointer to the table in code.

In other backends more than one instruction must be used due to limited range
of the constant part of the addressing mode (ppc, arm), or non-support for
full-range pc-relative indexing (x64, ppc64).

Anyone generating LIR code for use with LIR_jtbl must also generate a
LIR_regfence instruction after each label reachable by a forwards edge
from LIR_jtbl.  This is to workaround the register allocator's inability
to merge register states between 2 or more pre-existing targets.  LIR_regfence
is not required for backwards edges.

--HG--
extra : convert_revision : ee709eaaa30f720f77ab863ba4c9e6d10d69982b
2009-11-11 14:38:12 -05:00
Graydon Hoare
53519f8859 Bug 527178 - Improve valid-displacement checks, r=edwsmith, r=dvander.
--HG--
extra : rebase_source : b95743173b293bd4a2a54b37124d4e85cb16d425
extra : convert_revision : eadf0b1a3fd0bd28303b12b905eb94a09a2ade1b
2009-11-10 14:55:35 -08:00
Graydon Hoare
d88df29f9d Bug 522316 - more miscellaneous drift from tamarin, r=dvander.
--HG--
extra : rebase_source : 7b92362823d4ef60ebced322c1588b6cd9f445e4
2009-10-14 13:48:00 -07:00
Graydon Hoare
c421bb6e66 Bug 517530 - NJ merge: whitespace, equivalent code, PPC churn, r=dvander. 2009-09-18 13:31:09 -07:00
Nicholas Nethercote
65a88a5c2c Bug 514625 - nanojit: kill AR::highwatermark. r=edwsmith. 2009-09-08 09:11:53 +10:00
Andreas Gal
292f7e316d Don't restore FP twice when exiting a fragment (513787, r=rreitmai). 2009-08-31 16:35:50 -07:00
Nicholas Nethercote
e7fbdc867c Bug 512398 - nanojit: kill RegAlloc::used. r=edwsmith. 2009-08-31 15:02:08 +10:00
Andreas Gal
84094cb9d0 Remove remainder of now unused LIR_loop support code (513535, r=dvander). 2009-08-29 23:26:54 -07:00
David Anderson
83d28f8a00 Merged LIR_alloc changes from tamarin-redux (bug 513069, r=gal). 2009-08-27 13:22:30 -07:00
Nicholas Nethercote
c414a79e4f Bug 501232 - nanojit: remove LIR_2 (3rd attempt!). r=edwsmith,gal. 2009-07-22 10:28:25 +10:00
Nicholas Nethercote
acc2840ef2 Bug 504213: nanojit: rename LIR_alloc, LIR_addp, LIR_param to match tamarin-redux. r=graydon. 2009-07-15 10:00:43 +10: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