================ @@ -1,185 +1,149 @@ -/* - SipHash reference C implementation - - Copyright (c) 2012-2022 Jean-Philippe Aumasson - <jeanphilippe.aumas...@gmail.com> - Copyright (c) 2012-2014 Daniel J. Bernstein <d...@cr.yp.to> - - To the extent possible under law, the author(s) have dedicated all copyright - and related and neighboring rights to this software to the public domain - worldwide. This software is distributed without any warranty. - - You should have received a copy of the CC0 Public Domain Dedication along - with - this software. If not, see - <http://creativecommons.org/publicdomain/zero/1.0/>. - */ - -#include "siphash.h" -#include <assert.h> -#include <stddef.h> -#include <stdint.h> - -/* default: SipHash-2-4 */ -#ifndef cROUNDS -#define cROUNDS 2 -#endif -#ifndef dROUNDS -#define dROUNDS 4 -#endif +//===--- SipHash.cpp - An ABI-stable string hash --------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// -#define ROTL(x, b) (uint64_t)(((x) << (b)) | ((x) >> (64 - (b)))) +#include "llvm/Support/Compiler.h" +#include <cstdint> -#define U32TO8_LE(p, v) \ - (p)[0] = (uint8_t)((v)); \ - (p)[1] = (uint8_t)((v) >> 8); \ - (p)[2] = (uint8_t)((v) >> 16); \ - (p)[3] = (uint8_t)((v) >> 24); +// Lightly adapted from the SipHash reference C implementation: +// https://github.com/veorq/SipHash +// by Jean-Philippe Aumasson and Daniel J. Bernstein -#define U64TO8_LE(p, v) \ - U32TO8_LE((p), (uint32_t)((v))); \ - U32TO8_LE((p) + 4, (uint32_t)((v) >> 32)); +#define ROTL(x, b) (uint64_t)(((x) << (b)) | ((x) >> (64 - (b)))) ---------------- ahmedbougacha wrote:
This, I'm a little more inclined to keep the macros as close to original as possible, it being the core of the function. It could help to name the function `ROTL` to match the original; we can turn the whole block into a function as well. I don't feel strongly either way, let me know which you prefer. https://github.com/llvm/llvm-project/pull/94394 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits