diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-29 08:32:46 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-29 08:32:46 +0000 |
commit | 568b0f6a9b978ee5176f134c080996981a4f3a2f (patch) | |
tree | 1eaaee9053b9ce0eacb82764012f0bd486fa3c54 /gcc/ada/s-vaflop-vms-alpha.adb | |
parent | 789386c83faa43c5d48a73d1bc0c923ecbb4a947 (diff) | |
download | gcc-568b0f6a9b978ee5176f134c080996981a4f3a2f.tar.gz |
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_type.adb, einfo.ads, freeze.adb, exp_ch4.adb, sem_ch13.adb:
Minor reformatting.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
Correct the check which involves the freeze node of a controlled or
access-to-controlled type.
2011-08-29 Geert Bosch <bosch@adacore.com>
* sem_warn.adb (Check_Code_Statement): Remove check for consecutive Asm
statements.
* s-vaflop-vms-alpha.adb: Remove bogus Volatile => True arguments from
Asm statements.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178160 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-vaflop-vms-alpha.adb')
-rw-r--r-- | gcc/ada/s-vaflop-vms-alpha.adb | 224 |
1 files changed, 74 insertions, 150 deletions
diff --git a/gcc/ada/s-vaflop-vms-alpha.adb b/gcc/ada/s-vaflop-vms-alpha.adb index 2c1e6842ff0..02e4be46f0f 100644 --- a/gcc/ada/s-vaflop-vms-alpha.adb +++ b/gcc/ada/s-vaflop-vms-alpha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1997-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2011, Free Software Foundation, Inc. -- -- (Version for Alpha OpenVMS) -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- @@ -67,12 +67,9 @@ package body System.Vax_Float_Operations is A, B : T; C : G; begin - Asm ("ldg %0,%1", T'Asm_Output ("=f", A), D'Asm_Input ("m", X), - Volatile => True); - Asm ("cvtdg %1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", C), T'Asm_Input ("f", B), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", A), D'Asm_Input ("m", X)); + Asm ("cvtdg %1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A)); + Asm ("stg %1,%0", G'Asm_Output ("=m", C), T'Asm_Input ("f", B)); return C; end D_To_G; @@ -84,10 +81,8 @@ package body System.Vax_Float_Operations is A : T; B : G; begin - Asm ("ldf %0,%1", T'Asm_Output ("=f", A), F'Asm_Input ("m", X), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", B), T'Asm_Input ("f", A), - Volatile => True); + Asm ("ldf %0,%1", T'Asm_Output ("=f", A), F'Asm_Input ("m", X)); + Asm ("stg %1,%0", G'Asm_Output ("=m", B), T'Asm_Input ("f", A)); return B; end F_To_G; @@ -103,8 +98,7 @@ package body System.Vax_Float_Operations is -- Because converting to a wider FP format is a no-op, we say -- A is 64-bit even though we are loading 32 bits into it. - Asm ("ldf %0,%1", T'Asm_Output ("=f", A), F'Asm_Input ("m", X), - Volatile => True); + Asm ("ldf %0,%1", T'Asm_Output ("=f", A), F'Asm_Input ("m", X)); B := S (Cvt_G_T (A)); return B; @@ -118,12 +112,9 @@ package body System.Vax_Float_Operations is A, B : T; C : D; begin - Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X), - Volatile => True); - Asm ("cvtgd %1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A), - Volatile => True); - Asm ("stg %1,%0", D'Asm_Output ("=m", C), T'Asm_Input ("f", B), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X)); + Asm ("cvtgd %1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A)); + Asm ("stg %1,%0", D'Asm_Output ("=m", C), T'Asm_Input ("f", B)); return C; end G_To_D; @@ -136,12 +127,9 @@ package body System.Vax_Float_Operations is B : S; C : F; begin - Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X), - Volatile => True); - Asm ("cvtgf %1,%0", S'Asm_Output ("=f", B), T'Asm_Input ("f", A), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", C), S'Asm_Input ("f", B), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X)); + Asm ("cvtgf %1,%0", S'Asm_Output ("=f", B), T'Asm_Input ("f", A)); + Asm ("stf %1,%0", F'Asm_Output ("=m", C), S'Asm_Input ("f", B)); return C; end G_To_F; @@ -153,10 +141,8 @@ package body System.Vax_Float_Operations is A : T; B : Q; begin - Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X), - Volatile => True); - Asm ("cvtgq %1,%0", Q'Asm_Output ("=f", B), T'Asm_Input ("f", A), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X)); + Asm ("cvtgq %1,%0", Q'Asm_Output ("=f", B), T'Asm_Input ("f", A)); return B; end G_To_Q; @@ -167,8 +153,7 @@ package body System.Vax_Float_Operations is function G_To_T (X : G) return T is A, B : T; begin - Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X)); B := Cvt_G_T (A); return B; end G_To_T; @@ -190,10 +175,8 @@ package body System.Vax_Float_Operations is A : S; B : F; begin - Asm ("cvtqf %1,%0", S'Asm_Output ("=f", A), Q'Asm_Input ("f", X), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", B), S'Asm_Input ("f", A), - Volatile => True); + Asm ("cvtqf %1,%0", S'Asm_Output ("=f", A), Q'Asm_Input ("f", X)); + Asm ("stf %1,%0", F'Asm_Output ("=m", B), S'Asm_Input ("f", A)); return B; end Q_To_F; @@ -205,10 +188,8 @@ package body System.Vax_Float_Operations is A : T; B : G; begin - Asm ("cvtqg %1,%0", T'Asm_Output ("=f", A), Q'Asm_Input ("f", X), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", B), T'Asm_Input ("f", A), - Volatile => True); + Asm ("cvtqg %1,%0", T'Asm_Output ("=f", A), Q'Asm_Input ("f", X)); + Asm ("stg %1,%0", G'Asm_Output ("=m", B), T'Asm_Input ("f", A)); return B; end Q_To_G; @@ -221,8 +202,7 @@ package body System.Vax_Float_Operations is B : F; begin A := Cvt_T_F (T (X)); - Asm ("stf %1,%0", F'Asm_Output ("=m", B), S'Asm_Input ("f", A), - Volatile => True); + Asm ("stf %1,%0", F'Asm_Output ("=m", B), S'Asm_Input ("f", A)); return B; end S_To_F; @@ -244,8 +224,7 @@ package body System.Vax_Float_Operations is B : G; begin A := Cvt_T_G (X); - Asm ("stg %1,%0", G'Asm_Output ("=m", B), T'Asm_Input ("f", A), - Volatile => True); + Asm ("stg %1,%0", G'Asm_Output ("=m", B), T'Asm_Input ("f", A)); return B; end T_To_G; @@ -257,12 +236,9 @@ package body System.Vax_Float_Operations is A, B : S; C : F; begin - Asm ("ldf %0,%1", S'Asm_Output ("=f", A), F'Asm_Input ("m", X), - Volatile => True); - Asm ("cpys $f31,%1,%0", S'Asm_Output ("=f", B), S'Asm_Input ("f", A), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", C), S'Asm_Input ("f", B), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", A), F'Asm_Input ("m", X)); + Asm ("cpys $f31,%1,%0", S'Asm_Output ("=f", B), S'Asm_Input ("f", A)); + Asm ("stf %1,%0", F'Asm_Output ("=m", C), S'Asm_Input ("f", B)); return C; end Abs_F; @@ -275,10 +251,8 @@ package body System.Vax_Float_Operations is C : G; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X)); - Asm ("cpys $f31,%1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", C), T'Asm_Input ("f", B), - Volatile => True); + Asm ("cpys $f31,%1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A)); + Asm ("stg %1,%0", G'Asm_Output ("=m", C), T'Asm_Input ("f", B)); return C; end Abs_G; @@ -291,13 +265,10 @@ package body System.Vax_Float_Operations is R1 : F; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("addf %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); + Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R)); return R1; end Add_F; @@ -310,13 +281,10 @@ package body System.Vax_Float_Operations is R1 : G; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("addg %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); + Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R)); return R1; end Add_G; @@ -392,13 +360,10 @@ package body System.Vax_Float_Operations is R1 : F; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("divf %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); + Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R)); return R1; end Div_F; @@ -411,13 +376,10 @@ package body System.Vax_Float_Operations is R1 : G; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("divg %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); + Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R)); return R1; end Div_G; @@ -429,11 +391,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : S; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("cmpgeq %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); return R /= 0.0; end Eq_F; @@ -445,11 +405,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : T; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("cmpgeq %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); return R /= 0.0; end Eq_G; @@ -461,11 +419,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : S; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("cmpgle %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); return R /= 0.0; end Le_F; @@ -477,11 +433,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : T; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("cmpgle %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); return R /= 0.0; end Le_G; @@ -493,11 +447,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : S; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("cmpglt %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); return R /= 0.0; end Lt_F; @@ -509,11 +461,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : T; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("cmpglt %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); return R /= 0.0; end Lt_G; @@ -526,13 +476,10 @@ package body System.Vax_Float_Operations is R1 : F; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("mulf %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); + Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R)); return R1; end Mul_F; @@ -545,13 +492,10 @@ package body System.Vax_Float_Operations is R1 : G; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("mulg %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); + Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R)); return R1; end Mul_G; @@ -563,11 +507,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : S; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("cmpgeq %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); return R = 0.0; end Ne_F; @@ -579,11 +521,9 @@ package body System.Vax_Float_Operations is X1, Y1, R : T; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("cmpgeq %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); return R = 0.0; end Ne_G; @@ -596,10 +536,8 @@ package body System.Vax_Float_Operations is C : F; begin Asm ("ldf %0,%1", S'Asm_Output ("=f", A), F'Asm_Input ("m", X)); - Asm ("cpysn %1,%1,%0", S'Asm_Output ("=f", B), S'Asm_Input ("f", A), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", C), S'Asm_Input ("f", B), - Volatile => True); + Asm ("cpysn %1,%1,%0", S'Asm_Output ("=f", B), S'Asm_Input ("f", A)); + Asm ("stf %1,%0", F'Asm_Output ("=m", C), S'Asm_Input ("f", B)); return C; end Neg_F; @@ -612,10 +550,8 @@ package body System.Vax_Float_Operations is C : G; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", A), G'Asm_Input ("m", X)); - Asm ("cpysn %1,%1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", C), T'Asm_Input ("f", B), - Volatile => True); + Asm ("cpysn %1,%1,%0", T'Asm_Output ("=f", B), T'Asm_Input ("f", A)); + Asm ("stg %1,%0", G'Asm_Output ("=m", C), T'Asm_Input ("f", B)); return C; end Neg_G; @@ -652,13 +588,11 @@ package body System.Vax_Float_Operations is function Return_D (X : D) return D is R : D; - begin -- The return value is already in $f0 so we need to trick the compiler -- into thinking that we're moving X to $f0. - Asm ("cvtdg $f0,$f0", Inputs => D'Asm_Input ("g", X), Clobber => "$f0", - Volatile => True); + Volatile => True); Asm ("stg $f0,%0", D'Asm_Output ("=m", R), Volatile => True); return R; end Return_D; @@ -669,13 +603,11 @@ package body System.Vax_Float_Operations is function Return_F (X : F) return F is R : F; - begin -- The return value is already in $f0 so we need to trick the compiler -- into thinking that we're moving X to $f0. - Asm ("stf $f0,%0", F'Asm_Output ("=m", R), F'Asm_Input ("g", X), - Clobber => "$f0", Volatile => True); + Clobber => "$f0", Volatile => True); return R; end Return_F; @@ -685,13 +617,11 @@ package body System.Vax_Float_Operations is function Return_G (X : G) return G is R : G; - begin -- The return value is already in $f0 so we need to trick the compiler -- into thinking that we're moving X to $f0. - Asm ("stg $f0,%0", G'Asm_Output ("=m", R), G'Asm_Input ("g", X), - Clobber => "$f0", Volatile => True); + Clobber => "$f0", Volatile => True); return R; end Return_G; @@ -705,13 +635,10 @@ package body System.Vax_Float_Operations is begin Asm ("ldf %0,%1", S'Asm_Output ("=f", X1), F'Asm_Input ("m", X)); - Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldf %0,%1", S'Asm_Output ("=f", Y1), F'Asm_Input ("m", Y)); Asm ("subf %1,%2,%0", S'Asm_Output ("=f", R), - (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R), - Volatile => True); + (S'Asm_Input ("f", X1), S'Asm_Input ("f", Y1))); + Asm ("stf %1,%0", F'Asm_Output ("=m", R1), S'Asm_Input ("f", R)); return R1; end Sub_F; @@ -724,13 +651,10 @@ package body System.Vax_Float_Operations is R1 : G; begin Asm ("ldg %0,%1", T'Asm_Output ("=f", X1), G'Asm_Input ("m", X)); - Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y), - Volatile => True); + Asm ("ldg %0,%1", T'Asm_Output ("=f", Y1), G'Asm_Input ("m", Y)); Asm ("subg %1,%2,%0", T'Asm_Output ("=f", R), - (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1)), - Volatile => True); - Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R), - Volatile => True); + (T'Asm_Input ("f", X1), T'Asm_Input ("f", Y1))); + Asm ("stg %1,%0", G'Asm_Output ("=m", R1), T'Asm_Input ("f", R)); return R1; end Sub_G; |