OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
5 */ | 5 */ |
| 6 #include "native_client/src/include/arm_sandbox.h" |
6 #include "native_client/src/trusted/service_runtime/include/bits/nacl_syscalls.h
" | 7 #include "native_client/src/trusted/service_runtime/include/bits/nacl_syscalls.h
" |
7 #include "native_client/src/trusted/service_runtime/nacl_config.h" | 8 #include "native_client/src/trusted/service_runtime/nacl_config.h" |
8 | 9 |
9 #define halt 0xe1266676 | |
10 /* the macros below are used with movw/movt and absolute values */ | 10 /* the macros below are used with movw/movt and absolute values */ |
11 /* llvm-mc does not like the use of :lower16:/:upper16: with absolute values */ | 11 /* llvm-mc does not like the use of :lower16:/:upper16: with absolute values */ |
12 /* c.f.: http://llvm.org/bugs/show_bug.cgi?id=8721 */ | 12 /* c.f.: http://llvm.org/bugs/show_bug.cgi?id=8721 */ |
13 #define lower_16(x) ((x) & 0xffff) | 13 #define lower_16(x) ((x) & 0xffff) |
14 #define upper_16(x) (((x) >> 16) & 0xffff) | 14 #define upper_16(x) (((x) >> 16) & 0xffff) |
15 | 15 |
16 | 16 |
17 /* | 17 /* |
18 * Code to test various address layout boundary conditions. | 18 * Code to test various address layout boundary conditions. |
19 * This is a translation from the x86-{32,64} code, and is | 19 * This is a translation from the x86-{32,64} code, and is |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 nop | 217 nop |
218 | 218 |
219 nop | 219 nop |
220 nop | 220 nop |
221 bic r3, r3, #0xc000000f | 221 bic r3, r3, #0xc000000f |
222 blx r3 | 222 blx r3 |
223 #if defined(PNACL_AS) | 223 #if defined(PNACL_AS) |
224 /* NOTE: unlike x86 the alignment directive on ARM takes | 224 /* NOTE: unlike x86 the alignment directive on ARM takes |
225 the logarithm of the alignment */ | 225 the logarithm of the alignment */ |
226 #define POW2_BIGGER_THAN_DOT 14 | 226 #define POW2_BIGGER_THAN_DOT 14 |
227 .align32 POW2_BIGGER_THAN_DOT, halt | 227 .align32 POW2_BIGGER_THAN_DOT, NACL_INSTR_HALT_FILL |
228 .fill (TEXT_EXTEND - (1 << POW2_BIGGER_THAN_DOT))/4, 4, halt | 228 .fill (TEXT_EXTEND - (1 << POW2_BIGGER_THAN_DOT))/4, 4, \ |
| 229 NACL_INSTR_HALT_FILL |
229 #else | 230 #else |
230 .fill (TEXT_EXTEND - (. - start_of_text))/4, 4, halt | 231 .fill (TEXT_EXTEND - (. - start_of_text))/4, 4, NACL_INSTR_HALT_FILL |
231 #endif | 232 #endif |
232 | 233 |
233 end_of_text: | 234 end_of_text: |
234 | 235 |
235 #if defined(EXPECTED_RODATA) | 236 #if defined(EXPECTED_RODATA) |
236 .section .rodata | 237 .section .rodata |
237 ro_str: .ascii "Hello world\n" | 238 ro_str: .ascii "Hello world\n" |
238 /* 123456789012 */ | 239 /* 123456789012 */ |
239 #endif | 240 #endif |
OLD | NEW |