Commit Graph

197 Commits

Author SHA1 Message Date
Steven Johnson
cd405704e7 Bug 543803 - Fix unused-variable warnings in Release ARM builds (r=rreitmai)
--HG--
extra : convert_revision : de2889d43d17c9ccc659c509dcb0c1749111d336
2010-02-02 12:37:59 -08:00
Steven Johnson
d3917616cd Update comment about Thumb-2 usage to be grammatically correct, per nnethercote's suggestion.
--HG--
extra : convert_revision : 4520d720b2e3681edfeba915cd7d359231f24de8
2010-01-28 13:57:08 -08:00
Steven Johnson
66b97ac0b3 remove arm_thumb and arm_thumb2 flags (r=rreitmai,r=nnethercote,bug=541491)
--HG--
extra : convert_revision : b9b31e60f28eb87842aae9325944c1d03ca1b2a7
2010-01-28 13:37:40 -08:00
Julian Seward
c0ca91a9e9 Bug 536153 - NativeARM.cpp: Incorrect use ALUr_shi to generate compare insns. r=Jacob.Bramley.
--HG--
extra : convert_revision : f4ece4c13545709edbd5b8f856ec39f155223892
2010-01-28 09:31:38 +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
Steven Johnson
cc53ad5c4e Bug 541491 - ARM_ARCH, ARM_VFP, and ARM_THUMB2 should be runtime options everywhere (r=rreitmai,nnethercote)
--HG--
extra : convert_revision : 90cd176398da34d02665e189e6311b72e8d3657d
2010-01-26 10:37:38 -08:00
Steven Johnson
e0fe64337d implement EXPANDED_LOADSTORE for ARM (code=vladimir,stejohns; r=vladimir,rreitmai; bug=534765)
--HG--
extra : convert_revision : 75f0d95c8bea8ceb0d9bb2dfd55aeb0d0d200bd1
2010-01-25 11:08:42 -08: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
fec7f356b0 ARM bustage fix for bug 540351.
--HG--
extra : convert_revision : 4a6d8a20be25e523d261f1754b0be90619fc0554
2010-01-25 09:44:47 +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
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
Vladimir Vukicevic
b98eed802d Missed S14 -> FpSingleScratch renaming
--HG--
extra : convert_revision : 0628e6475f1f08e91a9113e0174230d38272f4e5
2010-01-13 18:10:28 -08: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
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
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
Steven Johnson
3093a45e23 fix incorrect WinCE detection in CLZ (r=rreitmai,bug=538632)
--HG--
extra : convert_revision : dc59fb8a1810584ad2e0c61b49689f68d5894501
2010-01-08 11:17:07 -08: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
1c0554f24b Bug 524640 - nanojit: avoid calling releaseRegisters() twice. r=gal.
--HG--
extra : convert_revision : 5af925a7a5ceae6ab8bb9219585bfacccdf56ef0
2009-12-22 21:37:49 +11:00
Edwin Smith
245eaeb9f7 Whitespace hygene (r=me)
--HG--
extra : convert_revision : b7a4852a92d3ceb74592c1da0e1cd0beace84eb5
2009-12-21 15:05:48 -05: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
0cda95948c Bug 534575 - nanojit: fix bogosity in asm_cmp(). r=edwsmith.
--HG--
extra : convert_revision : f5573b092a7f11abed716341629dff0b36bb09e6
2009-12-16 10:16:47 +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
Julian Seward
937420dbec Bug 520905 - collapse callee saved register spills/reloads into LDMIA/STMIA instructions, r=vlad.
--HG--
extra : convert_revision : 73952814a07755be92fba1060efc97d5010b38c9
2009-11-20 10:11:33 -08:00
Nicholas Nethercote
f0737b9579 ARM Bustage fix for bug 513863. r=me.
--HG--
extra : convert_revision : ee701ef7d0e4ca71ce73ac77a65fe8549429dce1
2009-11-18 12:33:34 +11:00
Julian Seward
6de060464c Bug 517883 - make TM fragment entry- and exit-profiling work on ARM, r=vlad.
--HG--
extra : rebase_source : 5ce347fc1855009b2e71a67ab4df69ee03e7d65b
extra : convert_revision : e133153691ce2daf3eb72bba7762191b61b7afcb
2009-11-12 14:30:36 -08:00
Edwin Smith
9eada54d27 Fix NativeARM; missed one file when backing out registerAllocTmp (r=me)
--HG--
extra : convert_revision : ec94ce9d044ee358a65c259a6151ce660122f813
2009-11-12 08:39:32 -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
Rick Reitmaier
7fc8791eda Silence winmo compiler gripe about unused var (r+me)
--HG--
extra : convert_revision : f2504bf688652c6730b49dca93da149f419bb165
2009-11-10 14:49:12 -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
Nicholas Nethercote
0a26c2fbaf Bug 515309 - nanojit: kill reservations in the ARM backend. r=Jacob.Bramley.
--HG--
extra : convert_revision : 271317c774639b9604d3e9ab9d67d615b5166c64
2009-11-10 17:27:09 +11:00
Graydon Hoare
77b0404bd4 Bug 525392 - Fix ARM branch-patching logic, r=vlad.
--HG--
extra : convert_revision : 3510743118fdb7ba39e941894ccf7a80788f8421
2009-11-03 11:49:31 -08:00
Jacob Bramley
357496b516 Rolling back changes that should have gone into nanojit-central. 2009-11-02 10:05:09 +00:00
Jacob Bramley
12af34360e Make LIR_ov work for LIR_mul on ARM. (bug 521161, r=gal) 2009-11-02 09:35:01 +00:00
Graydon Hoare
c22f99d364 Bug 524236 - ARM actually needs to check used-ness of call instruction in asm_call, r=gal. 2009-10-23 17:48:41 -07:00
Graydon Hoare
89d3fa8350 Bug 524230 - adjust asm_ld_imm assertion in ARM, r=gal. 2009-10-23 17:33:06 -07:00
Graydon Hoare
5c2cdd754c Bug 524158 -re-enable immediate-load optimization on ARM, r=gal.
--HG--
extra : rebase_source : 0faa0de34ff7732b1e0f96ed4b691a55242d6acb
2009-10-23 11:10:07 -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
399e52afa4 Bug 523505 - move icache flushing logic around, r=gal. 2009-10-21 16:26:52 -07:00
Graydon Hoare
349ddddea8 Bug 523262 - further ARM differences from tamarin, r=gal.
--HG--
extra : rebase_source : a39c39c0d6a66886c7a068324187bb3fd50796bd
2009-10-20 17:43:13 -07:00
Graydon Hoare
c8132ae487 Bug 523416 - fix the blx_lr_broken implementation, r=sayrer. 2009-10-20 12:28:37 -07:00