| OLD | NEW |
| 1 /* Copyright (c) 2005-2010, Google Inc. | 1 /* Copyright (c) 2005-2010, Google Inc. |
| 2 * All rights reserved. | 2 * All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 1463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1474 ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n" \ | 1474 ".common "SYS_SYSCALL_ENTRYPOINT",8,8\n" \ |
| 1475 ".previous\n" \ | 1475 ".previous\n" \ |
| 1476 /* Check the SYS_SYSCALL_ENTRYPOINT vector */ \ | 1476 /* Check the SYS_SYSCALL_ENTRYPOINT vector */ \ |
| 1477 "push %%eax\n" \ | 1477 "push %%eax\n" \ |
| 1478 "call 10000f\n" \ | 1478 "call 10000f\n" \ |
| 1479 "10000:pop %%eax\n" \ | 1479 "10000:pop %%eax\n" \ |
| 1480 "add $_GLOBAL_OFFSET_TABLE_+[.-10000b], %%eax\n" \ | 1480 "add $_GLOBAL_OFFSET_TABLE_+[.-10000b], %%eax\n" \ |
| 1481 "mov "SYS_SYSCALL_ENTRYPOINT"@GOT(%%eax), %%eax\n"\ | 1481 "mov "SYS_SYSCALL_ENTRYPOINT"@GOT(%%eax), %%eax\n"\ |
| 1482 "mov 0(%%eax), %%eax\n" \ | 1482 "mov 0(%%eax), %%eax\n" \ |
| 1483 "test %%eax, %%eax\n" \ | 1483 "test %%eax, %%eax\n" \ |
| 1484 "jz 10001f\n" \ | 1484 "jz 10002f\n" \ |
| 1485 "push %%eax\n" \ | 1485 "push %%eax\n" \ |
| 1486 "lea 10002f, %%eax\n" \ | 1486 "call 10001f\n" \ |
| 1487 "10001:pop %%eax\n" \ |
| 1488 "add $(10003f-10001b), %%eax\n" \ |
| 1487 "xchg 4(%%esp), %%eax\n" \ | 1489 "xchg 4(%%esp), %%eax\n" \ |
| 1488 "ret\n" \ | 1490 "ret\n" \ |
| 1489 "10001:pop %%eax\n" \ | 1491 "10002:pop %%eax\n" \ |
| 1490 "int $0x80\n" \ | 1492 "int $0x80\n" \ |
| 1491 "10002:\n" | 1493 "10003:\n" |
| 1492 #else | 1494 #else |
| 1493 #define LSS_ENTRYPOINT "int $0x80\n" | 1495 #define LSS_ENTRYPOINT "int $0x80\n" |
| 1494 #endif | 1496 #endif |
| 1495 #undef LSS_BODY | 1497 #undef LSS_BODY |
| 1496 #define LSS_BODY(type,args...) \ | 1498 #define LSS_BODY(type,args...) \ |
| 1497 long __res; \ | 1499 long __res; \ |
| 1498 __asm__ __volatile__("push %%ebx\n" \ | 1500 __asm__ __volatile__("push %%ebx\n" \ |
| 1499 "movl %2,%%ebx\n" \ | 1501 "movl %2,%%ebx\n" \ |
| 1500 LSS_ENTRYPOINT \ | 1502 LSS_ENTRYPOINT \ |
| 1501 "pop %%ebx" \ | 1503 "pop %%ebx" \ |
| (...skipping 1962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3464 } | 3466 } |
| 3465 #endif | 3467 #endif |
| 3466 #endif | 3468 #endif |
| 3467 | 3469 |
| 3468 #if defined(__cplusplus) && !defined(SYS_CPLUSPLUS) | 3470 #if defined(__cplusplus) && !defined(SYS_CPLUSPLUS) |
| 3469 } | 3471 } |
| 3470 #endif | 3472 #endif |
| 3471 | 3473 |
| 3472 #endif | 3474 #endif |
| 3473 #endif | 3475 #endif |
| OLD | NEW |