1 .ifndef extra 2 .set extra,0 3 .endif 4 5 .macro case 6 .if \@ < 10 7 .word .L1000\@-. 8 .elseif \@ < 100 9 .word .L100\@-. 10 .elseif \@ < 1000 11 .word .L10\@-. 12 .else 13 .word .L1\@-. 14 .endif 15 .set counter,1+\@ 16 .endm 17 18 .macro case_label 19.L\@: nop 20 .endm 21 22 .macro padder 23 .endm 24 25 .text 26 .align 1 27 .global x 28 .type x,@function 29x: 30 .rept 4095+extra 31 case 32 .endr 33 34 .rept 10000-counter 35 padder 36 .endr 37 38after: 39 ; Force a secondary jump-table entry for every label. 40 .fill 32768 41 42 .rept counter 43 case_label 44 .endr 45 46 move.d esymbol,$r10 47 .size x,.-x 48 .align 1 49