diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2003-04-06 23:54:11 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 21:00:17 -0700 |
| commit | fc1da8101b5106f6c98822210759907b0f4f9390 (patch) | |
| tree | ab20b2d545d2d7ece5efedfae8ed8b1b8559ff5e | |
| parent | 964c707a29a03b8e974371f19fd0a8a867d9d78d (diff) | |
| download | sparse-dev-fc1da8101b5106f6c98822210759907b0f4f9390.tar.gz | |
Fix bitfield access code.
| -rw-r--r-- | show-parse.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/show-parse.c b/show-parse.c index 87a22813..596d2315 100644 --- a/show-parse.c +++ b/show-parse.c @@ -537,7 +537,7 @@ static int show_load_gen(int bits, struct expression *expr, int addr) /* bitfield load! */ if (expr->bitpos) printf("\tshr.%d\t\tv%d,v%d,$%d\n", bits, new, new, expr->bitpos); - printf("\tandi.%d\t\tv%d,v%d,$%llu", bits, new, new, 1ULL << expr->nrbits); + printf("\tandi.%d\t\tv%d,v%d,$%llu\n", bits, new, new, (1ULL << expr->nrbits)-1); return new; } @@ -658,12 +658,7 @@ static int show_string_expr(struct expression *expr) static int show_bitfield_expr(struct expression *expr) { - int address = show_expression(expr->address); - int new = new_pseudo(); - - printf("v%d = (extract bits[%d-%d]) v%d\n", - new, expr->bitpos, expr->bitpos + expr->nrbits - 1, address); - return new; + return show_access(expr); } static int show_conditional_expr(struct expression *expr) |
