Skip to content

Commit

Permalink
8270086: ARM32-softfp: Do not load CONSTANT_double using the condy he…
Browse files Browse the repository at this point in the history
…lper methods in the interpreter

Backport-of: a066c7bed0f9aa45fb9384f75ae84943548cd859
  • Loading branch information
shipilev committed Nov 25, 2022
1 parent aec0884 commit 8ed9f83
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions src/hotspot/cpu/arm/templateTable_arm.cpp
Expand Up @@ -490,29 +490,30 @@ void TemplateTable::ldc2_w() {
__ add(Rtemp, Rtags, tags_offset);
__ ldrb(Rtemp, Address(Rtemp, Rindex));

Label Condy, exit;
#ifdef __ABI_HARD__
Label NotDouble;
Label Done, NotLong, NotDouble;
__ cmp(Rtemp, JVM_CONSTANT_Double);
__ b(NotDouble, ne);
#ifdef __SOFTFP__
__ ldr(R0_tos_lo, Address(Rbase, base_offset + 0 * wordSize));
__ ldr(R1_tos_hi, Address(Rbase, base_offset + 1 * wordSize));
#else // !__SOFTFP__
__ ldr_double(D0_tos, Address(Rbase, base_offset));

#endif // __SOFTFP__
__ push(dtos);
__ b(exit);
__ b(Done);
__ bind(NotDouble);
#endif

__ cmp(Rtemp, JVM_CONSTANT_Long);
__ b(Condy, ne);
__ b(NotLong, ne);
__ ldr(R0_tos_lo, Address(Rbase, base_offset + 0 * wordSize));
__ ldr(R1_tos_hi, Address(Rbase, base_offset + 1 * wordSize));
__ push(ltos);
__ b(exit);
__ b(Done);
__ bind(NotLong);

__ bind(Condy);
condy_helper(exit);
condy_helper(Done);

__ bind(exit);
__ bind(Done);
}


Expand Down

1 comment on commit 8ed9f83

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.