@@ -970,6 +970,7 @@ int MacroAssembler::bitset_to_regs(unsigned int bitset, unsigned char* regs) {
970
970
// Return the number of words pushed
971
971
int MacroAssembler::push_reg (unsigned int bitset, Register stack) {
972
972
DEBUG_ONLY (int words_pushed = 0 ;)
973
+ CompressibleRegion cr (this );
973
974
974
975
unsigned char regs[32 ];
975
976
int count = bitset_to_regs (bitset, regs);
@@ -991,6 +992,7 @@ int MacroAssembler::push_reg(unsigned int bitset, Register stack) {
991
992
992
993
int MacroAssembler::pop_reg (unsigned int bitset, Register stack) {
993
994
DEBUG_ONLY (int words_popped = 0 ;)
995
+ CompressibleRegion cr (this );
994
996
995
997
unsigned char regs[32 ];
996
998
int count = bitset_to_regs (bitset, regs);
@@ -1013,6 +1015,7 @@ int MacroAssembler::pop_reg(unsigned int bitset, Register stack) {
1013
1015
// Push float registers in the bitset, except sp.
1014
1016
// Return the number of heapwords pushed.
1015
1017
int MacroAssembler::push_fp (unsigned int bitset, Register stack) {
1018
+ CompressibleRegion cr (this );
1016
1019
int words_pushed = 0 ;
1017
1020
unsigned char regs[32 ];
1018
1021
int count = bitset_to_regs (bitset, regs);
@@ -1032,6 +1035,7 @@ int MacroAssembler::push_fp(unsigned int bitset, Register stack) {
1032
1035
}
1033
1036
1034
1037
int MacroAssembler::pop_fp (unsigned int bitset, Register stack) {
1038
+ CompressibleRegion cr (this );
1035
1039
int words_popped = 0 ;
1036
1040
unsigned char regs[32 ];
1037
1041
int count = bitset_to_regs (bitset, regs);
@@ -1052,6 +1056,7 @@ int MacroAssembler::pop_fp(unsigned int bitset, Register stack) {
1052
1056
1053
1057
#ifdef COMPILER2
1054
1058
int MacroAssembler::push_vp (unsigned int bitset, Register stack) {
1059
+ CompressibleRegion cr (this );
1055
1060
int vector_size_in_bytes = Matcher::scalable_vector_reg_size (T_BYTE);
1056
1061
1057
1062
// Scan bitset to accumulate register pairs
@@ -1073,6 +1078,7 @@ int MacroAssembler::push_vp(unsigned int bitset, Register stack) {
1073
1078
}
1074
1079
1075
1080
int MacroAssembler::pop_vp (unsigned int bitset, Register stack) {
1081
+ CompressibleRegion cr (this );
1076
1082
int vector_size_in_bytes = Matcher::scalable_vector_reg_size (T_BYTE);
1077
1083
1078
1084
// Scan bitset to accumulate register pairs
@@ -1095,6 +1101,7 @@ int MacroAssembler::pop_vp(unsigned int bitset, Register stack) {
1095
1101
#endif // COMPILER2
1096
1102
1097
1103
void MacroAssembler::push_call_clobbered_registers_except (RegSet exclude) {
1104
+ CompressibleRegion cr (this );
1098
1105
// Push integer registers x7, x10-x17, x28-x31.
1099
1106
push_reg (RegSet::of (x7) + RegSet::range (x10, x17) + RegSet::range (x28, x31) - exclude, sp);
1100
1107
@@ -1109,6 +1116,7 @@ void MacroAssembler::push_call_clobbered_registers_except(RegSet exclude) {
1109
1116
}
1110
1117
1111
1118
void MacroAssembler::pop_call_clobbered_registers_except (RegSet exclude) {
1119
+ CompressibleRegion cr (this );
1112
1120
int offset = 0 ;
1113
1121
for (int i = 0 ; i < 32 ; i++) {
1114
1122
if (i <= f7->encoding () || i >= f28->encoding () || (i >= f10->encoding () && i <= f17->encoding ())) {
@@ -1122,15 +1130,18 @@ void MacroAssembler::pop_call_clobbered_registers_except(RegSet exclude) {
1122
1130
1123
1131
// Push all the integer registers, except zr(x0) & sp(x2) & gp(x3) & tp(x4).
1124
1132
void MacroAssembler::pusha () {
1133
+ CompressibleRegion cr (this );
1125
1134
push_reg (0xffffffe2 , sp);
1126
1135
}
1127
1136
1128
1137
// Pop all the integer registers, except zr(x0) & sp(x2) & gp(x3) & tp(x4).
1129
1138
void MacroAssembler::popa () {
1139
+ CompressibleRegion cr (this );
1130
1140
pop_reg (0xffffffe2 , sp);
1131
1141
}
1132
1142
1133
1143
void MacroAssembler::push_CPU_state (bool save_vectors, int vector_size_in_bytes) {
1144
+ CompressibleRegion cr (this );
1134
1145
// integer registers, except zr(x0) & ra(x1) & sp(x2) & gp(x3) & tp(x4)
1135
1146
push_reg (0xffffffe0 , sp);
1136
1147
@@ -1152,6 +1163,7 @@ void MacroAssembler::push_CPU_state(bool save_vectors, int vector_size_in_bytes)
1152
1163
}
1153
1164
1154
1165
void MacroAssembler::pop_CPU_state (bool restore_vectors, int vector_size_in_bytes) {
1166
+ CompressibleRegion cr (this );
1155
1167
// vector registers
1156
1168
if (restore_vectors) {
1157
1169
vsetvli (t0, x0, Assembler::e64 , Assembler::m8);
0 commit comments