Commit Graph

48 Commits

Author SHA1 Message Date
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