OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 __ stm(db_w, sp, r4.bit() | fp.bit() | lr.bit()); | 258 __ stm(db_w, sp, r4.bit() | fp.bit() | lr.bit()); |
259 __ sub(fp, ip, Operand(4)); | 259 __ sub(fp, ip, Operand(4)); |
260 | 260 |
261 __ mov(r4, Operand(r0)); | 261 __ mov(r4, Operand(r0)); |
262 __ vldr(d6, r4, OFFSET_OF(T, a)); | 262 __ vldr(d6, r4, OFFSET_OF(T, a)); |
263 __ vldr(d7, r4, OFFSET_OF(T, b)); | 263 __ vldr(d7, r4, OFFSET_OF(T, b)); |
264 __ vadd(d5, d6, d7); | 264 __ vadd(d5, d6, d7); |
265 __ vstr(d5, r4, OFFSET_OF(T, c)); | 265 __ vstr(d5, r4, OFFSET_OF(T, c)); |
266 | 266 |
267 __ vmla(d5, d6, d7); | 267 __ vmla(d5, d6, d7); |
| 268 __ vmls(d5, d5, d6); |
268 | 269 |
269 __ vmov(r2, r3, d5); | 270 __ vmov(r2, r3, d5); |
270 __ vmov(d4, r2, r3); | 271 __ vmov(d4, r2, r3); |
271 __ vstr(d4, r4, OFFSET_OF(T, b)); | 272 __ vstr(d4, r4, OFFSET_OF(T, b)); |
272 | 273 |
273 // Load t.x and t.y, switch values, and store back to the struct. | 274 // Load t.x and t.y, switch values, and store back to the struct. |
274 __ vldr(s0, r4, OFFSET_OF(T, x)); | 275 __ vldr(s0, r4, OFFSET_OF(T, x)); |
275 __ vldr(s31, r4, OFFSET_OF(T, y)); | 276 __ vldr(s31, r4, OFFSET_OF(T, y)); |
276 __ vmov(s16, s0); | 277 __ vmov(s16, s0); |
277 __ vmov(s0, s31); | 278 __ vmov(s0, s31); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 CHECK_EQ(9.0, t.x); | 348 CHECK_EQ(9.0, t.x); |
348 CHECK_EQ(-123.456, t.n); | 349 CHECK_EQ(-123.456, t.n); |
349 CHECK_EQ(2718.2818, t.m); | 350 CHECK_EQ(2718.2818, t.m); |
350 CHECK_EQ(2, t.i); | 351 CHECK_EQ(2, t.i); |
351 CHECK_EQ(2718.2818, t.g); | 352 CHECK_EQ(2718.2818, t.g); |
352 CHECK_EQ(31415926.5, t.h); | 353 CHECK_EQ(31415926.5, t.h); |
353 CHECK_EQ(42.0, t.f); | 354 CHECK_EQ(42.0, t.f); |
354 CHECK_EQ(1.0, t.e); | 355 CHECK_EQ(1.0, t.e); |
355 CHECK_EQ(1.000000059604644775390625, t.d); | 356 CHECK_EQ(1.000000059604644775390625, t.d); |
356 CHECK_EQ(4.25, t.c); | 357 CHECK_EQ(4.25, t.c); |
357 CHECK_EQ(8.375, t.b); | 358 CHECK_EQ(-4.1875, t.b); |
358 CHECK_EQ(1.5, t.a); | 359 CHECK_EQ(1.5, t.a); |
359 } | 360 } |
360 } | 361 } |
361 | 362 |
362 | 363 |
363 TEST(5) { | 364 TEST(5) { |
364 // Test the ARMv7 bitfield instructions. | 365 // Test the ARMv7 bitfield instructions. |
365 InitializeVM(); | 366 InitializeVM(); |
366 v8::HandleScope scope; | 367 v8::HandleScope scope; |
367 | 368 |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1151 CHECK_EQ(2.75, t.x); | 1152 CHECK_EQ(2.75, t.x); |
1152 CHECK_EQ(1.5, t.y); | 1153 CHECK_EQ(1.5, t.y); |
1153 CHECK_EQ(17.0, t.z); | 1154 CHECK_EQ(17.0, t.z); |
1154 CHECK_EQ(14.7610017472335499, t.i); | 1155 CHECK_EQ(14.7610017472335499, t.i); |
1155 CHECK_EQ(16.0, t.j); | 1156 CHECK_EQ(16.0, t.j); |
1156 CHECK_EQ(73.8818412254460241, t.k); | 1157 CHECK_EQ(73.8818412254460241, t.k); |
1157 } | 1158 } |
1158 } | 1159 } |
1159 | 1160 |
1160 #undef __ | 1161 #undef __ |
OLD | NEW |