src/cpu/x86/vm/assembler_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6791168 Cdiff src/cpu/x86/vm/assembler_x86.cpp
src/cpu/x86/vm/assembler_x86.cpp
Print this page
*** 6941,6952 ****
push(tmp);
}
Label slow_case, done;
// x ?<= pi/4
! fld_d(ExternalAddress((address)&pi_4));
fld_s(1); // Stack: X PI/4 X
fabs(); // Stack: |X| PI/4 X
fcmp(tmp);
jcc(Assembler::above, slow_case);
--- 6941,6954 ----
push(tmp);
}
Label slow_case, done;
+ ExternalAddress pi4_adr = (address)&pi_4;
+ if (reachable(pi4_adr)) {
// x ?<= pi/4
! fld_d(pi4_adr); // ExternalAddress((address)&pi_4));
fld_s(1); // Stack: X PI/4 X
fabs(); // Stack: |X| PI/4 X
fcmp(tmp);
jcc(Assembler::above, slow_case);
*** 6964,6973 ****
--- 6966,6976 ----
default:
assert(false, "bad intrinsic");
break;
}
jmp(done);
+ }
// slow case: runtime call
bind(slow_case);
// Preserve registers across runtime call
pusha();
src/cpu/x86/vm/assembler_x86.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File