# Compiled by Clang | |
-- c | |
#include <stdint.h> | |
#include <stdbool.h> | |
uint64_t entry(uint64_t arg) | |
{ | |
int i = 0; | |
for (i = 2; i < arg; i++) { | |
if (arg % i == 0) { | |
return false; | |
} | |
} | |
return true; | |
} | |
-- asm | |
mov %r1, 67 | |
mov %r0, 0x1 | |
mov %r2, 0x2 | |
jgt %r1, 0x2, +4 | |
ja +10 | |
add %r2, 0x1 | |
mov %r0, 0x1 | |
jge %r2, %r1, +7 | |
mov %r3, %r1 | |
div %r3, %r2 | |
mul %r3, %r2 | |
mov %r4, %r1 | |
sub %r4, %r3 | |
mov %r0, 0x0 | |
jne %r4, 0x0, -10 | |
exit | |
-- result | |
0x1 |