From: Juanma Barranquero <jmbarranquero@wke.es>
Cc: emacs-devel@gnu.org
Subject: Re: display word wrapping
Date: Mon, 31 May 2004 16:40:41 +0200 [thread overview]
Message-ID: <20040531153907.3F41.JMBARRANQUERO@wke.es> (raw)
In-Reply-To: <un03pdp85.fsf@gnu.org>
On 31 May 2004 09:34:34 +0200
Eli Zaretskii <eliz@gnu.org> wrote:
> This probably means that the optimizer is not in itself the direct
> culprit here, as declaring img `volatile' should have prevented the
> compiler from keeping it in a register.
OTOH, I'm more and more convinced it is an optimizer bug...
> However, this observation:
>
> > If I put
> >
> > __asm push img
> > img->load_failed_p = img->type->load (f, img) == 0;
> > __asm pop img
> >
> > (which forces a reload of the edi register from the stored value of img),
> > it works.
>
> seems to say that img is still in a register, even if declared
> `volatile'. Could you please look at the machine code near the
> invocation of "img->type->load (f, img)" and see whether `volatile'
> changes something there, and if so, what?
It doesn't affect. Code generated with or without "volatile" is
byte-by-byte identical (I suppose the optimizer's assuming the variable
doesn't need to be really volatile, because it is a stack var whose
address is not taken).
The relevant code, with a (non-volatile) local img, is:
; 1629 : img->load_failed_p = img->type->load (f, img) == 0;
04e88 8b 47 38 mov eax, DWORD PTR [edi+56]
04e8b 57 push edi
04e8c ff 75 08 push DWORD PTR _f$[ebp]
04e8f ff 50 08 call DWORD PTR [eax+8]
04e92 83 c4 0c add esp, 12 ; 0000000cH
04e95 f7 d8 neg eax
04e97 1b c0 sbb eax, eax
04e99 40 inc eax
04e9a 89 47 3c mov DWORD PTR [edi+60], eax
edi contains img. Note that it is not reloaded after the call to [eax+8]
The code, for a static (non-volatile) img:
; 1629 : img->load_failed_p = img->type->load (f, img) == 0;
04e9f a1 00 00 00 00 mov eax, DWORD PTR ?img@?1??lookup_image@@9@9
04ea4 8b 48 38 mov ecx, DWORD PTR [eax+56]
04ea7 50 push eax
04ea8 ff 75 08 push DWORD PTR _f$[ebp]
04eab ff 51 08 call DWORD PTR [ecx+8]
04eae 8b 3d 00 00 00
00 mov edi, DWORD PTR ?img@?1??lookup_image@@9@9
04eb4 83 c4 0c add esp, 12 ; 0000000cH
04eb7 f7 d8 neg eax
04eb9 1b c0 sbb eax, eax
04ebb 40 inc eax
04ebc 89 47 3c mov DWORD PTR [edi+60], eax
(the register usage is different, but note the load to edi after the
call...)
> But such a workaround needs
> to be more clever than the push/pop pair above, since it needs to
> update img->load_failed_p AFTER restoring img, not before it.
Yes, I know. I was just testing different local/static situations.
> IIUC, this boils down to calling gif_load (since the image file is
> GIF), right?
Yeah, but it happens with all libraries.
Juanma
next prev parent reply other threads:[~2004-05-31 14:40 UTC|newest]
Thread overview: 174+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-05-26 10:02 display word wrapping Miles Bader
2004-05-26 10:53 ` Kai Grossjohann
2004-05-26 11:29 ` Kim F. Storm
2004-05-26 12:54 ` Miles Bader
2004-05-26 14:50 ` David Kastrup
2004-05-26 15:06 ` Kim F. Storm
2004-05-26 19:16 ` David Kastrup
2004-05-26 19:50 ` Miles Bader
2004-05-26 21:43 ` i-search face-cache crash [was Re: display word wrapping] Kim F. Storm
2004-05-27 0:12 ` Miles Bader
2004-05-27 8:33 ` Kim F. Storm
2004-05-27 4:48 ` i-search face-cache crash Miles Bader
2004-05-27 23:54 ` Richard Stallman
2004-05-26 20:58 ` display word wrapping Kim F. Storm
2004-05-27 7:31 ` Jason Rumney
2004-05-26 22:21 ` Luc Teirlinck
2004-05-27 5:59 ` Miles Bader
2004-05-26 19:45 ` Miles Bader
2004-05-26 21:01 ` Kim F. Storm
2004-05-26 21:33 ` Miles Bader
2004-05-26 21:55 ` Kim F. Storm
2004-05-27 0:38 ` Miles Bader
2004-05-26 21:52 ` Stefan Monnier
2004-05-27 23:53 ` Richard Stallman
2004-05-27 9:08 ` Juanma Barranquero
2004-05-27 10:41 ` Kim F. Storm
2004-05-27 11:15 ` Juanma Barranquero
2004-05-28 7:57 ` Jason Rumney
2004-05-28 8:24 ` Kim F. Storm
2004-05-28 9:36 ` Juanma Barranquero
2004-05-29 20:54 ` Juanma Barranquero
2004-05-30 1:38 ` Juanma Barranquero
2004-05-30 6:12 ` Eli Zaretskii
2004-05-30 16:50 ` Juanma Barranquero
2004-05-30 18:27 ` Eli Zaretskii
2004-05-31 0:40 ` Juanma Barranquero
2004-05-31 7:34 ` Eli Zaretskii
2004-05-31 14:40 ` Juanma Barranquero [this message]
2004-05-31 15:28 ` Andreas Schwab
2004-05-31 17:41 ` Eli Zaretskii
2004-06-01 7:14 ` Juanma Barranquero
2004-06-01 20:32 ` Eli Zaretskii
2004-06-01 20:53 ` Andreas Schwab
2004-06-01 23:50 ` Juanma Barranquero
2004-06-02 7:58 ` Kim F. Storm
2004-06-02 8:25 ` Juanma Barranquero
2004-06-02 4:55 ` Eli Zaretskii
2004-06-02 7:27 ` Juanma Barranquero
2004-05-31 17:55 ` Eli Zaretskii
2004-05-31 18:39 ` Juanma Barranquero
2004-05-31 19:03 ` Juanma Barranquero
2004-05-31 20:19 ` Andreas Schwab
2004-05-31 21:36 ` Juanma Barranquero
2004-05-31 19:18 ` Miles Bader
2004-05-31 20:02 ` Juanma Barranquero
2004-05-31 19:09 ` Jason Rumney
2004-05-31 15:27 ` Andreas Schwab
2004-05-31 18:33 ` Juanma Barranquero
2004-05-31 19:05 ` Jason Rumney
2004-05-31 22:19 ` Juanma Barranquero
2004-06-01 4:43 ` Eli Zaretskii
2004-06-01 7:16 ` Juanma Barranquero
2004-05-28 9:15 ` Benjamin Riefenstahl
2004-05-28 9:48 ` Juanma Barranquero
2004-05-28 9:24 ` Eli Zaretskii
2004-05-28 9:46 ` Juanma Barranquero
2004-05-29 1:43 ` Richard Stallman
2004-05-29 11:37 ` Eli Zaretskii
2004-05-29 15:07 ` Juanma Barranquero
2004-05-30 14:30 ` Richard Stallman
2004-05-30 16:58 ` Juanma Barranquero
2004-05-31 18:39 ` Richard Stallman
2004-05-31 18:55 ` Jason Rumney
2004-06-02 17:36 ` Richard Stallman
2004-05-31 21:05 ` David Kastrup
2004-05-27 21:32 ` W32 image support (was Re: display word wrapping) Jason Rumney
2004-05-28 15:54 ` display word wrapping Peter Lee
2004-05-28 21:48 ` Jason Rumney
2004-05-29 3:19 ` Juanma Barranquero
2004-05-29 23:10 ` Kim F. Storm
2004-05-29 23:23 ` Juanma Barranquero
2004-05-30 19:41 ` Richard Stallman
2004-05-31 19:12 ` Jason Rumney
2004-05-31 20:18 ` Kim F. Storm
2004-06-02 15:04 ` Juanma Barranquero
2004-06-02 22:17 ` Jason Rumney
2004-06-02 22:43 ` Juanma Barranquero
2004-06-03 7:49 ` Jason Rumney
2004-06-03 8:40 ` Juanma Barranquero
2004-06-03 9:00 ` David Kastrup
2004-06-03 9:16 ` Juanma Barranquero
2004-06-03 9:26 ` David Kastrup
2004-06-03 10:02 ` Juanma Barranquero
2004-06-03 12:04 ` Kim F. Storm
2004-06-03 13:52 ` Juanma Barranquero
2004-06-03 20:43 ` Kim F. Storm
2004-06-04 1:39 ` Juanma Barranquero
2004-06-04 8:07 ` Kim F. Storm
2004-06-04 9:09 ` Juanma Barranquero
2004-06-04 9:29 ` Juanma Barranquero
2004-06-04 12:40 ` Kim F. Storm
2004-06-04 12:45 ` Kim F. Storm
2004-06-04 13:42 ` Juanma Barranquero
2004-06-04 14:16 ` Kim F. Storm
2004-06-05 1:20 ` Juanma Barranquero
2004-06-07 12:55 ` Juanma Barranquero
2004-06-07 13:34 ` Kim F. Storm
2004-06-07 16:00 ` Juanma Barranquero
2004-06-07 23:11 ` Kim F. Storm
2004-06-08 0:33 ` Juanma Barranquero
2004-06-08 6:38 ` David Kastrup
2004-06-08 8:06 ` Kim F. Storm
2004-06-08 8:23 ` David Kastrup
2004-06-08 9:33 ` Kim F. Storm
2004-06-08 9:54 ` David Kastrup
2004-06-08 10:02 ` Juanma Barranquero
2004-06-08 10:10 ` David Kastrup
2004-06-08 10:24 ` Juanma Barranquero
2004-06-08 10:43 ` David Kastrup
2004-06-08 11:17 ` Juanma Barranquero
2004-06-08 12:08 ` Kim F. Storm
2004-06-08 12:22 ` Miles Bader
2004-06-08 12:31 ` David Kastrup
2004-06-08 11:31 ` Juanma Barranquero
2004-06-08 11:39 ` David Kastrup
2004-06-08 12:11 ` Juanma Barranquero
2004-06-08 12:05 ` Kim F. Storm
2004-06-08 12:13 ` Juanma Barranquero
2004-06-08 10:00 ` Juanma Barranquero
2004-06-08 8:14 ` Juanma Barranquero
2004-06-02 23:47 ` Juanma Barranquero
2004-06-03 7:43 ` Jason Rumney
2004-06-03 7:54 ` Juanma Barranquero
2004-06-03 9:37 ` Benjamin Riefenstahl
2004-06-03 9:54 ` Juanma Barranquero
2004-06-07 11:13 ` Benjamin Riefenstahl
2004-06-07 13:29 ` Juanma Barranquero
2004-06-07 16:37 ` Benjamin Riefenstahl
2004-06-01 16:34 ` Peter Lee
2004-06-01 20:43 ` Eli Zaretskii
2004-06-02 0:05 ` Juanma Barranquero
2004-05-29 17:02 ` Richard Stallman
2004-05-29 18:19 ` Juanma Barranquero
2004-05-30 19:41 ` Richard Stallman
2004-05-31 18:42 ` Jason Rumney
2004-06-01 4:51 ` Eli Zaretskii
2004-06-01 7:18 ` Juanma Barranquero
2004-06-01 20:40 ` Eli Zaretskii
2004-06-03 0:19 ` Juanma Barranquero
2004-06-02 3:44 ` Richard Stallman
2004-05-27 12:28 ` Kai Grossjohann
2004-05-27 23:53 ` Luc Teirlinck
2004-05-28 14:21 ` Richard Stallman
2004-05-29 1:43 ` Luc Teirlinck
2004-05-26 17:51 ` Eli Zaretskii
2004-05-26 19:39 ` David Kastrup
2004-05-27 8:14 ` Eli Zaretskii
2004-05-26 12:57 ` Henrik Enberg
2004-05-26 16:15 ` David Kastrup
2004-05-27 23:54 ` Richard Stallman
2004-05-28 8:37 ` Kim F. Storm
2004-05-28 9:52 ` Miles Bader
2004-05-29 10:33 ` Kai Grossjohann
2004-05-29 1:44 ` Richard Stallman
2004-05-29 8:28 ` Karl Eichwalder
2004-05-30 14:30 ` Richard Stallman
2004-05-30 16:50 ` Kai Grossjohann
2004-05-31 18:39 ` Richard Stallman
2004-05-29 9:46 ` Jason Rumney
2004-05-30 3:11 ` Stefan Monnier
2004-05-30 6:08 ` Eli Zaretskii
2004-05-30 14:30 ` Richard Stallman
2004-05-28 9:07 ` Eli Zaretskii
2004-05-29 1:43 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040531153907.3F41.JMBARRANQUERO@wke.es \
--to=jmbarranquero@wke.es \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.