summaryrefslogtreecommitdiff
path: root/3/6_control/25_while_guard.c
blob: ad339172f2d6f8898c4ecac9ebc084e730bdb0a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
//  %rdi <- a
//  %rsi <- b
//  loop:
//    testq %rsi, %rsi
//    jle   .L8
long loop_while2(long a, long b) {
    long result = b;
    while (b > 0) {
        result = result * a;
        b = b - a;
    }
    return result;
}