aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/seh_init.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-07-07 15:38:45 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-07-07 15:38:45 +0200
commitc236914646f38f11fc12e1a4a1957c2378c51171 (patch)
treede9464c08d324cf727aa591acdf3d8cad2584ad6 /gcc/ada/seh_init.c
parent75a5a4879d5046afb73aba4a403472e9f349cbed (diff)
downloadgcc-c236914646f38f11fc12e1a4a1957c2378c51171.zip
gcc-c236914646f38f11fc12e1a4a1957c2378c51171.tar.gz
gcc-c236914646f38f11fc12e1a4a1957c2378c51171.tar.bz2
[multiple changes]
2009-07-07 Gary Dismukes <dismukes@adacore.com> * exp_ch6.adb (Expand_Actuals): Call Add_Call_By_Copy_Code for in out parameters when the subtype of the actual is not known to be a subrange of the formal's subtype. (Expand_Call): Generate a range check only in the E_In_parameter case (in out parameter range checks are now handled in Expand_Actuals). * exp_ch4.adb (Expand_N_Slice): Restore code that calls Enable_Range_Check. 2009-07-07 Robert Dewar <dewar@adacore.com> * a-stwise.adb, a-stzsea.adb, a-strsea.adb: Add comments 2009-07-07 Javier Miranda <miranda@adacore.com> * exp_disp.adb (Expand_Interface_Conversion): Handle access type whose designated type comes from a limited views. 2009-07-07 Emmanuel Briot <briot@adacore.com> * prj.ads, prj-nmsc.adb (Mark_Excluded_Sources): Fix handling of locally removed files that are later made visible again in an importing project. 2009-07-07 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Clarify documentation of Stream_Convert pragma 2009-07-07 Sergey Rybin <rybin@adacore.com> * gnat_ugn.texi: Add an example to the description of gnatcheck 'Style_Checks' rule option. 2009-07-07 Tristan Gingold <gingold@adacore.com> * seh_init.c: Fix inline assembly statement in seh_init.c 2009-07-07 Ed Schonberg <schonberg@adacore.com> * sem_warn.adb (Check_References): Do not emit warnings on formals of an entry body. Only the formals of the entry declaration are traced. From-SVN: r149328
Diffstat (limited to 'gcc/ada/seh_init.c')
-rw-r--r--gcc/ada/seh_init.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/gcc/ada/seh_init.c b/gcc/ada/seh_init.c
index 2bc3d23..dc353d0 100644
--- a/gcc/ada/seh_init.c
+++ b/gcc/ada/seh_init.c
@@ -211,17 +211,14 @@ __gnat_install_SEH_handler (void *ER)
/* put current handler in ptr */
- asm ("mov %%fs:(0),%%ecx" : : : "%ecx");
- asm ("mov %%ecx,%0" : "=m" (ptr));
+ asm ("mov %%fs:(0),%0" : "=r" (ptr));
((int *)ER)[0] = (int)ptr; /* previous handler */
((int *)ER)[1] = (int)__gnat_SEH_error_handler; /* new handler */
- /* ptr is the new handler, set fs:(0) with this value */
+ /* ER is the new handler, set fs:(0) with this value */
- ptr = (int *)ER;
- asm ("mov %0,%%ecx" : : "m" (ptr) : "%ecx");
- asm ("mov %ecx,%fs:(0)");
+ asm volatile ("mov %0,%%fs:(0)": : "r" (ER));
}
#else /* defined (_WIN32) && !defined (_WIN64) */