| .. | .. |
|---|
| 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 |
|---|