1 |
#! /usr/bin/python |
#! /usr/bin/python |
2 |
|
|
3 |
|
# generate the linzer-feig multiply-add idct for ia64 |
4 |
|
# (c) 2002 Christian Schwarz <schwarz@ira.uka.de>, |
5 |
|
# Haiko Gaisser <haiko@gaisser.de>, |
6 |
|
# Sebastian Hack <mail@s-hack.de> |
7 |
|
|
8 |
|
|
9 |
import math |
import math |
10 |
|
|
11 |
pre_shuffle = [ 0, 4, 2, 6, 1, 7, 3, 5 ] |
pre_shuffle = [ 0, 4, 2, 6, 1, 7, 3, 5 ] |
280 |
for i in range(0, len(matrix), 2): |
for i in range(0, len(matrix), 2): |
281 |
print '\tst4 [addreg1] = r%d, 8' % (intregbase+i) |
print '\tst4 [addreg1] = r%d, 8' % (intregbase+i) |
282 |
print '\tst4 [addreg2] = r%d, 8' % (intregbase+i+1) |
print '\tst4 [addreg2] = r%d, 8' % (intregbase+i+1) |
283 |
|
print '\t;;' |
284 |
|
|
285 |
def main(): |
def main(): |
286 |
gen_consts() |
gen_consts() |
287 |
|
|
288 |
print '.text' |
print '.text' |
289 |
print '.global idct_ia64' |
print '.global idct_ia64' |
290 |
|
print '.global idct_ia64_init' |
291 |
|
print '.align 16' |
292 |
|
print '.proc idct_ia64_init' |
293 |
|
print 'idct_ia64_init:' |
294 |
|
print 'br.ret.sptk.few b0' |
295 |
|
print '.endp' |
296 |
print '.align 16' |
print '.align 16' |
297 |
print '.proc idct_ia64' |
print '.proc idct_ia64' |
298 |
print 'idct_ia64:' |
print 'idct_ia64:' |