@@ -670,96 +670,6 @@ void MacroAssembler::super_call_VM_leaf(address entry_point, Register arg_0, Reg
670
670
MacroAssembler::call_VM_leaf_base (entry_point, 4 );
671
671
}
672
672
673
- void MacroAssembler::nop () {
674
- addi (x0, x0, 0 );
675
- }
676
-
677
- void MacroAssembler::mv (Register Rd, Register Rs) {
678
- if (Rd != Rs) {
679
- addi (Rd, Rs, 0 );
680
- }
681
- }
682
-
683
- void MacroAssembler::notr (Register Rd, Register Rs) {
684
- xori (Rd, Rs, -1 );
685
- }
686
-
687
- void MacroAssembler::neg (Register Rd, Register Rs) {
688
- sub (Rd, x0, Rs);
689
- }
690
-
691
- void MacroAssembler::negw (Register Rd, Register Rs) {
692
- subw (Rd, x0, Rs);
693
- }
694
-
695
- void MacroAssembler::sext_w (Register Rd, Register Rs) {
696
- addiw (Rd, Rs, 0 );
697
- }
698
-
699
- void MacroAssembler::zext_b (Register Rd, Register Rs) {
700
- andi (Rd, Rs, 0xFF );
701
- }
702
-
703
- void MacroAssembler::seqz (Register Rd, Register Rs) {
704
- sltiu (Rd, Rs, 1 );
705
- }
706
-
707
- void MacroAssembler::snez (Register Rd, Register Rs) {
708
- sltu (Rd, x0, Rs);
709
- }
710
-
711
- void MacroAssembler::sltz (Register Rd, Register Rs) {
712
- slt (Rd, Rs, x0);
713
- }
714
-
715
- void MacroAssembler::sgtz (Register Rd, Register Rs) {
716
- slt (Rd, x0, Rs);
717
- }
718
-
719
- void MacroAssembler::fmv_s (FloatRegister Rd, FloatRegister Rs) {
720
- if (Rd != Rs) {
721
- fsgnj_s (Rd, Rs, Rs);
722
- }
723
- }
724
-
725
- void MacroAssembler::fabs_s (FloatRegister Rd, FloatRegister Rs) {
726
- fsgnjx_s (Rd, Rs, Rs);
727
- }
728
-
729
- void MacroAssembler::fneg_s (FloatRegister Rd, FloatRegister Rs) {
730
- fsgnjn_s (Rd, Rs, Rs);
731
- }
732
-
733
- void MacroAssembler::fmv_d (FloatRegister Rd, FloatRegister Rs) {
734
- if (Rd != Rs) {
735
- fsgnj_d (Rd, Rs, Rs);
736
- }
737
- }
738
-
739
- void MacroAssembler::fabs_d (FloatRegister Rd, FloatRegister Rs) {
740
- fsgnjx_d (Rd, Rs, Rs);
741
- }
742
-
743
- void MacroAssembler::fneg_d (FloatRegister Rd, FloatRegister Rs) {
744
- fsgnjn_d (Rd, Rs, Rs);
745
- }
746
-
747
- void MacroAssembler::vmnot_m (VectorRegister vd, VectorRegister vs) {
748
- vmnand_mm (vd, vs, vs);
749
- }
750
-
751
- void MacroAssembler::vncvt_x_x_w (VectorRegister vd, VectorRegister vs, VectorMask vm) {
752
- vnsrl_wx (vd, vs, x0, vm);
753
- }
754
-
755
- void MacroAssembler::vneg_v (VectorRegister vd, VectorRegister vs) {
756
- vrsub_vx (vd, vs, x0);
757
- }
758
-
759
- void MacroAssembler::vfneg_v (VectorRegister vd, VectorRegister vs) {
760
- vfsgnjn_vv (vd, vs, vs);
761
- }
762
-
763
673
void MacroAssembler::baseOffset32 (Register Rd, const Address &adr, int32_t &offset) {
764
674
assert (Rd != noreg, " Rd must not be empty register!" );
765
675
guarantee (Rd != adr.base (), " should use different registers!" );
@@ -1625,21 +1535,6 @@ void MacroAssembler::reinit_heapbase() {
1625
1535
}
1626
1536
}
1627
1537
1628
- void MacroAssembler::mv (Register Rd, Address dest) {
1629
- assert (dest.getMode () == Address::literal, " Address mode should be Address::literal" );
1630
- relocate (dest.rspec (), [&] {
1631
- movptr (Rd, dest.target ());
1632
- });
1633
- }
1634
-
1635
- void MacroAssembler::mv (Register Rd, RegisterOrConstant src) {
1636
- if (src.is_register ()) {
1637
- mv (Rd, src.as_register ());
1638
- } else {
1639
- mv (Rd, src.as_constant ());
1640
- }
1641
- }
1642
-
1643
1538
void MacroAssembler::movptr (Register Rd, address addr, int32_t &offset) {
1644
1539
int64_t imm64 = (int64_t )addr;
1645
1540
#ifndef PRODUCT
@@ -1669,16 +1564,6 @@ void MacroAssembler::movptr(Register Rd, address addr, int32_t &offset) {
1669
1564
offset = imm64 & 0x3f ;
1670
1565
}
1671
1566
1672
- void MacroAssembler::movptr (Register Rd, uintptr_t imm64) {
1673
- movptr (Rd, (address)imm64);
1674
- }
1675
-
1676
- void MacroAssembler::movptr (Register Rd, address addr) {
1677
- int offset = 0 ;
1678
- movptr (Rd, addr, offset);
1679
- addi (Rd, Rd, offset);
1680
- }
1681
-
1682
1567
void MacroAssembler::add (Register Rd, Register Rn, int64_t increment, Register temp) {
1683
1568
if (is_imm_in_range (increment, 12 , 0 )) {
1684
1569
addi (Rd, Rn, increment);
@@ -3357,8 +3242,7 @@ void MacroAssembler::load_method_holder(Register holder, Register method) {
3357
3242
void MacroAssembler::compute_index (Register haystack, Register trailing_zeros,
3358
3243
Register match_mask, Register result,
3359
3244
Register ch2, Register tmp,
3360
- bool haystack_isL)
3361
- {
3245
+ bool haystack_isL) {
3362
3246
int haystack_chr_shift = haystack_isL ? 0 : 1 ;
3363
3247
srl (match_mask, match_mask, trailing_zeros);
3364
3248
srli (match_mask, match_mask, 1 );
@@ -3379,8 +3263,7 @@ void MacroAssembler::compute_index(Register haystack, Register trailing_zeros,
3379
3263
// - 0x8000800080008000 (UTF16)
3380
3264
// - 3 2 1 0 (match index)
3381
3265
void MacroAssembler::compute_match_mask (Register src, Register pattern, Register match_mask,
3382
- Register mask1, Register mask2)
3383
- {
3266
+ Register mask1, Register mask2) {
3384
3267
xorr (src, pattern, src);
3385
3268
sub (match_mask, src, mask1);
3386
3269
orr (src, src, mask2);
@@ -3464,24 +3347,21 @@ void MacroAssembler::cad(Register dst, Register src1, Register src2, Register ca
3464
3347
}
3465
3348
3466
3349
// add two input with carry
3467
- void MacroAssembler::adc (Register dst, Register src1, Register src2, Register carry)
3468
- {
3350
+ void MacroAssembler::adc (Register dst, Register src1, Register src2, Register carry) {
3469
3351
assert_different_registers (dst, carry);
3470
3352
add (dst, src1, src2);
3471
3353
add (dst, dst, carry);
3472
3354
}
3473
3355
3474
3356
// add two unsigned input with carry and output carry
3475
- void MacroAssembler::cadc (Register dst, Register src1, Register src2, Register carry)
3476
- {
3357
+ void MacroAssembler::cadc (Register dst, Register src1, Register src2, Register carry) {
3477
3358
assert_different_registers (dst, src2);
3478
3359
adc (dst, src1, src2, carry);
3479
3360
sltu (carry, dst, src2);
3480
3361
}
3481
3362
3482
3363
void MacroAssembler::add2_with_carry (Register final_dest_hi, Register dest_hi, Register dest_lo,
3483
- Register src1, Register src2, Register carry)
3484
- {
3364
+ Register src1, Register src2, Register carry) {
3485
3365
cad (dest_lo, dest_lo, src1, carry);
3486
3366
add (dest_hi, dest_hi, carry);
3487
3367
cad (dest_lo, dest_lo, src2, carry);
@@ -3494,8 +3374,7 @@ void MacroAssembler::add2_with_carry(Register final_dest_hi, Register dest_hi, R
3494
3374
void MacroAssembler::multiply_32_x_32_loop (Register x, Register xstart, Register x_xstart,
3495
3375
Register y, Register y_idx, Register z,
3496
3376
Register carry, Register product,
3497
- Register idx, Register kdx)
3498
- {
3377
+ Register idx, Register kdx) {
3499
3378
// jlong carry, x[], y[], z[];
3500
3379
// for (int idx=ystart, kdx=ystart+1+xstart; idx >= 0; idx--, kdx--) {
3501
3380
// long product = y[idx] * x[xstart] + carry;
@@ -3531,8 +3410,7 @@ void MacroAssembler::multiply_32_x_32_loop(Register x, Register xstart, Register
3531
3410
void MacroAssembler::multiply_64_x_64_loop (Register x, Register xstart, Register x_xstart,
3532
3411
Register y, Register y_idx, Register z,
3533
3412
Register carry, Register product,
3534
- Register idx, Register kdx)
3535
- {
3413
+ Register idx, Register kdx) {
3536
3414
//
3537
3415
// jlong carry, x[], y[], z[];
3538
3416
// for (int idx=ystart, kdx=ystart+1+xstart; idx >= 0; idx--, kdx--) {
@@ -3596,8 +3474,7 @@ void MacroAssembler::multiply_128_x_128_loop(Register y, Register z,
3596
3474
Register idx, Register jdx,
3597
3475
Register yz_idx1, Register yz_idx2,
3598
3476
Register tmp, Register tmp3, Register tmp4,
3599
- Register tmp6, Register product_hi)
3600
- {
3477
+ Register tmp6, Register product_hi) {
3601
3478
// jlong carry, x[], y[], z[];
3602
3479
// int kdx = xstart+1;
3603
3480
// for (int idx=ystart-2; idx >= 0; idx -= 2) { // Third loop
@@ -3732,8 +3609,7 @@ void MacroAssembler::multiply_128_x_128_loop(Register y, Register z,
3732
3609
void MacroAssembler::multiply_to_len (Register x, Register xlen, Register y, Register ylen,
3733
3610
Register z, Register zlen,
3734
3611
Register tmp1, Register tmp2, Register tmp3, Register tmp4,
3735
- Register tmp5, Register tmp6, Register product_hi)
3736
- {
3612
+ Register tmp5, Register tmp6, Register product_hi) {
3737
3613
assert_different_registers (x, xlen, y, ylen, z, zlen, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6);
3738
3614
3739
3615
const Register idx = tmp1;
@@ -3897,8 +3773,7 @@ void MacroAssembler::multiply_to_len(Register x, Register xlen, Register y, Regi
3897
3773
// Count bits of trailing zero chars from lsb to msb until first non-zero element.
3898
3774
// For LL case, one byte for one element, so shift 8 bits once, and for other case,
3899
3775
// shift 16 bits once.
3900
- void MacroAssembler::ctzc_bit (Register Rd, Register Rs, bool isLL, Register tmp1, Register tmp2)
3901
- {
3776
+ void MacroAssembler::ctzc_bit (Register Rd, Register Rs, bool isLL, Register tmp1, Register tmp2) {
3902
3777
if (UseZbb) {
3903
3778
assert_different_registers (Rd, Rs, tmp1);
3904
3779
int step = isLL ? 8 : 16 ;
@@ -3907,6 +3782,7 @@ void MacroAssembler::ctzc_bit(Register Rd, Register Rs, bool isLL, Register tmp1
3907
3782
sub (Rd, Rd, tmp1);
3908
3783
return ;
3909
3784
}
3785
+
3910
3786
assert_different_registers (Rd, Rs, tmp1, tmp2);
3911
3787
Label Loop;
3912
3788
int step = isLL ? 8 : 16 ;
@@ -3924,13 +3800,12 @@ void MacroAssembler::ctzc_bit(Register Rd, Register Rs, bool isLL, Register tmp1
3924
3800
// inflate into a register, for example:
3925
3801
// Rs: A7A6A5A4A3A2A1A0
3926
3802
// Rd: 00A300A200A100A0
3927
- void MacroAssembler::inflate_lo32 (Register Rd, Register Rs, Register tmp1, Register tmp2)
3928
- {
3803
+ void MacroAssembler::inflate_lo32 (Register Rd, Register Rs, Register tmp1, Register tmp2) {
3929
3804
assert_different_registers (Rd, Rs, tmp1, tmp2);
3805
+
3930
3806
mv (tmp1, 0xFF );
3931
3807
mv (Rd, zr);
3932
- for (int i = 0 ; i <= 3 ; i++)
3933
- {
3808
+ for (int i = 0 ; i <= 3 ; i++) {
3934
3809
andr (tmp2, Rs, tmp1);
3935
3810
if (i) {
3936
3811
slli (tmp2, tmp2, i * 8 );
@@ -3946,13 +3821,12 @@ void MacroAssembler::inflate_lo32(Register Rd, Register Rs, Register tmp1, Regis
3946
3821
// inflate into a register, for example:
3947
3822
// Rs: A7A6A5A4A3A2A1A0
3948
3823
// Rd: 00A700A600A500A4
3949
- void MacroAssembler::inflate_hi32 (Register Rd, Register Rs, Register tmp1, Register tmp2)
3950
- {
3824
+ void MacroAssembler::inflate_hi32 (Register Rd, Register Rs, Register tmp1, Register tmp2) {
3951
3825
assert_different_registers (Rd, Rs, tmp1, tmp2);
3826
+
3952
3827
mv (tmp1, 0xFF00000000 );
3953
3828
mv (Rd, zr);
3954
- for (int i = 0 ; i <= 3 ; i++)
3955
- {
3829
+ for (int i = 0 ; i <= 3 ; i++) {
3956
3830
andr (tmp2, Rs, tmp1);
3957
3831
orr (Rd, Rd, tmp2);
3958
3832
srli (Rd, Rd, 8 );
@@ -3975,13 +3849,13 @@ const int MacroAssembler::zero_words_block_size = 8;
3975
3849
// cnt: Count in HeapWords.
3976
3850
//
3977
3851
// ptr, cnt, and t0 are clobbered.
3978
- address MacroAssembler::zero_words (Register ptr, Register cnt)
3979
- {
3852
+ address MacroAssembler::zero_words (Register ptr, Register cnt) {
3980
3853
assert (is_power_of_2 (zero_words_block_size), " adjust this" );
3981
3854
assert (ptr == x28 && cnt == x29, " mismatch in register usage" );
3982
3855
assert_different_registers (cnt, t0);
3983
3856
3984
3857
BLOCK_COMMENT (" zero_words {" );
3858
+
3985
3859
mv (t0, zero_words_block_size);
3986
3860
Label around, done, done16;
3987
3861
bltu (cnt, t0, around);
@@ -4017,6 +3891,7 @@ address MacroAssembler::zero_words(Register ptr, Register cnt)
4017
3891
sd (zr, Address (ptr, 0 ));
4018
3892
bind (l);
4019
3893
}
3894
+
4020
3895
BLOCK_COMMENT (" } zero_words" );
4021
3896
postcond (pc () != badAddress);
4022
3897
return pc ();
@@ -4026,8 +3901,7 @@ address MacroAssembler::zero_words(Register ptr, Register cnt)
4026
3901
4027
3902
// base: Address of a buffer to be zeroed, 8 bytes aligned.
4028
3903
// cnt: Immediate count in HeapWords.
4029
- void MacroAssembler::zero_words (Register base, uint64_t cnt)
4030
- {
3904
+ void MacroAssembler::zero_words (Register base, uint64_t cnt) {
4031
3905
assert_different_registers (base, t0, t1);
4032
3906
4033
3907
BLOCK_COMMENT (" zero_words {" );
@@ -4065,8 +3939,7 @@ void MacroAssembler::zero_words(Register base, uint64_t cnt)
4065
3939
// cnt: Count in 8-byte unit.
4066
3940
// value: Value to be filled with.
4067
3941
// base will point to the end of the buffer after filling.
4068
- void MacroAssembler::fill_words (Register base, Register cnt, Register value)
4069
- {
3942
+ void MacroAssembler::fill_words (Register base, Register cnt, Register value) {
4070
3943
// Algorithm:
4071
3944
//
4072
3945
// t0 = cnt & 7
@@ -4413,6 +4286,7 @@ void MacroAssembler::object_move(OopMap* map,
4413
4286
bool is_receiver,
4414
4287
int * receiver_offset) {
4415
4288
assert_cond (map != NULL && receiver_offset != NULL );
4289
+
4416
4290
// must pass a handle. First figure out the location we use as a handle
4417
4291
Register rHandle = dst.first ()->is_stack () ? t1 : dst.first ()->as_Register ();
4418
4292
0 commit comments