Slide 15
Slide 15 text
• clang –S –O2 –target x86_64 add4.ll
• The output is almost the same as the previous code.
• clang –S –O2 –target aarch64 add4.ll outputs
Generating Target Assembler Code
add4:
ldp x9, x8, [x1] # [x8:x9] ← ((u128*)px)[0];
ldp x11, x10, [x2] # [x10:x11] ← ((u128*)py)[0];
ldp x13, x12, [x1, #16] # [x12:x13] ← ((u128*)px)[1];
ldp x14, x15, [x2, #16] # [x15:x14] ← ((u128*)py)[1];
adds x9, x11, x9 # x9 ← add(x11, x9)
adcs x8, x10, x8 # x8 ← add(x10, x8, CF);
adcs x10, x14, x13 # x10 ← add(x14, x13, CF);
stp x9, x8, [x0] # ((u128*)pz)[0] = [z8:z9]
adcs x9, x15, x12 # x9 ← add(x15, x12, CF);
adcs x8, xzr, xzr # x8 ← add(0, 0, CF);
stp x10, x9, [x0, #16] # ((u128*)pz)[1] = [x9:x10]
mov w0, w8 # w0 ← x8
ret
15 /32