File: misalign.c

package info (click to toggle)
biew 5.6.2-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 4,004 kB
  • ctags: 7,157
  • sloc: ansic: 50,860; asm: 809; makefile: 396; pascal: 371
file content (18 lines) | stat: -rw-r--r-- 347 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void disable_misalign( void )
{
/* Disable misaligned memory access */
  asm("pushfl\n"
      "	popl	%%eax\n"
      "	bts	$18, %%eax\n"
      "	pushl	%%eax\n"
      "	popfl"::);
/* THIS CODE MUST PRODUCED AN EXCEPTION */
 {
   long dlv[2],dlvr;
   char *eptr;
   eptr = dlv;
   eptr++;
   dlvr = 0;
   *((long *)eptr) = dlvr;
 }
}