diff --git a/src/bitrev.gdb b/src/bitrev.gdb new file mode 100644 index 0000000..4139477 --- /dev/null +++ b/src/bitrev.gdb @@ -0,0 +1,2 @@ +c +info registers r6 r7 r8 r9 r10 r11 r12 r13 diff --git a/src/bitrev.log b/src/bitrev.log new file mode 100644 index 0000000..2b07fd3 --- /dev/null +++ b/src/bitrev.log @@ -0,0 +1,13 @@ +Breakpoint 1 at 0x10078 +Breakpoint 2 at 0x10100 +0x0000000000010078 in _start () + +Breakpoint 2, 0x0000000000010100 in _stop () +r6 <00> 0xc2e01e6a2c48 214267838737480 +r7 <00> 0x1000f77db57b 17596338255227 +r8 <00> 0x50505050 1347440720 +r9 <00> 0x7b03b57b 2063840635 +r10 <00> 0xf7b3d591e6a2c48 1115552785675988040 +r11 <00> 0x5353b77f7f5300 23454470650155776 +r12 <00> 0x505050505050505 361700864190383365 +r13 <00> 0xb55d885f735ff77d 13068751637237987197 diff --git a/src/bitrev.s b/src/bitrev.s new file mode 100644 index 0000000..ebc5cf3 --- /dev/null +++ b/src/bitrev.s @@ -0,0 +1,29 @@ +.global _start +.global _stop + +_start: +{ + adds 0, 0x12345678, %r0 + adds 0, 0xdeadbeef, %r1 + adds 0, 0x0a0a0a0a, %r2 +} +{ + addd 0, 0x123456789abcdef0, %r3 + addd 0, 0x00cafefeedcaca00, %r4 +} +{ + addd 0, 0xa0a0a0a0a0a0a0a0, %r5 + bitrevs %r0, %r6 + bitrevs %r1, %r7 + bitrevs %r2, %r8 + bitrevs 0xdeadc0de, %r9 +} +{ + bitrevd %r3, %r10 + bitrevd %r4, %r11 + bitrevd %r5, %r12 + bitrevd 0xbeeffacefa11baad, %r13 +} + +_stop: + udivs 0, 0, %empty