.. | .. |
---|
3 | 3 | |
---|
4 | 4 | .data |
---|
5 | 5 | .balign 8 |
---|
6 | | -message: |
---|
| 6 | +success_message: |
---|
7 | 7 | .ascii "success: switch_endian_test\n\0" |
---|
| 8 | + |
---|
| 9 | + .balign 8 |
---|
| 10 | +failure_message: |
---|
| 11 | + .ascii "failure: switch_endian_test\n\0" |
---|
8 | 12 | |
---|
9 | 13 | .section ".toc" |
---|
10 | 14 | .balign 8 |
---|
.. | .. |
---|
64 | 68 | li r0, __NR_switch_endian |
---|
65 | 69 | sc |
---|
66 | 70 | |
---|
| 71 | + tdi 0, 0, 0x48 // b +8 if the endian was switched |
---|
| 72 | + b .Lfail // exit if endian didn't switch |
---|
| 73 | + |
---|
67 | 74 | #include "check-reversed.S" |
---|
68 | 75 | |
---|
69 | 76 | /* Flip back, r0 already has the switch syscall number */ |
---|
.. | .. |
---|
71 | 78 | |
---|
72 | 79 | #include "check.S" |
---|
73 | 80 | |
---|
| 81 | + ld r4, success_message@got(%r2) |
---|
| 82 | + li r5, 28 // strlen(success_message) |
---|
| 83 | + li r14, 0 // exit status |
---|
| 84 | +.Lout: |
---|
74 | 85 | li r0, __NR_write |
---|
75 | 86 | li r3, 1 /* stdout */ |
---|
76 | | - ld r4, message@got(%r2) |
---|
77 | | - li r5, 28 /* strlen(message3) */ |
---|
78 | 87 | sc |
---|
79 | 88 | li r0, __NR_exit |
---|
80 | | - li r3, 0 |
---|
| 89 | + mr r3, r14 |
---|
81 | 90 | sc |
---|
82 | 91 | b . |
---|
| 92 | + |
---|
| 93 | +.Lfail: |
---|
| 94 | + ld r4, failure_message@got(%r2) |
---|
| 95 | + li r5, 28 // strlen(failure_message) |
---|
| 96 | + li r14, 1 |
---|
| 97 | + b .Lout |
---|