@@ -974,6 +974,7 @@ int MacroAssembler::bitset_to_regs(unsigned int bitset, unsigned char* regs) {
974
974
// Return the number of words pushed
975
975
int MacroAssembler::push_reg (unsigned int bitset, Register stack) {
976
976
DEBUG_ONLY (int words_pushed = 0 ;)
977
+ CompressibleRegion cr (this );
977
978
978
979
unsigned char regs[32 ];
979
980
int count = bitset_to_regs (bitset, regs);
@@ -995,6 +996,7 @@ int MacroAssembler::push_reg(unsigned int bitset, Register stack) {
995
996
996
997
int MacroAssembler::pop_reg (unsigned int bitset, Register stack) {
997
998
DEBUG_ONLY (int words_popped = 0 ;)
999
+ CompressibleRegion cr (this );
998
1000
999
1001
unsigned char regs[32 ];
1000
1002
int count = bitset_to_regs (bitset, regs);
@@ -1017,6 +1019,7 @@ int MacroAssembler::pop_reg(unsigned int bitset, Register stack) {
1017
1019
// Push float registers in the bitset, except sp.
1018
1020
// Return the number of heapwords pushed.
1019
1021
int MacroAssembler::push_fp (unsigned int bitset, Register stack) {
1022
+ CompressibleRegion cr (this );
1020
1023
int words_pushed = 0 ;
1021
1024
unsigned char regs[32 ];
1022
1025
int count = bitset_to_regs (bitset, regs);
@@ -1036,6 +1039,7 @@ int MacroAssembler::push_fp(unsigned int bitset, Register stack) {
1036
1039
}
1037
1040
1038
1041
int MacroAssembler::pop_fp (unsigned int bitset, Register stack) {
1042
+ CompressibleRegion cr (this );
1039
1043
int words_popped = 0 ;
1040
1044
unsigned char regs[32 ];
1041
1045
int count = bitset_to_regs (bitset, regs);
@@ -1056,6 +1060,7 @@ int MacroAssembler::pop_fp(unsigned int bitset, Register stack) {
1056
1060
1057
1061
#ifdef COMPILER2
1058
1062
int MacroAssembler::push_vp (unsigned int bitset, Register stack) {
1063
+ CompressibleRegion cr (this );
1059
1064
int vector_size_in_bytes = Matcher::scalable_vector_reg_size (T_BYTE);
1060
1065
1061
1066
// Scan bitset to accumulate register pairs
@@ -1077,6 +1082,7 @@ int MacroAssembler::push_vp(unsigned int bitset, Register stack) {
1077
1082
}
1078
1083
1079
1084
int MacroAssembler::pop_vp (unsigned int bitset, Register stack) {
1085
+ CompressibleRegion cr (this );
1080
1086
int vector_size_in_bytes = Matcher::scalable_vector_reg_size (T_BYTE);
1081
1087
1082
1088
// Scan bitset to accumulate register pairs
@@ -1099,6 +1105,7 @@ int MacroAssembler::pop_vp(unsigned int bitset, Register stack) {
1099
1105
#endif // COMPILER2
1100
1106
1101
1107
void MacroAssembler::push_call_clobbered_registers_except (RegSet exclude) {
1108
+ CompressibleRegion cr (this );
1102
1109
// Push integer registers x7, x10-x17, x28-x31.
1103
1110
push_reg (RegSet::of (x7) + RegSet::range (x10, x17) + RegSet::range (x28, x31) - exclude, sp);
1104
1111
@@ -1113,6 +1120,7 @@ void MacroAssembler::push_call_clobbered_registers_except(RegSet exclude) {
1113
1120
}
1114
1121
1115
1122
void MacroAssembler::pop_call_clobbered_registers_except (RegSet exclude) {
1123
+ CompressibleRegion cr (this );
1116
1124
int offset = 0 ;
1117
1125
for (int i = 0 ; i < 32 ; i++) {
1118
1126
if (i <= f7->encoding () || i >= f28->encoding () || (i >= f10->encoding () && i <= f17->encoding ())) {
@@ -1126,15 +1134,18 @@ void MacroAssembler::pop_call_clobbered_registers_except(RegSet exclude) {
1126
1134
1127
1135
// Push all the integer registers, except zr(x0) & sp(x2) & gp(x3) & tp(x4).
1128
1136
void MacroAssembler::pusha () {
1137
+ CompressibleRegion cr (this );
1129
1138
push_reg (0xffffffe2 , sp);
1130
1139
}
1131
1140
1132
1141
// Pop all the integer registers, except zr(x0) & sp(x2) & gp(x3) & tp(x4).
1133
1142
void MacroAssembler::popa () {
1143
+ CompressibleRegion cr (this );
1134
1144
pop_reg (0xffffffe2 , sp);
1135
1145
}
1136
1146
1137
1147
void MacroAssembler::push_CPU_state (bool save_vectors, int vector_size_in_bytes) {
1148
+ CompressibleRegion cr (this );
1138
1149
// integer registers, except zr(x0) & ra(x1) & sp(x2) & gp(x3) & tp(x4)
1139
1150
push_reg (0xffffffe0 , sp);
1140
1151
@@ -1156,6 +1167,7 @@ void MacroAssembler::push_CPU_state(bool save_vectors, int vector_size_in_bytes)
1156
1167
}
1157
1168
1158
1169
void MacroAssembler::pop_CPU_state (bool restore_vectors, int vector_size_in_bytes) {
1170
+ CompressibleRegion cr (this );
1159
1171
// vector registers
1160
1172
if (restore_vectors) {
1161
1173
vsetvli (t0, x0, Assembler::e64 , Assembler::m8);
0 commit comments