1 /* { dg-do compile } */
2 /* { dg-additional-options "-fschedule-insns -fPIC -mprefergot" } */
3
4 static __inline __attribute__ ((__always_inline__)) void *
_dl_mmap(void * start,int length,int prot,int flags,int fd,int offset)5 _dl_mmap (void * start, int length, int prot, int flags, int fd,
6 int offset)
7 {
8 register long __sc3 __asm__ ("r3") = 90;
9 register long __sc4 __asm__ ("r4") = (long) start;
10 register long __sc5 __asm__ ("r5") = (long) length;
11 register long __sc6 __asm__ ("r6") = (long) prot;
12 register long __sc7 __asm__ ("r7") = (long) flags;
13 register long __sc0 __asm__ ("r0") = (long) fd;
14 register long __sc1 __asm__ ("r1") = (long) offset;
15 __asm__ __volatile__ ("trapa %1"
16 : "=z" (__sc0)
17 : "i" (0x10 + 6), "0" (__sc0), "r" (__sc4),
18 "r" (__sc5), "r" (__sc6), "r" (__sc7),
19 "r" (__sc3), "r" (__sc1)
20 : "memory" );
21 }
22
23 extern int _dl_pagesize;
24 void
_dl_dprintf(int fd,const char * fmt,...)25 _dl_dprintf(int fd, const char *fmt, ...)
26 {
27 static char *buf;
28 buf = _dl_mmap ((void *) 0, _dl_pagesize, 0x1 | 0x2, 0x02 | 0x20, -1, 0);
29 }
30