<commit_before>/*
 * Copyright (C) 1998, 1999, 2002, 2003 <NAME>
 *	<NAME> <<EMAIL>>
 *
 * Register stack engine related helper functions.  This file may be
 * used in applications, so be careful about the name-space and give
 * some consideration to non-GNU C compilers (though __inline__ is
 * fine).
 */
#ifndef RSE_H
#define RSE_H

#include <stdint.h>

static __inline__ uint64_t
ia64_rse_slot_num (uint64_t addr)
{
	return (addr >> 3) & 0x3f;
}

/*
 * Return TRUE if ADDR is the address of an RNAT slot.
 */
static __inline__ uint64_t
ia64_rse_is_rnat_slot (uint64_t addr)
{
	return ia64_rse_slot_num (addr) == 0x3f;
}

/*
 * Returns the address of the RNAT slot that covers the slot at
 * address SLOT_ADDR.
 */
static __inline__ uint64_t
ia64_rse_rnat_addr (uint64_t slot_addr)
{
	return slot_addr | (0x3f << 3);
}

/*
 * Calcuate the number of registers in the dirty partition starting at
 * BSPSTORE and ending at BSP.  This isn't simply (BSP-BSPSTORE)/8
 * because every 64th slot stores ar.rnat.
 */
static __inline__ uint64_t
ia64_rse_num_regs (uint64_t bspstore, uint64_t bsp)
{
	uint64_t slots = (bsp - bspstore) >> 3;

	return slots - (ia64_rse_slot_num(bspstore) + slots)/0x40;
}

/*
 * The inverse of the above: given bspstore and the number of
 * registers, calculate ar.bsp.
 */
static __inline__ uint64_t
ia64_rse_skip_regs (uint64_t addr, long num_regs)
{
	long delta = ia64_rse_slot_num(addr) + num_regs;

	if (num_regs < 0)
		delta -= 0x3e;
	return addr + ((num_regs + delta/0x3f) << 3);
}

#endif /* RSE_H */<commit_msg>Include "config.h" if we have it. Include <inttypes.h> instead of <stdint.h>.  HP-UX doesn't have the latter. Use "inline" instead of "__inline__" (the former gets properly #define'd by config.h).<commit_after>/*
 * Copyright (C) 1998, 1999, 2002, 2003 Hewlett-Packard Co
 *	<NAME> <<EMAIL>>
 *
 * Register stack engine related helper functions.  This file may be
 * used in applications, so be careful about the name-space and give
 * some consideration to non-GNU C compilers (though __inline__ is
 * fine).
 */
#ifndef RSE_H
#define RSE_H

#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include <inttypes.h>

static inline uint64_t
ia64_rse_slot_num (uint64_t addr)
{
	return (addr >> 3) & 0x3f;
}

/*
 * Return TRUE if ADDR is the address of an RNAT slot.
 */
static inline uint64_t
ia64_rse_is_rnat_slot (uint64_t addr)
{
	return ia64_rse_slot_num (addr) == 0x3f;
}

/*
 * Returns the address of the RNAT slot that covers the slot at
 * address SLOT_ADDR.
 */
static inline uint64_t
ia64_rse_rnat_addr (uint64_t slot_addr)
{
	return slot_addr | (0x3f << 3);
}

/*
 * Calcuate the number of registers in the dirty partition starting at
 * BSPSTORE and ending at BSP.  This isn't simply (BSP-BSPSTORE)/8
 * because every 64th slot stores ar.rnat.
 */
static inline uint64_t
ia64_rse_num_regs (uint64_t bspstore, uint64_t bsp)
{
	uint64_t slots = (bsp - bspstore) >> 3;

	return slots - (ia64_rse_slot_num(bspstore) + slots)/0x40;
}

/*
 * The inverse of the above: given bspstore and the number of
 * registers, calculate ar.bsp.
 */
static inline uint64_t
ia64_rse_skip_regs (uint64_t addr, long num_regs)
{
	long delta = ia64_rse_slot_num(addr) + num_regs;

	if (num_regs < 0)
		delta -= 0x3e;
	return addr + ((num_regs + delta/0x3f) << 3);
}

#endif /* RSE_H */
{'fraction_non_alphanumeric': 0.10407239819004525, 'fraction_numerical': 0.04645550527903469, 'mean_word_length': 4.009063444108762, 'pattern_counts': {'":': 0, '<': 24, '<?xml version=': 0, '>': 22, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5781643', 'n_tokens_mistral': 1372, 'n_tokens_neox': 1260, 'n_words': 399}