1 .explicit 2 .global esym 3 4 .altmacro 5 6 .macro begin n, attr 7 .section .&n, attr, @progbits 8 .align 16 9 _&n: 10 .endm 11 .macro end n 12 .align 16 13 _e&n: 14 .endm 15 16 .macro m1 op, opnd1 17 .align 16 18 op opnd1 _e&op - _&op 19 .endm 20 .macro m2 op, opnd1 21 .align 16 22 op opnd1 @pcrel(esym) 23 .endm 24 .macro m3 op, opnd1 25 .align 16 26 op opnd1 esym - _&op 27 .endm 28 .macro m4 op, opnd1 29 .align 16 30 op opnd1 esym - . 31 .endm 32 .macro m5 op, opnd1 33 .align 16 34 op opnd1 esym - _e&op 35 .endm 36 .macro m6 op, opnd1 37 .align 16 38 op opnd1 0 39 .endm 40 41 begin mov, "ax" 42 m1 mov, r2 = 43 ;; 44 m2 mov, r2 = 45 ;; 46 m3 mov, r2 = 47 ;; 48 m4 mov, r2 = 49 ;; 50 m5 mov, r2 = 51 ;; 52 m6 mov, r2 = 53 ;; 54 end mov 55 56 begin movl, "ax" 57 m1 movl, r2 = 58 ;; 59 m2 movl, r2 = 60 ;; 61 m3 movl, r2 = 62 ;; 63 m4 movl, r2 = 64 ;; 65 m5 movl, r2 = 66 ;; 67 m6 movl, r2 = 68 ;; 69 end movl 70 71 begin data8, "a" 72 m1 data8 73 m2 data8 74 m3 data8 75 m4 data8 76 m5 data8 77 m6 data8 78 end data8 79 80 begin data4, "a" 81 m1 data4 82 m2 data4 83 m3 data4 84 m4 data4 85 m5 data4 86 m6 data4 87 end data4 88