diff --git a/examples/naive/armv7m/armv7m_simple0.s b/examples/naive/armv7m/armv7m_simple0.s index 937c22f2..311b016d 100644 --- a/examples/naive/armv7m/armv7m_simple0.s +++ b/examples/naive/armv7m/armv7m_simple0.s @@ -1,32 +1,32 @@ start: -ldr r1, [r0, #4] +ldr r1, [r0, #4] // @slothy:reads=a add r1, r2,r1 eor.w r1,r1, r3 smlabt r3,r2, r2, r1 asrs r3, r3,#1 -str r3, [r0,#4] +str r3, [r0,#4] // @slothy:writes=a -ldm r0, {r1-r2,r14} +ldm r0, {r1-r2,r14} // @slothy:reads=a add r1, r2,r1 eor.w r1,r1, r14 smlabt r3,r2, r2, r1 asrs r3, r3,#1 -str r3, [r0,#4] +str r3, [r0,#4] // @slothy:writes=a -ldm r0, {r1-r3} +ldm r0, {r1-r3} // @slothy:reads=a add r1, r2,r1 eor.w r1,r1, r3 smlabt r3,r2, r2, r1 asrs r3, r3,#1 -str r3, [r0,#4] +str r3, [r0,#4] // @slothy:writes=a -ldm r0, {r1,r2,r3} +ldm r0, {r1,r2,r3} // @slothy:reads=a add r1, r2,r1 eor.w r1,r1, r3 smlabt r3,r2, r2, r1 asrs r3, r3,#1 -str r3, [r0,#4] +str r3, [r0,#4] // @slothy:writes=a end: \ No newline at end of file diff --git a/examples/opt/armv7m/armv7m_simple0_opt_m7.s b/examples/opt/armv7m/armv7m_simple0_opt_m7.s index b88c82bc..24d327fe 100644 --- a/examples/opt/armv7m/armv7m_simple0_opt_m7.s +++ b/examples/opt/armv7m/armv7m_simple0_opt_m7.s @@ -1,42 +1,42 @@ start: - // Instructions: 24 - // Expected cycles: 14 - // Expected IPC: 1.71 - // - // Cycle bound: 14.0 - // IPC bound: 1.71 - // - // Wall time: 0.40s - // User time: 0.40s - // - // ----- cycle (expected) ------> - // 0 25 - // |------------------------|---- - ldr r10, [r0, #4] // *............................. - ldm r0, {r1,r7,r14} // .*............................ - add r10, r2, r10 // .*............................ - eor.w r10, r10, r3 // ..*........................... - smlabt r2, r2, r2, r10 // ..*........................... - ldm r0, {r10,r11,r12} // ....*......................... - add r1, r7, r1 // ....*......................... - eor.w r1, r1, r14 // .....*........................ - smlabt r6, r7, r7, r1 // .....*........................ - asrs r1, r2, #1 // ......*....................... - str r1, [r0, #4] // ......*....................... - add r4, r11, r10 // .......*...................... - ldm r0, {r1,r2,r14} // .......*...................... - asrs r10, r6, #1 // ........*..................... - eor.w r6, r4, r12 // ........*..................... - smlabt r11, r11, r11, r6 // .........*.................... - add r1, r2, r1 // ..........*................... - str r10, [r0, #4] // ..........*................... - eor.w r1, r1, r14 // ...........*.................. - smlabt r7, r2, r2, r1 // ...........*.................. - asrs r1, r11, #1 // ............*................. - str r1, [r0, #4] // ............*................. - asrs r3, r7, #1 // .............*................ - str r3, [r0, #4] // .............*................ + // Instructions: 24 + // Expected cycles: 26 + // Expected IPC: 0.92 + // + // Cycle bound: 26.0 + // IPC bound: 0.92 + // + // Wall time: 0.14s + // User time: 0.14s + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + ldr r1, [r0, #4] // *............................. // @slothy:reads=a + add r11, r2, r1 // .*............................ + eor.w r12, r11, r3 // ..*........................... + smlabt r4, r2, r2, r12 // ..*........................... + asrs r9, r4, #1 // ....*......................... + str r9, [r0, #4] // ....*......................... // @slothy:writes=a + ldm r0, {r2,r6,r14} // .....*........................ // @slothy:reads=a + add r3, r6, r2 // ........*..................... + eor.w r1, r3, r14 // .........*.................... + smlabt r6, r6, r6, r1 // .........*.................... + asrs r3, r6, #1 // ...........*.................. + str r3, [r0, #4] // ...........*.................. // @slothy:writes=a + ldm r0, {r5,r7,r8} // ............*................. // @slothy:reads=a + add r1, r7, r5 // ...............*.............. + eor.w r9, r1, r8 // ................*............. + smlabt r5, r7, r7, r9 // ................*............. + asrs r5, r5, #1 // ..................*........... + str r5, [r0, #4] // ..................*........... // @slothy:writes=a + ldm r0, {r1,r2,r10} // ...................*.......... // @slothy:reads=a + add r4, r2, r1 // ......................*....... + eor.w r11, r4, r10 // .......................*...... + smlabt r3, r2, r2, r11 // .......................*...... + asrs r3, r3, #1 // .........................*.... + str r3, [r0, #4] // .........................*.... // @slothy:writes=a // ------ cycle (expected) ------> // 0 25 @@ -45,25 +45,25 @@ // add r1, r2,r1 // .*............................. // eor.w r1,r1, r3 // ..*............................ // smlabt r3,r2, r2, r1 // ..*............................ - // asrs r3, r3,#1 // ......*........................ - // str r3, [r0,#4] // ......*........................ - // ldm r0, {r1-r2,r14} // ....*.......................... - // add r1, r2,r1 // .......*....................... - // eor.w r1,r1, r14 // ........*...................... + // asrs r3, r3,#1 // ....*.......................... + // str r3, [r0,#4] // ....*.......................... + // ldm r0, {r1-r2,r14} // .....*......................... + // add r1, r2,r1 // ........*...................... + // eor.w r1,r1, r14 // .........*..................... // smlabt r3,r2, r2, r1 // .........*..................... - // asrs r3, r3,#1 // ............*.................. - // str r3, [r0,#4] // ............*.................. - // ldm r0, {r1-r3} // .*............................. - // add r1, r2,r1 // ....*.......................... - // eor.w r1,r1, r3 // .....*......................... - // smlabt r3,r2, r2, r1 // .....*......................... - // asrs r3, r3,#1 // ........*...................... - // str r3, [r0,#4] // ..........*.................... - // ldm r0, {r1,r2,r3} // .......*....................... - // add r1, r2,r1 // ..........*.................... - // eor.w r1,r1, r3 // ...........*................... - // smlabt r3,r2, r2, r1 // ...........*................... - // asrs r3, r3,#1 // .............*................. - // str r3, [r0,#4] // .............*................. + // asrs r3, r3,#1 // ...........*................... + // str r3, [r0,#4] // ...........*................... + // ldm r0, {r1-r3} // ............*.................. + // add r1, r2,r1 // ...............*............... + // eor.w r1,r1, r3 // ................*.............. + // smlabt r3,r2, r2, r1 // ................*.............. + // asrs r3, r3,#1 // ..................*............ + // str r3, [r0,#4] // ..................*............ + // ldm r0, {r1,r2,r3} // ...................*........... + // add r1, r2,r1 // ......................*........ + // eor.w r1,r1, r3 // .......................*....... + // smlabt r3,r2, r2, r1 // .......................*....... + // asrs r3, r3,#1 // .........................*..... + // str r3, [r0,#4] // .........................*..... end: