Closed Bug 570276 Opened 15 years ago Closed 15 years ago

Extra junk code generated for loading variable address on SPARC

Categories

(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect, P3)

Sun
Solaris
defect

Tracking

(Not tracked)

RESOLVED FIXED
Q3 11 - Serrano

People

(Reporter: wmaddox, Assigned: wmaddox)

Details

(Whiteboard: fixed-in-nanojit, fixed-in-tracemonkey, fixed-in-tamarin)

Attachments

(1 file)

While analyzing an unrelated problem, I observed the following code generated for an LEA, that is, "addr = addp vars, offset": immi168 = immi 72 addi10 = addi vars, immi168/*72*/ 00008ec77c or %g0, 72, %l2 00008ec780 addcc %l7, %l2, %l7 00008ec784 or %g0, -56, %l2 00008ec788 add %fp, %l2, %o4 In Assembler::asm_arith, the LEA case is recognized, and treated specially: else if ((op == LIR_addi || op == LIR_addxovi) && lhs->isop(LIR_allocp) && rhs->isImmI()) { // add alloc+const, use lea Register rr = deprecated_prepResultReg(ins, allow); int d = findMemFor(lhs) + rhs->immI(); ADD(FP, L2, rr); SET32(d, L2); } This results in the generation of the final two instructions in the example above, i.e.: 00008ec784 or %g0, -56, %l2 00008ec788 add %fp, %l2, %o4 Instead of exiting after peeling off this special case, however, asm_arith continues, emitting code for the general case of addi, resulting in two additional instructions: 00008ec77c or %g0, 72, %l2 00008ec780 addcc %l7, %l2, %l7 Recall that the assembler emits instructions in the reverse order form that in which they will be executed.
Assignee: nobody → wmaddox
Flags: flashplayer-qrb+
Priority: -- → P3
Whiteboard: has-patch
Target Milestone: --- → flash10.2
Attachment #450781 - Flags: review?(leon.sha) → review+
Whiteboard: has-patch → has-patch fixed-in-nanojit
Whiteboard: has-patch fixed-in-nanojit → has-patch fixed-in-nanojit, fixed-in-tracemonkey
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Whiteboard: has-patch fixed-in-nanojit, fixed-in-tracemonkey → fixed-in-nanojit, fixed-in-tracemonkey, fixed-in-tamarin
Flags: flashplayer-bug+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: