@@ -8040,6 +8040,25 @@ void Assembler::vzeroupper_uncached() {
80408040 }
80418041}
80428042
8043+ void Assembler::fld_x (Address adr) {
8044+ InstructionMark im (this );
8045+ emit_int8 ((unsigned char )0xDB );
8046+ emit_operand32 (rbp, adr);
8047+ }
8048+
8049+ void Assembler::fstp_x (Address adr) {
8050+ InstructionMark im (this );
8051+ emit_int8 ((unsigned char )0xDB );
8052+ emit_operand32 (rdi, adr);
8053+ }
8054+
8055+ void Assembler::emit_operand32 (Register reg, Address adr) {
8056+ assert (reg->encoding () < 8 , " no extended registers" );
8057+ assert (!adr.base_needs_rex () && !adr.index_needs_rex (), " no extended registers" );
8058+ emit_operand (reg, adr._base , adr._index , adr._scale , adr._disp ,
8059+ adr._rspec );
8060+ }
8061+
80438062#ifndef _LP64
80448063// 32bit only pieces of the assembler
80458064
@@ -9860,25 +9879,6 @@ void Assembler::decq(Address dst) {
98609879 emit_operand (rcx, dst);
98619880}
98629881
9863- void Assembler::fld_x (Address adr) {
9864- InstructionMark im (this );
9865- emit_int8 ((unsigned char )0xDB );
9866- emit_operand32 (rbp, adr);
9867- }
9868-
9869- void Assembler::fstp_x (Address adr) {
9870- InstructionMark im (this );
9871- emit_int8 ((unsigned char )0xDB );
9872- emit_operand32 (rdi, adr);
9873- }
9874-
9875- void Assembler::emit_operand32 (Register reg, Address adr) {
9876- assert (reg->encoding () < 8 , " no extended registers" );
9877- assert (!adr.base_needs_rex () && !adr.index_needs_rex (), " no extended registers" );
9878- emit_operand (reg, adr._base , adr._index , adr._scale , adr._disp ,
9879- adr._rspec );
9880- }
9881-
98829882void Assembler::fxrstor (Address src) {
98839883 emit_int24 (get_prefixq (src), 0x0F , (unsigned char )0xAE );
98849884 emit_operand (as_Register (1 ), src);
0 commit comments