Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/globals.h" | 5 #include "vm/globals.h" |
| 6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) |
| 7 | 7 |
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
| 9 #include "vm/cpu.h" | 9 #include "vm/cpu.h" |
| 10 #include "vm/os.h" | 10 #include "vm/os.h" |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 100 ASSEMBLER_TEST_GENERATE(Vmov, assembler) { | 100 ASSEMBLER_TEST_GENERATE(Vmov, assembler) { |
| 101 if (TargetCPUFeatures::vfp_supported()) { | 101 if (TargetCPUFeatures::vfp_supported()) { |
| 102 __ mov(R3, Operand(43)); | 102 __ mov(R3, Operand(43)); |
| 103 __ mov(R1, Operand(41)); | 103 __ mov(R1, Operand(41)); |
| 104 __ vmovsrr(S1, R1, R3); // S1:S2 = 41:43 | 104 __ vmovsrr(S1, R1, R3); // S1:S2 = 41:43 |
| 105 __ vmovs(S0, S2); // S0 = S2, S0:S1 == 43:41 | 105 __ vmovs(S0, S2); // S0 = S2, S0:S1 == 43:41 |
| 106 __ vmovd(D2, D0); // D2 = D0, S4:S5 == 43:41 | 106 __ vmovd(D2, D0); // D2 = D0, S4:S5 == 43:41 |
| 107 __ vmovrs(R3, S5); // R3 = S5, R3 == 41 | 107 __ vmovrs(R3, S5); // R3 = S5, R3 == 41 |
| 108 __ vmovrrs(R1, R2, S4); // R1:R2 = S4:S5, R1:R2 == 43:41 | 108 __ vmovrrs(R1, R2, S4); // R1:R2 = S4:S5, R1:R2 == 43:41 |
| 109 __ vmovdrr(D3, R3, R2); // D3 = R3:R2, S6:S7 == 41:41 | 109 __ vmovdrr(D3, R3, R2); // D3 = R3:R2, S6:S7 == 41:41 |
| 110 __ vmovsr(S7, R1); // S7 = R1, S6:S7 == 41:43 | 110 __ vmovdr(D3, 1, R1); // S7 = R1, S6:S7 == 41:43 |
|
regis
2014/09/25 22:04:01
D3[1] == S7 = R1
zra
2014/09/25 22:08:25
Done.
| |
| 111 __ vmovrrd(R0, R1, D3); // R0:R1 = D3, R0:R1 == 41:43 | 111 __ vmovrrd(R0, R1, D3); // R0:R1 = D3, R0:R1 == 41:43 |
| 112 __ sub(R0, R1, Operand(R0)); // 43-41 | 112 __ sub(R0, R1, Operand(R0)); // 43-41 |
| 113 } else { | 113 } else { |
| 114 __ LoadImmediate(R0, 2); | 114 __ LoadImmediate(R0, 2); |
| 115 } | 115 } |
| 116 __ bx(LR); | 116 __ bx(LR); |
| 117 } | 117 } |
| 118 | 118 |
| 119 | 119 |
| 120 ASSEMBLER_TEST_RUN(Vmov, test) { | 120 ASSEMBLER_TEST_RUN(Vmov, test) { |
| (...skipping 3955 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4076 __ StoreIntoObject(R2, | 4076 __ StoreIntoObject(R2, |
| 4077 FieldAddress(R2, GrowableObjectArray::data_offset()), | 4077 FieldAddress(R2, GrowableObjectArray::data_offset()), |
| 4078 R1); | 4078 R1); |
| 4079 __ PopList((1 << CTX) | (1 << LR)); | 4079 __ PopList((1 << CTX) | (1 << LR)); |
| 4080 __ Ret(); | 4080 __ Ret(); |
| 4081 } | 4081 } |
| 4082 | 4082 |
| 4083 } // namespace dart | 4083 } // namespace dart |
| 4084 | 4084 |
| 4085 #endif // defined TARGET_ARCH_ARM | 4085 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |