summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'libunwindstack/tests/RegsTest.cpp')
-rw-r--r--libunwindstack/tests/RegsTest.cpp114
1 files changed, 57 insertions, 57 deletions
diff --git a/libunwindstack/tests/RegsTest.cpp b/libunwindstack/tests/RegsTest.cpp
index 7c063739d..8b2f6c83f 100644
--- a/libunwindstack/tests/RegsTest.cpp
+++ b/libunwindstack/tests/RegsTest.cpp
@@ -96,48 +96,48 @@ TEST_F(RegsTest, regs64) {
96 96
97TEST_F(RegsTest, rel_pc) { 97TEST_F(RegsTest, rel_pc) {
98 RegsArm64 arm64; 98 RegsArm64 arm64;
99 ASSERT_EQ(0xcU, arm64.GetAdjustedPc(0x10, elf_.get())); 99 ASSERT_EQ(4U, arm64.GetPcAdjustment(0x10, elf_.get()));
100 ASSERT_EQ(0x0U, arm64.GetAdjustedPc(0x4, elf_.get())); 100 ASSERT_EQ(4U, arm64.GetPcAdjustment(0x4, elf_.get()));
101 ASSERT_EQ(0x3U, arm64.GetAdjustedPc(0x3, elf_.get())); 101 ASSERT_EQ(0U, arm64.GetPcAdjustment(0x3, elf_.get()));
102 ASSERT_EQ(0x2U, arm64.GetAdjustedPc(0x2, elf_.get())); 102 ASSERT_EQ(0U, arm64.GetPcAdjustment(0x2, elf_.get()));
103 ASSERT_EQ(0x1U, arm64.GetAdjustedPc(0x1, elf_.get())); 103 ASSERT_EQ(0U, arm64.GetPcAdjustment(0x1, elf_.get()));
104 ASSERT_EQ(0x0U, arm64.GetAdjustedPc(0x0, elf_.get())); 104 ASSERT_EQ(0U, arm64.GetPcAdjustment(0x0, elf_.get()));
105 105
106 RegsX86 x86; 106 RegsX86 x86;
107 ASSERT_EQ(0xffU, x86.GetAdjustedPc(0x100, elf_.get())); 107 ASSERT_EQ(1U, x86.GetPcAdjustment(0x100, elf_.get()));
108 ASSERT_EQ(0x1U, x86.GetAdjustedPc(0x2, elf_.get())); 108 ASSERT_EQ(1U, x86.GetPcAdjustment(0x2, elf_.get()));
109 ASSERT_EQ(0x0U, x86.GetAdjustedPc(0x1, elf_.get())); 109 ASSERT_EQ(1U, x86.GetPcAdjustment(0x1, elf_.get()));
110 ASSERT_EQ(0x0U, x86.GetAdjustedPc(0x0, elf_.get())); 110 ASSERT_EQ(0U, x86.GetPcAdjustment(0x0, elf_.get()));
111 111
112 RegsX86_64 x86_64; 112 RegsX86_64 x86_64;
113 ASSERT_EQ(0xffU, x86_64.GetAdjustedPc(0x100, elf_.get())); 113 ASSERT_EQ(1U, x86_64.GetPcAdjustment(0x100, elf_.get()));
114 ASSERT_EQ(0x1U, x86_64.GetAdjustedPc(0x2, elf_.get())); 114 ASSERT_EQ(1U, x86_64.GetPcAdjustment(0x2, elf_.get()));
115 ASSERT_EQ(0x0U, x86_64.GetAdjustedPc(0x1, elf_.get())); 115 ASSERT_EQ(1U, x86_64.GetPcAdjustment(0x1, elf_.get()));
116 ASSERT_EQ(0x0U, x86_64.GetAdjustedPc(0x0, elf_.get())); 116 ASSERT_EQ(0U, x86_64.GetPcAdjustment(0x0, elf_.get()));
117 117
118 RegsMips mips; 118 RegsMips mips;
119 ASSERT_EQ(0x8U, mips.GetAdjustedPc(0x10, elf_.get())); 119 ASSERT_EQ(8U, mips.GetPcAdjustment(0x10, elf_.get()));
120 ASSERT_EQ(0x0U, mips.GetAdjustedPc(0x8, elf_.get())); 120 ASSERT_EQ(8U, mips.GetPcAdjustment(0x8, elf_.get()));
121 ASSERT_EQ(0x7U, mips.GetAdjustedPc(0x7, elf_.get())); 121 ASSERT_EQ(0U, mips.GetPcAdjustment(0x7, elf_.get()));
122 ASSERT_EQ(0x6U, mips.GetAdjustedPc(0x6, elf_.get())); 122 ASSERT_EQ(0U, mips.GetPcAdjustment(0x6, elf_.get()));
123 ASSERT_EQ(0x5U, mips.GetAdjustedPc(0x5, elf_.get())); 123 ASSERT_EQ(0U, mips.GetPcAdjustment(0x5, elf_.get()));
124 ASSERT_EQ(0x4U, mips.GetAdjustedPc(0x4, elf_.get())); 124 ASSERT_EQ(0U, mips.GetPcAdjustment(0x4, elf_.get()));
125 ASSERT_EQ(0x3U, mips.GetAdjustedPc(0x3, elf_.get())); 125 ASSERT_EQ(0U, mips.GetPcAdjustment(0x3, elf_.get()));
126 ASSERT_EQ(0x2U, mips.GetAdjustedPc(0x2, elf_.get())); 126 ASSERT_EQ(0U, mips.GetPcAdjustment(0x2, elf_.get()));
127 ASSERT_EQ(0x1U, mips.GetAdjustedPc(0x1, elf_.get())); 127 ASSERT_EQ(0U, mips.GetPcAdjustment(0x1, elf_.get()));
128 ASSERT_EQ(0x0U, mips.GetAdjustedPc(0x0, elf_.get())); 128 ASSERT_EQ(0U, mips.GetPcAdjustment(0x0, elf_.get()));
129 129
130 RegsMips64 mips64; 130 RegsMips64 mips64;
131 ASSERT_EQ(0x8U, mips64.GetAdjustedPc(0x10, elf_.get())); 131 ASSERT_EQ(8U, mips64.GetPcAdjustment(0x10, elf_.get()));
132 ASSERT_EQ(0x0U, mips64.GetAdjustedPc(0x8, elf_.get())); 132 ASSERT_EQ(8U, mips64.GetPcAdjustment(0x8, elf_.get()));
133 ASSERT_EQ(0x7U, mips64.GetAdjustedPc(0x7, elf_.get())); 133 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x7, elf_.get()));
134 ASSERT_EQ(0x6U, mips64.GetAdjustedPc(0x6, elf_.get())); 134 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x6, elf_.get()));
135 ASSERT_EQ(0x5U, mips64.GetAdjustedPc(0x5, elf_.get())); 135 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x5, elf_.get()));
136 ASSERT_EQ(0x4U, mips64.GetAdjustedPc(0x4, elf_.get())); 136 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x4, elf_.get()));
137 ASSERT_EQ(0x3U, mips64.GetAdjustedPc(0x3, elf_.get())); 137 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x3, elf_.get()));
138 ASSERT_EQ(0x2U, mips64.GetAdjustedPc(0x2, elf_.get())); 138 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x2, elf_.get()));
139 ASSERT_EQ(0x1U, mips64.GetAdjustedPc(0x1, elf_.get())); 139 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x1, elf_.get()));
140 ASSERT_EQ(0x0U, mips64.GetAdjustedPc(0x0, elf_.get())); 140 ASSERT_EQ(0U, mips64.GetPcAdjustment(0x0, elf_.get()));
141} 141}
142 142
143TEST_F(RegsTest, rel_pc_arm) { 143TEST_F(RegsTest, rel_pc_arm) {
@@ -145,34 +145,34 @@ TEST_F(RegsTest, rel_pc_arm) {
145 145
146 // Check fence posts. 146 // Check fence posts.
147 elf_->FakeSetLoadBias(0); 147 elf_->FakeSetLoadBias(0);
148 ASSERT_EQ(3U, arm.GetAdjustedPc(0x5, elf_.get())); 148 ASSERT_EQ(2U, arm.GetPcAdjustment(0x5, elf_.get()));
149 ASSERT_EQ(4U, arm.GetAdjustedPc(0x4, elf_.get())); 149 ASSERT_EQ(0U, arm.GetPcAdjustment(0x4, elf_.get()));
150 ASSERT_EQ(3U, arm.GetAdjustedPc(0x3, elf_.get())); 150 ASSERT_EQ(0U, arm.GetPcAdjustment(0x3, elf_.get()));
151 ASSERT_EQ(2U, arm.GetAdjustedPc(0x2, elf_.get())); 151 ASSERT_EQ(0U, arm.GetPcAdjustment(0x2, elf_.get()));
152 ASSERT_EQ(1U, arm.GetAdjustedPc(0x1, elf_.get())); 152 ASSERT_EQ(0U, arm.GetPcAdjustment(0x1, elf_.get()));
153 ASSERT_EQ(0U, arm.GetAdjustedPc(0x0, elf_.get())); 153 ASSERT_EQ(0U, arm.GetPcAdjustment(0x0, elf_.get()));
154 154
155 elf_->FakeSetLoadBias(0x100); 155 elf_->FakeSetLoadBias(0x100);
156 ASSERT_EQ(0xffU, arm.GetAdjustedPc(0xff, elf_.get())); 156 ASSERT_EQ(0U, arm.GetPcAdjustment(0xff, elf_.get()));
157 ASSERT_EQ(0x103U, arm.GetAdjustedPc(0x105, elf_.get())); 157 ASSERT_EQ(2U, arm.GetPcAdjustment(0x105, elf_.get()));
158 ASSERT_EQ(0x104U, arm.GetAdjustedPc(0x104, elf_.get())); 158 ASSERT_EQ(0U, arm.GetPcAdjustment(0x104, elf_.get()));
159 ASSERT_EQ(0x103U, arm.GetAdjustedPc(0x103, elf_.get())); 159 ASSERT_EQ(0U, arm.GetPcAdjustment(0x103, elf_.get()));
160 ASSERT_EQ(0x102U, arm.GetAdjustedPc(0x102, elf_.get())); 160 ASSERT_EQ(0U, arm.GetPcAdjustment(0x102, elf_.get()));
161 ASSERT_EQ(0x101U, arm.GetAdjustedPc(0x101, elf_.get())); 161 ASSERT_EQ(0U, arm.GetPcAdjustment(0x101, elf_.get()));
162 ASSERT_EQ(0x100U, arm.GetAdjustedPc(0x100, elf_.get())); 162 ASSERT_EQ(0U, arm.GetPcAdjustment(0x100, elf_.get()));
163 163
164 // Check thumb instructions handling. 164 // Check thumb instructions handling.
165 elf_->FakeSetLoadBias(0); 165 elf_->FakeSetLoadBias(0);
166 memory_->SetData32(0x2000, 0); 166 memory_->SetData32(0x2000, 0);
167 ASSERT_EQ(0x2003U, arm.GetAdjustedPc(0x2005, elf_.get())); 167 ASSERT_EQ(2U, arm.GetPcAdjustment(0x2005, elf_.get()));
168 memory_->SetData32(0x2000, 0xe000f000); 168 memory_->SetData32(0x2000, 0xe000f000);
169 ASSERT_EQ(0x2001U, arm.GetAdjustedPc(0x2005, elf_.get())); 169 ASSERT_EQ(4U, arm.GetPcAdjustment(0x2005, elf_.get()));
170 170
171 elf_->FakeSetLoadBias(0x400); 171 elf_->FakeSetLoadBias(0x400);
172 memory_->SetData32(0x2100, 0); 172 memory_->SetData32(0x2100, 0);
173 ASSERT_EQ(0x2503U, arm.GetAdjustedPc(0x2505, elf_.get())); 173 ASSERT_EQ(2U, arm.GetPcAdjustment(0x2505, elf_.get()));
174 memory_->SetData32(0x2100, 0xf111f111); 174 memory_->SetData32(0x2100, 0xf111f111);
175 ASSERT_EQ(0x2501U, arm.GetAdjustedPc(0x2505, elf_.get())); 175 ASSERT_EQ(4U, arm.GetPcAdjustment(0x2505, elf_.get()));
176} 176}
177 177
178TEST_F(RegsTest, elf_invalid) { 178TEST_F(RegsTest, elf_invalid) {
@@ -188,27 +188,27 @@ TEST_F(RegsTest, elf_invalid) {
188 188
189 regs_arm.set_pc(0x1500); 189 regs_arm.set_pc(0x1500);
190 EXPECT_EQ(0x500U, invalid_elf->GetRelPc(regs_arm.pc(), &map_info)); 190 EXPECT_EQ(0x500U, invalid_elf->GetRelPc(regs_arm.pc(), &map_info));
191 EXPECT_EQ(0x4fcU, regs_arm.GetAdjustedPc(0x500U, invalid_elf)); 191 EXPECT_EQ(4U, regs_arm.GetPcAdjustment(0x500U, invalid_elf));
192 192
193 regs_arm64.set_pc(0x1600); 193 regs_arm64.set_pc(0x1600);
194 EXPECT_EQ(0x600U, invalid_elf->GetRelPc(regs_arm64.pc(), &map_info)); 194 EXPECT_EQ(0x600U, invalid_elf->GetRelPc(regs_arm64.pc(), &map_info));
195 EXPECT_EQ(0x600U, regs_arm64.GetAdjustedPc(0x600U, invalid_elf)); 195 EXPECT_EQ(0U, regs_arm64.GetPcAdjustment(0x600U, invalid_elf));
196 196
197 regs_x86.set_pc(0x1700); 197 regs_x86.set_pc(0x1700);
198 EXPECT_EQ(0x700U, invalid_elf->GetRelPc(regs_x86.pc(), &map_info)); 198 EXPECT_EQ(0x700U, invalid_elf->GetRelPc(regs_x86.pc(), &map_info));
199 EXPECT_EQ(0x700U, regs_x86.GetAdjustedPc(0x700U, invalid_elf)); 199 EXPECT_EQ(0U, regs_x86.GetPcAdjustment(0x700U, invalid_elf));
200 200
201 regs_x86_64.set_pc(0x1800); 201 regs_x86_64.set_pc(0x1800);
202 EXPECT_EQ(0x800U, invalid_elf->GetRelPc(regs_x86_64.pc(), &map_info)); 202 EXPECT_EQ(0x800U, invalid_elf->GetRelPc(regs_x86_64.pc(), &map_info));
203 EXPECT_EQ(0x800U, regs_x86_64.GetAdjustedPc(0x800U, invalid_elf)); 203 EXPECT_EQ(0U, regs_x86_64.GetPcAdjustment(0x800U, invalid_elf));
204 204
205 regs_mips.set_pc(0x1900); 205 regs_mips.set_pc(0x1900);
206 EXPECT_EQ(0x900U, invalid_elf->GetRelPc(regs_mips.pc(), &map_info)); 206 EXPECT_EQ(0x900U, invalid_elf->GetRelPc(regs_mips.pc(), &map_info));
207 EXPECT_EQ(0x900U, regs_mips.GetAdjustedPc(0x900U, invalid_elf)); 207 EXPECT_EQ(0U, regs_mips.GetPcAdjustment(0x900U, invalid_elf));
208 208
209 regs_mips64.set_pc(0x1a00); 209 regs_mips64.set_pc(0x1a00);
210 EXPECT_EQ(0xa00U, invalid_elf->GetRelPc(regs_mips64.pc(), &map_info)); 210 EXPECT_EQ(0xa00U, invalid_elf->GetRelPc(regs_mips64.pc(), &map_info));
211 EXPECT_EQ(0xa00U, regs_mips64.GetAdjustedPc(0xa00U, invalid_elf)); 211 EXPECT_EQ(0U, regs_mips64.GetPcAdjustment(0xa00U, invalid_elf));
212} 212}
213 213
214TEST_F(RegsTest, arm_set_from_raw) { 214TEST_F(RegsTest, arm_set_from_raw) {