mirror of
git://c9x.me/qbe.git
synced 2026-04-05 18:09:47 +00:00
deduplicate loadsz & storesz
This commit is contained in:
parent
f3301026fa
commit
1bb7652484
2
all.h
2
all.h
@ -576,6 +576,8 @@ int alias(Ref, int, Ref, int, int *, Fn *);
|
|||||||
int escapes(Ref, Fn *);
|
int escapes(Ref, Fn *);
|
||||||
|
|
||||||
/* load.c */
|
/* load.c */
|
||||||
|
int loadsz(Ins *);
|
||||||
|
int storesz(Ins *);
|
||||||
void loadopt(Fn *);
|
void loadopt(Fn *);
|
||||||
|
|
||||||
/* ssa.c */
|
/* ssa.c */
|
||||||
|
|||||||
4
load.c
4
load.c
@ -42,7 +42,7 @@ static uint inum; /* current insertion number */
|
|||||||
static Insert *ilog; /* global insertion log */
|
static Insert *ilog; /* global insertion log */
|
||||||
static uint nlog; /* number of entries in the log */
|
static uint nlog; /* number of entries in the log */
|
||||||
|
|
||||||
static int
|
int
|
||||||
loadsz(Ins *l)
|
loadsz(Ins *l)
|
||||||
{
|
{
|
||||||
switch (l->op) {
|
switch (l->op) {
|
||||||
@ -54,7 +54,7 @@ loadsz(Ins *l)
|
|||||||
die("unreachable");
|
die("unreachable");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
int
|
||||||
storesz(Ins *s)
|
storesz(Ins *s)
|
||||||
{
|
{
|
||||||
switch (s->op) {
|
switch (s->op) {
|
||||||
|
|||||||
25
mem.c
25
mem.c
@ -1,30 +1,5 @@
|
|||||||
#include "all.h"
|
#include "all.h"
|
||||||
|
|
||||||
static int
|
|
||||||
loadsz(Ins *l)
|
|
||||||
{
|
|
||||||
switch (l->op) {
|
|
||||||
case Oloadsb: case Oloadub: return 1;
|
|
||||||
case Oloadsh: case Oloaduh: return 2;
|
|
||||||
case Oloadsw: case Oloaduw: return 4;
|
|
||||||
case Oload: return KWIDE(l->cls) ? 8 : 4;
|
|
||||||
}
|
|
||||||
die("unreachable");
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
storesz(Ins *s)
|
|
||||||
{
|
|
||||||
switch (s->op) {
|
|
||||||
case Ostoreb: return 1;
|
|
||||||
case Ostoreh: return 2;
|
|
||||||
case Ostorew: case Ostores: return 4;
|
|
||||||
case Ostorel: case Ostored: return 8;
|
|
||||||
}
|
|
||||||
die("unreachable");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* require use, maintains use counts */
|
/* require use, maintains use counts */
|
||||||
void
|
void
|
||||||
memopt(Fn *fn)
|
memopt(Fn *fn)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user