< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Print this page




1247                            Register tmp1, Register tmp2, Register tmp3);
1248 private:
1249   void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
1250                        Register src1, Register src2);
1251   void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
1252     add2_with_carry(dest_hi, dest_hi, dest_lo, src1, src2);
1253   }
1254   void multiply_64_x_64_loop(Register x, Register xstart, Register x_xstart,
1255                              Register y, Register y_idx, Register z,
1256                              Register carry, Register product,
1257                              Register idx, Register kdx);
1258   void multiply_128_x_128_loop(Register y, Register z,
1259                                Register carry, Register carry2,
1260                                Register idx, Register jdx,
1261                                Register yz_idx1, Register yz_idx2,
1262                                Register tmp, Register tmp3, Register tmp4,
1263                                Register tmp7, Register product_hi);
1264   void kernel_crc32_using_crc32(Register crc, Register buf,
1265         Register len, Register tmp0, Register tmp1, Register tmp2,
1266         Register tmp3);



1267 public:
1268   void multiply_to_len(Register x, Register xlen, Register y, Register ylen, Register z,
1269                        Register zlen, Register tmp1, Register tmp2, Register tmp3,
1270                        Register tmp4, Register tmp5, Register tmp6, Register tmp7);
1271   void mul_add(Register out, Register in, Register offs, Register len, Register k);
1272   // ISB may be needed because of a safepoint
1273   void maybe_isb() { isb(); }
1274 
1275 private:
1276   // Return the effective address r + (r1 << ext) + offset.
1277   // Uses rscratch2.
1278   Address offsetted_address(Register r, Register r1, Address::extend ext,
1279                             int offset, int size);
1280 
1281 private:
1282   // Returns an address on the stack which is reachable with a ldr/str of size
1283   // Uses rscratch2 if the address is not directly reachable
1284   Address spill_address(int size, int offset, Register tmp=rscratch2);
1285 
1286 public:




1247                            Register tmp1, Register tmp2, Register tmp3);
1248 private:
1249   void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
1250                        Register src1, Register src2);
1251   void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
1252     add2_with_carry(dest_hi, dest_hi, dest_lo, src1, src2);
1253   }
1254   void multiply_64_x_64_loop(Register x, Register xstart, Register x_xstart,
1255                              Register y, Register y_idx, Register z,
1256                              Register carry, Register product,
1257                              Register idx, Register kdx);
1258   void multiply_128_x_128_loop(Register y, Register z,
1259                                Register carry, Register carry2,
1260                                Register idx, Register jdx,
1261                                Register yz_idx1, Register yz_idx2,
1262                                Register tmp, Register tmp3, Register tmp4,
1263                                Register tmp7, Register product_hi);
1264   void kernel_crc32_using_crc32(Register crc, Register buf,
1265         Register len, Register tmp0, Register tmp1, Register tmp2,
1266         Register tmp3);
1267   void kernel_crc32c_using_crc32c(Register crc, Register buf,
1268         Register len, Register tmp0, Register tmp1, Register tmp2,
1269         Register tmp3);
1270 public:
1271   void multiply_to_len(Register x, Register xlen, Register y, Register ylen, Register z,
1272                        Register zlen, Register tmp1, Register tmp2, Register tmp3,
1273                        Register tmp4, Register tmp5, Register tmp6, Register tmp7);
1274   void mul_add(Register out, Register in, Register offs, Register len, Register k);
1275   // ISB may be needed because of a safepoint
1276   void maybe_isb() { isb(); }
1277 
1278 private:
1279   // Return the effective address r + (r1 << ext) + offset.
1280   // Uses rscratch2.
1281   Address offsetted_address(Register r, Register r1, Address::extend ext,
1282                             int offset, int size);
1283 
1284 private:
1285   // Returns an address on the stack which is reachable with a ldr/str of size
1286   // Uses rscratch2 if the address is not directly reachable
1287   Address spill_address(int size, int offset, Register tmp=rscratch2);
1288 
1289 public:


< prev index next >