Bundle.xcc

Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechin@st.com).

Copyright 2002 - 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.

This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.

Bundle_name_— Names for the Bundle enumeration.
extern const char *
Bundle_name_(Bundle this);
Bundle_alignBias— This Bundle align bias.
int
Bundle_alignBias(Bundle this);
Bundle_alignBase— This Bundle align bias.
int
Bundle_alignBase(Bundle this);
Bundle_count— This Bundle count of Bundling classes.
int
Bundle_count(Bundle this);
Bundle_contents— This Bundle contents.
const Bundling *
Bundle_contents(Bundle this);
Bundle_inverse— This Bundle inverse permutation.
const uint8_t *
Bundle_inverse(Bundle this);
Bundle_template— This Bundle Template.
Template
Bundle_template(Bundle this);
BundleMatch— Match between a sorted sequence of Bundling classes and Bundle(s).

The HASH value is computed from a sorted sequence of Bundling classes as follows:

HASH = -1;
for (i = 0; i < length; i++) {
  HASH++; HASH *= (Bundling__ - Bundling__BIAS);
  HASH += (bundlings[i] -- Bundling__BIAS);
}
HASH++;
#if Bundle_ISSUE_MAX
struct BundleMatch_ {
  uint16_t HASH;        // HASH value for this BundleMatch.
  uint16_t COUNT;       // Count of Bundle(s) in BUNDLES.
  Bundle BUNDLES[BundleMatch_COUNT_MAX];
};
#endif//Bundle_ISSUE_MAX
BundleMatch_FindBundle— Given a HASH and nativePC, find a matching Bundle.
Bundle
BundleMatch_FindBundle(uint32_t hash, PlatformUInt nativePC);