|
@@ -610,6 +610,7 @@ static int test_valid_sigreturn(int cs_bits, bool use_16bit_ss, int force_ss)
|
|
|
*/
|
|
|
for (int i = 0; i < NGREG; i++) {
|
|
|
greg_t req = requested_regs[i], res = resulting_regs[i];
|
|
|
+
|
|
|
if (i == REG_TRAPNO || i == REG_IP)
|
|
|
continue; /* don't care */
|
|
|
|
|
@@ -673,18 +674,18 @@ static int test_valid_sigreturn(int cs_bits, bool use_16bit_ss, int force_ss)
|
|
|
#endif
|
|
|
|
|
|
/* Sanity check on the kernel */
|
|
|
- if (i == REG_CX && requested_regs[i] != resulting_regs[i]) {
|
|
|
+ if (i == REG_CX && req != res) {
|
|
|
printf("[FAIL]\tCX (saved SP) mismatch: requested 0x%llx; got 0x%llx\n",
|
|
|
- (unsigned long long)requested_regs[i],
|
|
|
- (unsigned long long)resulting_regs[i]);
|
|
|
+ (unsigned long long)req,
|
|
|
+ (unsigned long long)res);
|
|
|
nerrs++;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- if (requested_regs[i] != resulting_regs[i] && !ignore_reg) {
|
|
|
+ if (req != res && !ignore_reg) {
|
|
|
printf("[FAIL]\tReg %d mismatch: requested 0x%llx; got 0x%llx\n",
|
|
|
- i, (unsigned long long)requested_regs[i],
|
|
|
- (unsigned long long)resulting_regs[i]);
|
|
|
+ i, (unsigned long long)req,
|
|
|
+ (unsigned long long)res);
|
|
|
nerrs++;
|
|
|
}
|
|
|
}
|