| hp.com!davidm | ea8a74b | 2003-02-26 08:33:57 +0000 | [diff] [blame^] | 1 | .globl func_add1, func_add1_end |
| 2 | .proc func_add1 |
| 3 | func_add1: |
| 4 | {.mib add r8 = 1, r32 |
| 5 | nop.i 0 |
| 6 | br.ret.sptk.many rp |
| 7 | } |
| 8 | func_add1_end: |
| 9 | .endp func_add1 |
| mostang.com!davidm | 3434090 | 2003-02-22 08:19:43 +0000 | [diff] [blame] | 10 | |
| hp.com!davidm | ea8a74b | 2003-02-26 08:33:57 +0000 | [diff] [blame^] | 11 | .globl func_add3, func_add3_end |
| 12 | .proc func_add3 |
| 13 | func_add3: |
| 14 | {.mmi alloc loc1 = ar.pfs, 2, 2, 2, 0 |
| 15 | ld8 r8 = [in1], 8 // load the function pointer |
| 16 | mov loc0 = rp |
| 17 | } ;; |
| 18 | {.mmi |
| 19 | ld8 r9 = [r8], 8 // load the entry-point |
| 20 | mov out0 = in0 |
| 21 | mov out1 = in1 |
| 22 | } ;; |
| 23 | {.mib ld8 gp = [r8] // load the gp |
| 24 | mov b6 = r9 |
| 25 | br.call.sptk rp = b6 |
| 26 | } |
| 27 | {.mii |
| 28 | add r8 = 2, r8 |
| 29 | mov ar.pfs = loc1 |
| 30 | mov rp = loc0 |
| 31 | } |
| 32 | {.mib |
| 33 | mov loc0 = 1 // trash loc0 |
| 34 | mov loc1 = 3 // trash loc1 |
| 35 | br.ret.sptk.many rp |
| 36 | } |
| 37 | func_add3_end: |
| 38 | .endp func_add3 |