Lines Matching defs:row_sp

174   UnwindPlan::RowSP row_sp = unwind_plan.GetRowForFunctionOffset(0);
175 EXPECT_EQ(0ull, row_sp->GetOffset());
176 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
177 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
178 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
180 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
185 row_sp = unwind_plan.GetRowForFunctionOffset(1);
186 EXPECT_EQ(1ull, row_sp->GetOffset());
187 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
188 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
189 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
191 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
196 row_sp = unwind_plan.GetRowForFunctionOffset(4);
197 EXPECT_EQ(4ull, row_sp->GetOffset());
198 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
199 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
200 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
202 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
207 row_sp = unwind_plan.GetRowForFunctionOffset(7);
208 EXPECT_EQ(7ull, row_sp->GetOffset());
209 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
210 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
211 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
213 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
250 UnwindPlan::RowSP row_sp = unwind_plan.GetRowForFunctionOffset(0);
251 EXPECT_EQ(0ull, row_sp->GetOffset());
252 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
253 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
254 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
256 EXPECT_TRUE(row_sp->GetRegisterInfo(k_eip, regloc));
261 row_sp = unwind_plan.GetRowForFunctionOffset(1);
262 EXPECT_EQ(1ull, row_sp->GetOffset());
263 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
264 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
265 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
267 EXPECT_TRUE(row_sp->GetRegisterInfo(k_eip, regloc));
272 row_sp = unwind_plan.GetRowForFunctionOffset(3);
273 EXPECT_EQ(3ull, row_sp->GetOffset());
274 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_ebp);
275 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
276 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
278 EXPECT_TRUE(row_sp->GetRegisterInfo(k_eip, regloc));
283 row_sp = unwind_plan.GetRowForFunctionOffset(6);
284 EXPECT_EQ(6ull, row_sp->GetOffset());
285 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
286 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
287 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
289 EXPECT_TRUE(row_sp->GetRegisterInfo(k_eip, regloc));
390 UnwindPlan::RowSP row_sp = unwind_plan.GetRowForFunctionOffset(17);
392 EXPECT_EQ(17ull, row_sp->GetOffset());
393 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
394 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
395 EXPECT_EQ(14496, row_sp->GetCFAValue().GetOffset());
397 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
401 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rbp, regloc));
405 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r15, regloc));
409 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r14, regloc));
413 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r13, regloc));
417 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r12, regloc));
421 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rbx, regloc));
428 row_sp = unwind_plan.GetRowForFunctionOffset(34);
430 EXPECT_EQ(34ull, row_sp->GetOffset());
431 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
432 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
433 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
435 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
443 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rax, regloc));
444 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbx, regloc));
445 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rcx, regloc));
446 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rdx, regloc));
447 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbp, regloc));
448 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rsi, regloc));
449 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rdi, regloc));
450 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r8, regloc));
451 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r9, regloc));
452 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r10, regloc));
453 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r11, regloc));
454 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r12, regloc));
455 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r13, regloc));
456 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r14, regloc));
457 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r15, regloc));
654 UnwindPlan::RowSP row_sp;
660 row_sp = unwind_plan.GetRowForFunctionOffset(10);
661 EXPECT_EQ(10ull, row_sp->GetOffset());
662 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
663 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
664 EXPECT_EQ(14464, row_sp->GetCFAValue().GetOffset());
668 row_sp = unwind_plan.GetRowForFunctionOffset(15);
669 EXPECT_EQ(15ull, row_sp->GetOffset());
670 EXPECT_EQ(14468, row_sp->GetCFAValue().GetOffset());
674 row_sp = unwind_plan.GetRowForFunctionOffset(16);
675 EXPECT_EQ(16ull, row_sp->GetOffset());
676 EXPECT_EQ(14464, row_sp->GetCFAValue().GetOffset());
680 EXPECT_TRUE(row_sp->GetRegisterInfo(k_eip, regloc));
684 EXPECT_TRUE(row_sp->GetRegisterInfo(k_ebp, regloc));
688 EXPECT_TRUE(row_sp->GetRegisterInfo(k_ebx, regloc));
692 EXPECT_TRUE(row_sp->GetRegisterInfo(k_edi, regloc));
696 EXPECT_TRUE(row_sp->GetRegisterInfo(k_esi, regloc));
705 row_sp = unwind_plan.GetRowForFunctionOffset(23);
706 EXPECT_EQ(23ull, row_sp->GetOffset());
707 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
708 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
709 EXPECT_EQ(14472, row_sp->GetCFAValue().GetOffset());
713 row_sp = unwind_plan.GetRowForFunctionOffset(24);
714 EXPECT_EQ(24ull, row_sp->GetOffset());
715 EXPECT_EQ(14476, row_sp->GetCFAValue().GetOffset());
719 row_sp = unwind_plan.GetRowForFunctionOffset(28);
720 EXPECT_EQ(28ull, row_sp->GetOffset());
721 EXPECT_EQ(14480, row_sp->GetCFAValue().GetOffset());
725 row_sp = unwind_plan.GetRowForFunctionOffset(36);
726 EXPECT_EQ(36ull, row_sp->GetOffset());
727 EXPECT_EQ(14464, row_sp->GetCFAValue().GetOffset());
732 row_sp = unwind_plan.GetRowForFunctionOffset(47);
733 EXPECT_EQ(47ull, row_sp->GetOffset());
734 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
735 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
736 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
738 EXPECT_TRUE(row_sp->GetRegisterInfo(k_eip, regloc));
742 EXPECT_TRUE(row_sp->GetRegisterInfo(k_esp, regloc));
748 EXPECT_FALSE(row_sp->GetRegisterInfo(k_eax, regloc));
749 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebx, regloc));
750 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ecx, regloc));
751 EXPECT_FALSE(row_sp->GetRegisterInfo(k_edx, regloc));
752 EXPECT_FALSE(row_sp->GetRegisterInfo(k_esi, regloc));
753 EXPECT_FALSE(row_sp->GetRegisterInfo(k_edi, regloc));
754 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebp, regloc));
810 UnwindPlan::RowSP row_sp = unwind_plan.GetRowForFunctionOffset(13);
812 EXPECT_EQ(1ull, row_sp->GetOffset());
813 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
814 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
815 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
817 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
823 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rax, regloc));
824 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbx, regloc));
825 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rcx, regloc));
826 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rdx, regloc));
827 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbp, regloc));
828 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rsi, regloc));
829 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rdi, regloc));
830 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r8, regloc));
831 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r9, regloc));
832 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r10, regloc));
833 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r11, regloc));
834 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r12, regloc));
835 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r13, regloc));
836 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r14, regloc));
837 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r15, regloc));
842 row_sp = unwind_plan.GetRowForFunctionOffset(22);
844 EXPECT_EQ(22ull, row_sp->GetOffset());
845 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
846 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
847 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
849 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
919 UnwindPlan::RowSP row_sp = unwind_plan.GetRowForFunctionOffset(3);
921 EXPECT_EQ(3ull, row_sp->GetOffset());
922 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
923 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
924 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
929 row_sp = unwind_plan.GetRowForFunctionOffset(8);
930 EXPECT_EQ(8ull, row_sp->GetOffset());
931 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
932 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
933 EXPECT_EQ(20, row_sp->GetCFAValue().GetOffset());
938 row_sp = unwind_plan.GetRowForFunctionOffset(9);
939 EXPECT_EQ(9ull, row_sp->GetOffset());
940 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
941 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
942 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
946 EXPECT_FALSE(row_sp->GetRegisterInfo(k_eax, regloc));
947 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebx, regloc));
948 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ecx, regloc));
949 EXPECT_FALSE(row_sp->GetRegisterInfo(k_edx, regloc));
950 EXPECT_FALSE(row_sp->GetRegisterInfo(k_esi, regloc));
951 EXPECT_FALSE(row_sp->GetRegisterInfo(k_edi, regloc));
952 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebp, regloc));
957 row_sp = unwind_plan.GetRowForFunctionOffset(34);
958 EXPECT_EQ(34ull, row_sp->GetOffset());
959 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
960 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
961 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
966 UnwindPlan::RowSP row_sp;
980 row_sp = unwind_plan.GetRowForFunctionOffset(1);
982 EXPECT_EQ(1ull, row_sp->GetOffset());
983 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
984 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
985 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
987 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rbp, regloc));
995 row_sp = unwind_plan.GetRowForFunctionOffset(1);
997 EXPECT_EQ(1ull, row_sp->GetOffset());
998 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
999 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1000 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1002 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rbp, regloc));
1009 UnwindPlan::RowSP row_sp;
1024 row_sp = unwind_plan.GetRowForFunctionOffset(5);
1025 EXPECT_EQ(5ull, row_sp->GetOffset());
1026 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1027 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1028 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1030 row_sp = unwind_plan.GetRowForFunctionOffset(7);
1031 EXPECT_EQ(7ull, row_sp->GetOffset());
1032 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1033 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1034 EXPECT_EQ(24, row_sp->GetCFAValue().GetOffset());
1040 row_sp = unwind_plan.GetRowForFunctionOffset(5);
1041 EXPECT_EQ(5ull, row_sp->GetOffset());
1042 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1043 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1044 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1046 row_sp = unwind_plan.GetRowForFunctionOffset(7);
1047 EXPECT_EQ(7ull, row_sp->GetOffset());
1048 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1049 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1050 EXPECT_EQ(12, row_sp->GetCFAValue().GetOffset());
1058 UnwindPlan::RowSP row_sp;
1072 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1075 EXPECT_EQ(0ull, row_sp->GetOffset());
1081 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1084 EXPECT_EQ(0ull, row_sp->GetOffset());
1089 UnwindPlan::RowSP row_sp;
1105 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1107 EXPECT_EQ(4ull, row_sp->GetOffset());
1108 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1109 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1110 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1116 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1117 EXPECT_EQ(4ull, row_sp->GetOffset());
1118 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1119 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1120 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1122 row_sp = unwind_plan.GetRowForFunctionOffset(10);
1123 EXPECT_EQ(10ull, row_sp->GetOffset());
1124 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1125 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1126 EXPECT_EQ(12, row_sp->GetCFAValue().GetOffset());
1128 row_sp = unwind_plan.GetRowForFunctionOffset(12);
1129 EXPECT_EQ(12ull, row_sp->GetOffset());
1130 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1131 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1132 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1137 UnwindPlan::RowSP row_sp;
1151 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1153 EXPECT_EQ(2ull, row_sp->GetOffset());
1154 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1155 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1156 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1158 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r15, regloc));
1165 UnwindPlan::RowSP row_sp;
1179 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1181 EXPECT_EQ(2ull, row_sp->GetOffset());
1182 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1183 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1184 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1186 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r14, regloc));
1193 UnwindPlan::RowSP row_sp;
1207 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1209 EXPECT_EQ(2ull, row_sp->GetOffset());
1210 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1211 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1212 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1214 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r13, regloc));
1221 UnwindPlan::RowSP row_sp;
1235 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1237 EXPECT_EQ(2ull, row_sp->GetOffset());
1238 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1239 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1240 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1242 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r12, regloc));
1249 UnwindPlan::RowSP row_sp;
1263 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1265 EXPECT_EQ(1ull, row_sp->GetOffset());
1266 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1267 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1268 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1270 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rbx, regloc));
1280 UnwindPlan::RowSP row_sp;
1295 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1296 EXPECT_EQ(1ull, row_sp->GetOffset());
1297 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
1298 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1299 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1301 EXPECT_FALSE(row_sp->GetRegisterInfo(k_eax, regloc));
1309 UnwindPlan::RowSP row_sp;
1324 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1325 EXPECT_EQ(1ull, row_sp->GetOffset());
1326 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
1327 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1328 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1330 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ecx, regloc));
1338 UnwindPlan::RowSP row_sp;
1353 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1354 EXPECT_EQ(1ull, row_sp->GetOffset());
1355 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
1356 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1357 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1359 EXPECT_FALSE(row_sp->GetRegisterInfo(k_edx, regloc));
1364 UnwindPlan::RowSP row_sp;
1379 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1380 EXPECT_EQ(1ull, row_sp->GetOffset());
1381 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
1382 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1383 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1385 EXPECT_TRUE(row_sp->GetRegisterInfo(k_ebx, regloc));
1392 UnwindPlan::RowSP row_sp;
1407 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1408 EXPECT_EQ(1ull, row_sp->GetOffset());
1409 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
1410 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1411 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1413 EXPECT_TRUE(row_sp->GetRegisterInfo(k_ebp, regloc));
1420 UnwindPlan::RowSP row_sp;
1434 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1436 EXPECT_EQ(2ull, row_sp->GetOffset());
1437 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1438 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1439 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
1441 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rbp, regloc));
1448 UnwindPlan::RowSP row_sp;
1463 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1464 EXPECT_EQ(1ull, row_sp->GetOffset());
1465 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
1466 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1467 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1469 EXPECT_TRUE(row_sp->GetRegisterInfo(k_esi, regloc));
1476 UnwindPlan::RowSP row_sp;
1491 row_sp = unwind_plan.GetRowForFunctionOffset(1);
1492 EXPECT_EQ(1ull, row_sp->GetOffset());
1493 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
1494 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1495 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1497 EXPECT_TRUE(row_sp->GetRegisterInfo(k_edi, regloc));
1504 UnwindPlan::RowSP row_sp;
1518 row_sp = unwind_plan.GetRowForFunctionOffset(3);
1520 EXPECT_EQ(3ull, row_sp->GetOffset());
1521 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
1522 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1523 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1535 row_sp = unwind_plan.GetRowForFunctionOffset(3);
1536 EXPECT_EQ(3ull, row_sp->GetOffset());
1537 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
1538 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1539 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1551 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1552 EXPECT_EQ(2ull, row_sp->GetOffset());
1553 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_ebp);
1554 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1555 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1567 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1568 EXPECT_EQ(2ull, row_sp->GetOffset());
1569 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_ebp);
1570 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1571 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1576 UnwindPlan::RowSP row_sp;
1591 row_sp = unwind_plan.GetRowForFunctionOffset(7);
1592 EXPECT_EQ(7ull, row_sp->GetOffset());
1593 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1594 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1595 EXPECT_EQ(264, row_sp->GetCFAValue().GetOffset());
1607 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1608 EXPECT_EQ(4ull, row_sp->GetOffset());
1609 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1610 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1611 EXPECT_EQ(24, row_sp->GetCFAValue().GetOffset());
1616 UnwindPlan::RowSP row_sp;
1631 row_sp = unwind_plan.GetRowForFunctionOffset(6);
1632 EXPECT_EQ(6ull, row_sp->GetOffset());
1633 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1634 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1635 EXPECT_EQ(260, row_sp->GetCFAValue().GetOffset());
1647 row_sp = unwind_plan.GetRowForFunctionOffset(3);
1648 EXPECT_EQ(3ull, row_sp->GetOffset());
1649 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1650 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1651 EXPECT_EQ(20, row_sp->GetCFAValue().GetOffset());
1656 UnwindPlan::RowSP row_sp;
1671 row_sp = unwind_plan.GetRowForFunctionOffset(7);
1672 EXPECT_EQ(7ull, row_sp->GetOffset());
1673 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1674 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1675 EXPECT_EQ(8 - 256, row_sp->GetCFAValue().GetOffset());
1687 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1688 EXPECT_EQ(4ull, row_sp->GetOffset());
1689 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1690 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1691 EXPECT_EQ(8 - 16, row_sp->GetCFAValue().GetOffset());
1696 UnwindPlan::RowSP row_sp;
1711 row_sp = unwind_plan.GetRowForFunctionOffset(6);
1712 EXPECT_EQ(6ull, row_sp->GetOffset());
1713 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1714 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1715 EXPECT_EQ(4 - 256, row_sp->GetCFAValue().GetOffset());
1727 row_sp = unwind_plan.GetRowForFunctionOffset(3);
1728 EXPECT_EQ(3ull, row_sp->GetOffset());
1729 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1730 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1731 EXPECT_EQ(4 - 16, row_sp->GetCFAValue().GetOffset());
1736 UnwindPlan::RowSP row_sp;
1751 row_sp = unwind_plan.GetRowForFunctionOffset(0);
1752 EXPECT_EQ(0ull, row_sp->GetOffset());
1753 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1754 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1755 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1760 UnwindPlan::RowSP row_sp;
1776 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1777 EXPECT_EQ(2ull, row_sp->GetOffset());
1778 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1779 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1780 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1781 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbx, regloc));
1786 UnwindPlan::RowSP row_sp;
1802 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1803 EXPECT_EQ(2ull, row_sp->GetOffset());
1804 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1805 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1806 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1807 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbp, regloc));
1812 UnwindPlan::RowSP row_sp;
1828 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1829 EXPECT_EQ(4ull, row_sp->GetOffset());
1830 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1831 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1832 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1833 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r12, regloc));
1838 UnwindPlan::RowSP row_sp;
1854 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1855 EXPECT_EQ(4ull, row_sp->GetOffset());
1856 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1857 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1858 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1859 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r13, regloc));
1864 UnwindPlan::RowSP row_sp;
1880 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1881 EXPECT_EQ(4ull, row_sp->GetOffset());
1882 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1883 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1884 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1885 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r14, regloc));
1890 UnwindPlan::RowSP row_sp;
1906 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1907 EXPECT_EQ(4ull, row_sp->GetOffset());
1908 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1909 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1910 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1911 EXPECT_FALSE(row_sp->GetRegisterInfo(k_r15, regloc));
1916 UnwindPlan::RowSP row_sp;
1932 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1933 EXPECT_EQ(2ull, row_sp->GetOffset());
1934 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1935 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1936 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
1937 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebx, regloc));
1942 UnwindPlan::RowSP row_sp;
1958 row_sp = unwind_plan.GetRowForFunctionOffset(2);
1959 EXPECT_EQ(2ull, row_sp->GetOffset());
1960 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1961 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1962 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
1963 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebp, regloc));
1968 UnwindPlan::RowSP row_sp;
1984 row_sp = unwind_plan.GetRowForFunctionOffset(4);
1985 EXPECT_EQ(4ull, row_sp->GetOffset());
1986 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
1987 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
1988 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
1989 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbp, regloc));
1994 UnwindPlan::RowSP row_sp;
2010 row_sp = unwind_plan.GetRowForFunctionOffset(2);
2011 EXPECT_EQ(2ull, row_sp->GetOffset());
2012 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2013 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2014 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
2015 EXPECT_FALSE(row_sp->GetRegisterInfo(k_esi, regloc));
2020 UnwindPlan::RowSP row_sp;
2036 row_sp = unwind_plan.GetRowForFunctionOffset(2);
2037 EXPECT_EQ(2ull, row_sp->GetOffset());
2038 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2039 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2040 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
2041 EXPECT_FALSE(row_sp->GetRegisterInfo(k_edi, regloc));
2048 UnwindPlan::RowSP row_sp;
2071 row_sp = unwind_plan.GetRowForFunctionOffset(4);
2072 EXPECT_EQ(4ull, row_sp->GetOffset());
2073 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2074 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2075 EXPECT_EQ(20, row_sp->GetCFAValue().GetOffset());
2077 row_sp = unwind_plan.GetRowForFunctionOffset(7);
2078 EXPECT_EQ(7ull, row_sp->GetOffset());
2079 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2080 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2081 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2086 UnwindPlan::RowSP row_sp;
2103 row_sp = unwind_plan.GetRowForFunctionOffset(2);
2104 EXPECT_EQ(2ull, row_sp->GetOffset());
2105 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2106 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2107 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2108 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbp, regloc));
2113 row_sp = unwind_plan.GetRowForFunctionOffset(2);
2114 EXPECT_EQ(2ull, row_sp->GetOffset());
2115 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2116 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2117 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
2118 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebp, regloc));
2127 UnwindPlan::RowSP row_sp;
2142 row_sp = unwind_plan.GetRowForFunctionOffset(5);
2143 EXPECT_EQ(5ull, row_sp->GetOffset());
2144 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2145 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2146 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2147 EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebp, regloc));
2152 UnwindPlan::RowSP row_sp;
2171 row_sp = unwind_plan.GetRowForFunctionOffset(19);
2172 EXPECT_EQ(19ull, row_sp->GetOffset());
2173 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2174 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2176 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r14, regloc));
2180 EXPECT_TRUE(row_sp->GetRegisterInfo(k_r15, regloc));
2184 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rbx, regloc));
2191 UnwindPlan::RowSP row_sp;
2209 row_sp = unwind_plan.GetRowForFunctionOffset(12);
2210 EXPECT_EQ(12ull, row_sp->GetOffset());
2211 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2212 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2214 EXPECT_TRUE(row_sp->GetRegisterInfo(k_ebx, regloc));
2218 EXPECT_TRUE(row_sp->GetRegisterInfo(k_esi, regloc));
2225 UnwindPlan::RowSP row_sp;
2254 row_sp = std::make_shared<UnwindPlan::Row>();
2257 row_sp->SetOffset(0);
2258 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_rsp, 8);
2261 row_sp->SetRegisterInfo(k_rip, regloc);
2263 unwind_plan.AppendRow(row_sp);
2267 *new_row = *row_sp.get();
2268 row_sp.reset(new_row);
2271 row_sp->SetOffset(1);
2272 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_rsp, 16);
2274 row_sp->SetRegisterInfo(k_rbp, regloc);
2275 unwind_plan.AppendRow(row_sp);
2279 *new_row = *row_sp.get();
2280 row_sp.reset(new_row);
2283 row_sp->SetOffset(4);
2284 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_rsp, 16);
2285 unwind_plan.AppendRow(row_sp);
2293 row_sp = unwind_plan.GetRowForFunctionOffset(5);
2294 EXPECT_EQ(4ull, row_sp->GetOffset());
2297 row_sp = unwind_plan.GetRowForFunctionOffset(12);
2298 EXPECT_EQ(12ull, row_sp->GetOffset());
2299 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2300 EXPECT_EQ(152, row_sp->GetCFAValue().GetOffset());
2303 row_sp = unwind_plan.GetRowForFunctionOffset(13);
2304 EXPECT_EQ(12ull, row_sp->GetOffset());
2308 row_sp = unwind_plan.GetRowForFunctionOffset(20);
2309 EXPECT_EQ(20ull, row_sp->GetOffset());
2310 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2311 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2316 UnwindPlan::RowSP row_sp;
2341 row_sp = std::make_shared<UnwindPlan::Row>();
2344 row_sp->SetOffset(0);
2345 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_rsp, 8);
2348 row_sp->SetRegisterInfo(k_rip, regloc);
2350 unwind_plan.AppendRow(row_sp);
2354 *new_row = *row_sp.get();
2355 row_sp.reset(new_row);
2358 row_sp->SetOffset(1);
2359 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_rsp, 16);
2361 row_sp->SetRegisterInfo(k_rbp, regloc);
2362 unwind_plan.AppendRow(row_sp);
2366 *new_row = *row_sp.get();
2367 row_sp.reset(new_row);
2370 row_sp->SetOffset(4);
2371 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_rbp, 16);
2372 unwind_plan.AppendRow(row_sp);
2378 row_sp = unwind_plan.GetRowForFunctionOffset(6);
2379 EXPECT_EQ(6ull, row_sp->GetOffset());
2380 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2381 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2389 // EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbp, regloc));
2394 UnwindPlan::RowSP row_sp;
2419 row_sp = std::make_shared<UnwindPlan::Row>();
2422 row_sp->SetOffset(0);
2423 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_esp, 4);
2426 row_sp->SetRegisterInfo(k_eip, regloc);
2428 unwind_plan.AppendRow(row_sp);
2432 *new_row = *row_sp.get();
2433 row_sp.reset(new_row);
2436 row_sp->SetOffset(1);
2437 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_esp, 8);
2439 row_sp->SetRegisterInfo(k_ebp, regloc);
2440 unwind_plan.AppendRow(row_sp);
2444 *new_row = *row_sp.get();
2445 row_sp.reset(new_row);
2448 row_sp->SetOffset(3);
2449 row_sp->GetCFAValue().SetIsRegisterPlusOffset(k_ebp, 8);
2450 unwind_plan.AppendRow(row_sp);
2456 row_sp = unwind_plan.GetRowForFunctionOffset(5);
2457 EXPECT_EQ(5ull, row_sp->GetOffset());
2458 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
2459 EXPECT_EQ(4, row_sp->GetCFAValue().GetOffset());
2467 // EXPECT_FALSE(row_sp->GetRegisterInfo(k_ebp, regloc));
2476 UnwindPlan::RowSP row_sp;
2493 row_sp = unwind_plan.GetRowForFunctionOffset(2);
2494 EXPECT_EQ(2ull, row_sp->GetOffset());
2495 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
2496 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2497 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2499 EXPECT_TRUE(row_sp->GetRegisterInfo(k_ebp, regloc));
2508 row_sp = unwind_plan.GetRowForFunctionOffset(2);
2509 EXPECT_EQ(0ull, row_sp->GetOffset());
2510 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2511 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2512 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2514 EXPECT_FALSE(row_sp->GetRegisterInfo(k_rbp, regloc));
2718 UnwindPlan::RowSP row_sp = unwind_plan.GetRowForFunctionOffset(0);
2719 EXPECT_EQ(0ull, row_sp->GetOffset());
2720 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2721 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2722 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2724 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2729 row_sp = unwind_plan.GetRowForFunctionOffset(1);
2730 EXPECT_EQ(1ull, row_sp->GetOffset());
2731 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2732 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2733 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2735 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2740 row_sp = unwind_plan.GetRowForFunctionOffset(4);
2741 EXPECT_EQ(4ull, row_sp->GetOffset());
2742 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2743 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2744 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2746 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2751 row_sp = unwind_plan.GetRowForFunctionOffset(7);
2752 EXPECT_EQ(7ull, row_sp->GetOffset());
2753 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2754 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2755 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2757 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2762 row_sp = unwind_plan.GetRowForFunctionOffset(8);
2763 EXPECT_EQ(8ull, row_sp->GetOffset());
2764 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2765 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2766 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2768 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2773 row_sp = unwind_plan.GetRowForFunctionOffset(11);
2774 EXPECT_EQ(11ull, row_sp->GetOffset());
2775 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2776 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2777 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2779 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2784 row_sp = unwind_plan.GetRowForFunctionOffset(12);
2785 EXPECT_EQ(12ull, row_sp->GetOffset());
2786 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2787 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2788 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2790 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2795 row_sp = unwind_plan.GetRowForFunctionOffset(15);
2796 EXPECT_EQ(15ull, row_sp->GetOffset());
2797 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2798 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2799 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2801 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2806 row_sp = unwind_plan.GetRowForFunctionOffset(18);
2807 EXPECT_EQ(18ull, row_sp->GetOffset());
2808 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2809 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2810 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2812 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2817 row_sp = unwind_plan.GetRowForFunctionOffset(21);
2818 EXPECT_EQ(21ull, row_sp->GetOffset());
2819 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2820 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2821 EXPECT_EQ(8, row_sp->GetCFAValue().GetOffset());
2823 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2828 row_sp = unwind_plan.GetRowForFunctionOffset(24);
2829 EXPECT_EQ(24ull, row_sp->GetOffset());
2830 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2831 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2832 EXPECT_EQ(16, row_sp->GetCFAValue().GetOffset());
2834 EXPECT_TRUE(row_sp->GetRegisterInfo(k_rip, regloc));
2884 UnwindPlan::RowSP row_sp = unwind_plan.GetRowForFunctionOffset(16);
2885 EXPECT_EQ(16ull, row_sp->GetOffset());
2886 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
2887 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2888 EXPECT_EQ(wordsize, row_sp->GetCFAValue().GetOffset());
2893 row_sp = unwind_plan.GetRowForFunctionOffset(18);
2894 EXPECT_EQ(18ull, row_sp->GetOffset());
2895 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_ebp);
2896 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2897 EXPECT_EQ(wordsize * 2, row_sp->GetCFAValue().GetOffset());
2902 row_sp = unwind_plan.GetRowForFunctionOffset(28);
2903 EXPECT_EQ(28ull, row_sp->GetOffset());
2904 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_ebp);
2905 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2906 EXPECT_EQ(wordsize * 2, row_sp->GetCFAValue().GetOffset());
2911 row_sp = unwind_plan.GetRowForFunctionOffset(34);
2912 EXPECT_EQ(34ull, row_sp->GetOffset());
2913 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_esp);
2914 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2915 EXPECT_EQ(wordsize, row_sp->GetCFAValue().GetOffset());
2926 row_sp = unwind_plan.GetRowForFunctionOffset(16);
2927 EXPECT_EQ(16ull, row_sp->GetOffset());
2928 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2929 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2930 EXPECT_EQ(wordsize, row_sp->GetCFAValue().GetOffset());
2935 row_sp = unwind_plan.GetRowForFunctionOffset(18);
2936 EXPECT_EQ(18ull, row_sp->GetOffset());
2937 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2938 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2939 EXPECT_EQ(wordsize * 2, row_sp->GetCFAValue().GetOffset());
2944 row_sp = unwind_plan.GetRowForFunctionOffset(28);
2945 EXPECT_EQ(28ull, row_sp->GetOffset());
2946 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rbp);
2947 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2948 EXPECT_EQ(wordsize * 2, row_sp->GetCFAValue().GetOffset());
2953 row_sp = unwind_plan.GetRowForFunctionOffset(34);
2954 EXPECT_EQ(34ull, row_sp->GetOffset());
2955 EXPECT_TRUE(row_sp->GetCFAValue().GetRegisterNumber() == k_rsp);
2956 EXPECT_TRUE(row_sp->GetCFAValue().IsRegisterPlusOffset() == true);
2957 EXPECT_EQ(wordsize, row_sp->GetCFAValue().GetOffset());