Unified · Split
| @@ -376,8 +376,20 @@ static void parse_operand(TCCState *s1, Operand *op) · 375 unmodified lines | |||
| 376 | op->e.v = e.v; | 376 | op->e.v = e.v; |
| 377 | op->e.sym = e.sym; | 377 | op->e.sym = e.sym; |
| 378 | } else { | 378 | } else { |
| 379 | op->e.v = 0; | 379 | next(); |
| 380 | op->e.sym = NULL; | 380 | if (tok == '%') { |
| 381 | unget_tok('('); | ||
| 382 | op->e.v = 0; | ||
| 383 | op->e.sym = NULL; | ||
| 384 | } else { | ||
| 385 | /* bracketed offset expression */ | ||
| 386 | asm_expr(s1, &e); | ||
| 387 | if (tok != ')') | ||
| 388 | expect(")"); | ||
| 389 | next(); | ||
| 390 | op->e.v = e.v; | ||
| 391 | op->e.sym = e.sym; | ||
| 392 | } | ||
| 381 | } | 393 | } |
| 382 | if (tok == '(') { | 394 | if (tok == '(') { |
| 383 | next(); | 395 | next(); |
| @@ -122,6 +122,7 @@ addl $0x123, 0x100 · 121 unmodified lines | |||
| 122 | addl $0x123, 0x100(%ebx) | 122 | addl $0x123, 0x100(%ebx) |
| 123 | addl $0x123, 0x100(%ebx,%edx,2) | 123 | addl $0x123, 0x100(%ebx,%edx,2) |
| 124 | addl $0x123, 0x100(%esp) | 124 | addl $0x123, 0x100(%esp) |
| 125 | addl $0x123, (3*8)(%esp) | ||
| 125 | addl $0x123, (%ebp) | 126 | addl $0x123, (%ebp) |
| 126 | addl $0x123, (%esp) | 127 | addl $0x123, (%esp) |
| 127 | cmpl $0x123, (%esp) | 128 | cmpl $0x123, (%esp) |