En effet, tu soulignes un point intéressant pour encore améliorer l'abstraction. En fait, on ne calcule pas l'index en fonction de la valeur interdite du tout (on connaît ces index/adresses dès le début).
Les trucs barbares de type...
addr = ((c >> 1) & 1) * 256;
a = *addr;
... ne sont pas des calculs (symboliquement parlant). Ce sont juste des tests de conditions sur la valeur de bits de c (la valeur interdite), qui sont simplement faits sous la forme de calculs (parce que dans un ordi, tout est calcul en fait) et en code encore plus simplifié (mais plus long), ça revient donc à:
addr0 = 0;
addr1 = 256;
if (bit 2 de c est à 1)
_ = *addr1;
else
_ = *addr0;
Je remplace aussi le a par _, pour indiquer qu'on se fiche du résultat (syntaxe qu'on trouve dans certains langage), pour vraiment amplifier le fait que cette assignation de valeur n'est vraiment pas le point central (et n'a même aucune importance en fait).
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Comment le cache peut être lu ?
Posté par Jehan (site web personnel, Mastodon) . En réponse à la dépêche Deux failles critiques : Meltdown et Spectre. Évalué à 3.
En effet, tu soulignes un point intéressant pour encore améliorer l'abstraction. En fait, on ne calcule pas l'index en fonction de la valeur interdite du tout (on connaît ces index/adresses dès le début).
Les trucs barbares de type...
... ne sont pas des calculs (symboliquement parlant). Ce sont juste des tests de conditions sur la valeur de bits de c (la valeur interdite), qui sont simplement faits sous la forme de calculs (parce que dans un ordi, tout est calcul en fait) et en code encore plus simplifié (mais plus long), ça revient donc à:
Je remplace aussi le
apar_, pour indiquer qu'on se fiche du résultat (syntaxe qu'on trouve dans certains langage), pour vraiment amplifier le fait que cette assignation de valeur n'est vraiment pas le point central (et n'a même aucune importance en fait).Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]