X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=Robust%2Fsrc%2FBenchmarks%2FSSJava%2FMP3Decoder%2FCrc16.java;fp=Robust%2Fsrc%2FBenchmarks%2FSSJava%2FMP3Decoder%2FCrc16.java;h=a154eebeb1dcebf98f4e777bef27cf92138d1980;hb=15e12c52c54314d14b860b578c46251adb3e8625;hp=20c32d865fd399f7c9c65cbce35faa6de15de824;hpb=47cc527f574f19b71e92fceac668fb8c0655b13b;p=IRC.git diff --git a/Robust/src/Benchmarks/SSJava/MP3Decoder/Crc16.java b/Robust/src/Benchmarks/SSJava/MP3Decoder/Crc16.java index 20c32d86..a154eebe 100644 --- a/Robust/src/Benchmarks/SSJava/MP3Decoder/Crc16.java +++ b/Robust/src/Benchmarks/SSJava/MP3Decoder/Crc16.java @@ -1,75 +1,75 @@ -/* - * 11/19/04 : 1.0 moved to LGPL. - * - * 02/12/99 : Java Conversion by E.B , javalayer@javazoom.net - * - * @(#) crc.h 1.5, last edit: 6/15/94 16:55:32 - * @(#) Copyright (C) 1993, 1994 Tobias Bading (bading@cs.tu-berlin.de) - * @(#) Berlin University of Technology - *----------------------------------------------------------------------- - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as published - * by the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - *---------------------------------------------------------------------- - */ - -/** - * 16-Bit CRC checksum - */ -@LATTICE("B>>= 1) != 0); - } - - /** - * Return the calculated checksum. - * Erase it for next calls to add_bits(). - */ - @RETURNLOC("OUT") - public short checksum() - { - @LOC("OUT") short sum = crc; - crc = (short) 0xFFFF; - return sum; - } -} +/* + * 11/19/04 : 1.0 moved to LGPL. + * + * 02/12/99 : Java Conversion by E.B , javalayer@javazoom.net + * + * @(#) crc.h 1.5, last edit: 6/15/94 16:55:32 + * @(#) Copyright (C) 1993, 1994 Tobias Bading (bading@cs.tu-berlin.de) + * @(#) Berlin University of Technology + *----------------------------------------------------------------------- + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + *---------------------------------------------------------------------- + */ + +/** + * 16-Bit CRC checksum + */ + + +public final class Crc16 +{ + private static short polynomial=(short)0x8005; + private short crc; + + /** + * Dummy Constructor + */ + public Crc16() + { + crc = (short) 0xFFFF; + } + + /** + * Feed a bitstring to the crc calculation (0 < length <= 32). + */ + //ssjava + + public void add_bits ( int bitstring, int length) + { + int bitmask = 1 << (length - 1); + do{ + if (((crc & 0x8000) == 0) ^ ((bitstring & bitmask) == 0 )) + { + crc <<= 1; + crc ^= polynomial; + } + else{ + crc <<= 1; + } + }while ((bitmask >>>= 1) != 0); + } + + /** + * Return the calculated checksum. + * Erase it for next calls to add_bits(). + */ + + public short checksum() + { + short sum = crc; + crc = (short) 0xFFFF; + return sum; + } +}