Commit Graph

114 Commits

Author SHA1 Message Date
Nicholas Nethercote
a5a988c88c Bug 539629 - lirasm: don't have two ways of running the tests (TM-specific part). r=graydon. 2010-01-21 13:07:59 +11:00
Nicholas Nethercote
59368f63e2 Bug 539629 - lirasm: don't have two ways of running the tests (NJ-specific part). r=graydon.
--HG--
extra : convert_revision : c41f7c86b3cd3c2019189f941daa47f311959789
2010-01-21 12:59:56 +11:00
Nicholas Nethercote
a7a593136b Bug 538538 follow-up: random-opt.{in,out} weren't added. r=graydon,stejohns.
--HG--
extra : convert_revision : 874d96dc44813f4141e232ea98fa3f4b2d6474fc
2010-01-18 16:34:23 +11:00
Nicholas Nethercote
04deac1562 Bug 538538 - lirasm: don't run the optimizers, except when using --random (NJ-specific part). r=graydon,stejohns.
--HG--
extra : convert_revision : 7ab1e0842f7dd1807c11578a34e5e95884a7e6dc
2010-01-15 08:59:19 +11:00
Vladimir Vukicevic
78c3d13a0e b=523251; add LIR_f2i; r=njn,edwsmith
--HG--
extra : convert_revision : 95e6284a8725404dfb1f2685e1ee5efdc334d169
2010-01-13 14:40:35 -08:00
Nicholas Nethercote
343b23f126 Bug 536293 - nanojit: use a bigger --random size with 'make check' (follow-up). r=me.
--HG--
extra : convert_revision : 3f09056fb0a7e3c7c6ae65eba7d58d095bd0c059
2010-01-12 16:34:41 +11:00
Vladimir Vukicevic
37cc5c283f Backed out changeset fea4da580994 -- need to split LIR_f2i into nj-central and tm patches 2010-01-11 21:54:02 -08:00
Vladimir Vukicevic
373168d7d3 b=523251; add LIR_f2i; r=gal 2010-01-11 21:41:20 -08:00
Nicholas Nethercote
b3361ed5f3 Bug 538060 - nanojit: improve 64-bit loads and stores in the X64 back-end. r=gal,rreitmai,edwsmith.
--HG--
extra : convert_revision : 1fd416d0954dc667073f3a92087c01fc23e5c3aa
2010-01-11 15:51:49 +11: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
Nicholas Nethercote
10ffb4c3ce WinNT bustage fix for bug 536288. r=me.
--HG--
extra : convert_revision : 427799622bd9eddf258b8b339b3c9a093b9cca04
2009-12-22 21:41:40 +11:00
Nicholas Nethercote
e34229bf2e lirasm: test LIR_alloc more thoroughly with --random. r=stejohns.
--HG--
extra : convert_revision : 7f70f215101b86275de319f714aa5da665732a66
2009-12-22 15:52:16 +11:00
Nicholas Nethercote
2c6fd78104 Bug 504507 - nanojit: kill LIR64 (NJ-only part). r=gal.
--HG--
extra : convert_revision : 2271d9cb2d87970d20befb51dbc7092c830a4e10
2009-12-09 15:49:15 -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
Leon Sha<leon.sha@sun.com>
e93e6c4af5 Bug 530979 - NJ: Build errors for lirasm.cpp on solaris with sun studio. r=graydon
--HG--
extra : convert_revision : 69ef86e45856c850accc542111053c4387a8b804
2009-11-26 09:21:05 +08:00
Nicholas Nethercote
90a5b3e9bc Bug 505662 - nanojit: kill operandCount. r=graydon,edwsmith.
--HG--
extra : convert_revision : ab7d225a3c8b1562eb74336099abc564f770e7f3
2009-11-24 22:21:27 -08:00
Jacob Bramley
9e77d13c80 Add Nanojit configuration flags (such as --sse) to lirasm. (bug 526974, r=nnethercote)
--HG--
extra : convert_revision : baa27feb8fb4fdaf1ecb0839c4bd468e83da2aeb
2009-11-24 11:05:20 +00:00
Nicholas Nethercote
8ec279f9f4 Bug 529709 - lirasm: 'not' is a unary operator. r=graydon.
--HG--
extra : convert_revision : f26d4cf0e8091d41ecb5b48b849d63dce56ec259
2009-11-23 11:01:02 +11:00
Graydon Hoare
ec80c24575 Bug 528320 - Improve warning-handling on windows, r=rreitmai.
--HG--
extra : convert_revision : c1dd9d0db4cf07210025b69e852f2ea43275a759
2009-11-12 15:07:31 -08: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
Jacob Bramley
9d5d377b24 Fix LIR_ov for LIR_mul on ARM. (bug 521161, r=gal)
--HG--
extra : convert_revision : 4d16a7956f99c889899f35fbd0ad3a9fb0c12e0d
2009-11-10 08:19:04 +00:00
Graydon Hoare
3d858cb714 Bug 527139 - Fix lirasm's use of integer-divide on non-intel platforms, r=rreitmai.
--HG--
extra : convert_revision : f5bbb9569c737865a7ff88dde0fb370fe2862c01
2009-11-06 16:01:11 -08:00
Graydon Hoare
56de82afc0 Bug 525412 - remove the nonsensical 'no fastcall' check in lirasm, r=dvander.
--HG--
extra : convert_revision : 280b05e48279a2dfa1226915ad8e96f0ef3a19ff
2009-11-06 15:44:00 -08:00
David Anderson
db7ed2cb48 Reorganized the fragment class hierarchy (bug 524620, r=gal). 2009-11-05 15:04:54 -08:00
Graydon Hoare
4990d750b2 Bug 526011 - Backed out changeset ccae3c736aed, premature landing.
--HG--
extra : convert_revision : ba29ca88bc1acdee7ae1a532f202ee99f08ce755
2009-11-04 10:15:41 -08:00
Graydon Hoare
e081d7f434 Bug 526070 - lirasm call argument ordering bug, r=dvander.
--HG--
extra : convert_revision : f3e975ca8d8e19b651f57b7599fd84162aaad8ec
2009-11-02 17:10:27 -08:00
David Anderson
0ceba054d4 Removed Fragment::vmprivate and Fragment::root (bug 526011, r=graydon).
--HG--
extra : convert_revision : ccae3c736aeddd81211073095132a7feb70c33e7
2009-11-03 10:16:17 -08:00
Nicholas Nethercote
097c0ac933 Bug 525413 - lirasm: avoid operandCount, r=graydon.
--HG--
extra : convert_revision : f35c3aab85189126ca884e976372050c3278324f
2009-11-02 12:15:37 -08:00
Nicholas Nethercote
324726905d Bug 525411 - lirasm: fix CallInfo problems, r=graydon.
--HG--
extra : convert_revision : 18149ad4f58ed4f0cdc2034aeaa0acf269c1a205
2009-11-02 12:14:45 -08:00
Jacob Bramley
6168fd499c Bug 525878 - The lirasm call1 test fails on ARM, r=graydon.
--HG--
extra : convert_revision : 9088798ea4a9ccdf7ffff83b97bc468213e72942
2009-11-02 10:32:02 -08:00
Graydon Hoare
b19eee7d5a Bug 524231 - catch lirasm up with recent changes, r=gal. 2009-10-23 17:19:56 -07:00
Graydon Hoare
bb3cb0015c Bug 522363 - remove debug-break, unused parameters on displacement check, r=dvander.
--HG--
extra : rebase_source : 13ef7b6d16e5b66bb70816cfdd417ab4f9bcd758
2009-10-14 15:30:00 -07:00
Graydon Hoare
40c01b04b7 Bug 522153 - lirasm --random should use rand() not random(), r=nnethercote. 2009-10-13 18:29:55 -07:00
Graydon Hoare
e50571288c Bug 521506 - fix lirasm puts tests, r=gal.
--HG--
extra : rebase_source : 094bdb4389d33c0908f28b0da0ccccafca3621df
2009-10-13 18:24:57 -07:00
Nicholas Nethercote
48efd3883f Bug 519873 - NJ merge: lirasm --random mode. r=graydon. 2009-10-12 08:48:13 +11:00
Graydon Hoare
12e43d492a Bug 521340 - TM merge: more build infrastructure (tracemonkey side), r=nnethercote. 2009-10-09 12:58:39 -07:00
Nicholas Nethercote
4e59b11ccf Add missing file to lirasm/Makefile.in so lirasm builds again. No bug filed, r=graydon via IRC. 2009-10-08 08:51:15 +11:00
Graydon Hoare
4c60aba1d1 Bug 519768 - NJ: fix lirasm test failures, r=nnethercote. 2009-09-30 11:20:50 -07:00
Graydon Hoare
a18f57ecfd Bug 495734 - NJ: don't store non-LIR data in LIR buffers, r=gal.
--HG--
extra : rebase_source : 4a73fd251f3077fe3623ef1341a8aa3729a4e8bf
2009-09-22 16:06:52 -07:00
Graydon Hoare
7ac990150d Bug 517601 - TM merge: revive lirasm, r=jorendorff. 2009-09-18 16:07:49 -07:00
Nicholas Nethercote
93a1b3630d Bug 507087 - TM/nanojit: change _argtypes fields from 2 bits to 3 bits (TR sync). r=rreitmai,jorendorff. 2009-07-30 10:44:34 +10:00
Jason Orendorff
09f42af59b lirasm - Rename a parameter, as graydon requested in review for bug 505249. 2009-07-27 16:38:39 -05:00
Jason Orendorff
2421d2c3d1 Bug 505249 - lirasm - Style cleanup and new tokenizer. r=graydon. 2009-07-17 00:48:39 -05:00
Robert Sayre
c59ed574da Backed out changeset 8f6d8ce284ff 2009-07-23 22:04:45 -04:00
Nicholas Nethercote
5e1d4a5859 Bug 503449 - lirasm: always build it with the js shell, and fix some breakage. r=jorendorff. 2009-07-24 08:41:59 +10:00
Nicholas Nethercote
a8cd3ba765 Bug 504705 - TM/nanojit: use NULL as the condition for unconditional guards (2nd attempt). r=gal. 2009-07-22 14:54:41 +10:00
Andreas Gal
83790e006a Merge. 2009-07-20 14:06:39 -07:00
Andreas Gal
cb9a549160 Backed out changeset 692e8a1325f8 (bug 504705). Crashes with TMFLAGS=full on browser startup. 2009-07-20 13:58:00 -07:00
Paritosh Aggarwal
6b3a75eb57 Bug 500786 - lirasm - provide support for guards. r=jorendorff. 2009-07-16 21:41:53 -05:00
Nicholas Nethercote
dabda589bf Bug 504705 - TM/nanojit: use NULL as the condition for unconditional guards. r=gal. 2009-07-17 11:14:01 +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
Peter Van der Beken
c4e9e647fb Backed out changeset c5433450795f (Bug 503990: make isStmt() table-driven). 2009-07-14 11:22:41 +02:00
Nicholas Nethercote
1704e7aacf Bug 503990: make isStmt() table-driven. r=gal. 2009-07-14 13:08:38 +10:00
Nicholas Nethercote
5842226e62 Bug 492866: implement variable-width LIR. r=graydon. 2009-07-01 14:18:55 +10:00
Nicholas Nethercote
8de6422b09 Backed out changeset ae16e5919d19 (tree was closed for talos maintenance). 2009-07-01 11:33:54 +10:00
Nicholas Nethercote
4af0dc60ae Make LIR variable-width (bug 492866, r=graydon). 2009-07-01 11:13:22 +10:00
Paritosh Aggarwal
c3757b928f Bug 499365 - lirasm - Provide for execution of multiple fragments in a single file. r=jorendorff. 2009-06-29 13:26:43 -05:00
Nicholas Nethercote
7595f38896 Remove unused field 'parent' from class LabelMap (bug 499400, r=gal). 2009-06-23 14:11:09 +10:00
Paritosh Aggarwal
8736463f25 Bug 499016 - Provide testing support for lirasm. r=graydon. 2009-06-22 17:22:09 -05:00
Paritosh Aggarwal
f5d7c03678 Bug 497991 - Fix function calls in lirasm. r=graydon,r=jorendorff. 2009-06-22 17:16:21 -05:00
Paritosh Aggarwal
8270114427 Bug 498926 - lirasm - Support --execute with LIR_fret. r=jorendorff. 2009-06-17 11:52:20 -05:00
Jason Orendorff
aae770b100 Bug 498504 - lirasm - constant jumps produce assertions. intermediates treated as labels. p=paritosh,r=me. 2009-06-16 13:05:59 -05:00
Graydon Hoare
6a44d94f4f Bug 484142 - Standalone LIR assembler, r=jorendorff. 2009-06-12 11:33:08 -07:00