OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 8129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8140 SETUP(); | 8140 SETUP(); |
8141 RegisterDump before; | 8141 RegisterDump before; |
8142 | 8142 |
8143 START(); | 8143 START(); |
8144 // Preserve the system stack pointer, in case we clobber it. | 8144 // Preserve the system stack pointer, in case we clobber it. |
8145 __ Mov(x30, csp); | 8145 __ Mov(x30, csp); |
8146 // Initialize the other registers used in this test. | 8146 // Initialize the other registers used in this test. |
8147 uint64_t literal_base = 0x0100001000100101UL; | 8147 uint64_t literal_base = 0x0100001000100101UL; |
8148 __ Mov(x0, 0); | 8148 __ Mov(x0, 0); |
8149 __ Mov(x1, literal_base); | 8149 __ Mov(x1, literal_base); |
8150 for (unsigned i = 2; i < x30.code(); i++) { | 8150 for (int i = 2; i < x30.code(); i++) { |
8151 __ Add(Register::XRegFromCode(i), Register::XRegFromCode(i-1), x1); | 8151 __ Add(Register::XRegFromCode(i), Register::XRegFromCode(i-1), x1); |
8152 } | 8152 } |
8153 before.Dump(&masm); | 8153 before.Dump(&masm); |
8154 | 8154 |
8155 // All of these instructions should be NOPs in these forms, but have | 8155 // All of these instructions should be NOPs in these forms, but have |
8156 // alternate forms which can write into the stack pointer. | 8156 // alternate forms which can write into the stack pointer. |
8157 __ add(xzr, x0, x1); | 8157 __ add(xzr, x0, x1); |
8158 __ add(xzr, x1, xzr); | 8158 __ add(xzr, x1, xzr); |
8159 __ add(xzr, xzr, x1); | 8159 __ add(xzr, xzr, x1); |
8160 | 8160 |
(...skipping 3171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11332 __ Mov(x0, 1); | 11332 __ Mov(x0, 1); |
11333 | 11333 |
11334 END(); | 11334 END(); |
11335 | 11335 |
11336 RUN(); | 11336 RUN(); |
11337 | 11337 |
11338 CHECK_EQUAL_64(0x1, x0); | 11338 CHECK_EQUAL_64(0x1, x0); |
11339 | 11339 |
11340 TEARDOWN(); | 11340 TEARDOWN(); |
11341 } | 11341 } |
OLD | NEW |