summaryrefslogtreecommitdiffstats
path: root/asmcomp/proc_hppa.ml
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1997-03-03 17:11:35 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1997-03-03 17:11:35 +0000
commite8639e720811a5b2ff425a91a8506be2de69b196 (patch)
treedb29d511e70ca4ce4a2965276ef8091dcb5ef810 /asmcomp/proc_hppa.ml
parenta1d1dedc40aae256d7b09aa64574dc1b777a5fcb (diff)
Utiliser %r29 au lieu de %r1 pour passer la taille a caml_alloc et caml_call_gc
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1309 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'asmcomp/proc_hppa.ml')
-rw-r--r--asmcomp/proc_hppa.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/asmcomp/proc_hppa.ml b/asmcomp/proc_hppa.ml
index d61e43e13..5f2a98a4d 100644
--- a/asmcomp/proc_hppa.ml
+++ b/asmcomp/proc_hppa.ml
@@ -269,10 +269,13 @@ let destroyed_at_c_call = (* %r3 - %r18, %fr12 - %fr21 preserved *)
let destroyed_by_millicode = (* %r25, %r26, %r28, %r29 -- more? *)
[| phys_reg 19; phys_reg 20; phys_reg 21; phys_reg 22 |]
+let destroyed_by_alloc = [| phys_reg 22 |] (* %r29 *)
+
let destroyed_at_oper = function
Iop(Icall_ind | Icall_imm _ | Iextcall(_, true)) -> all_phys_regs
| Iop(Iextcall(_, false)) -> destroyed_at_c_call
| Iop(Iintop(Idiv | Imod)) -> destroyed_by_millicode
+ | Iop(Ialloc _) -> destroyed_by_alloc
| _ -> [||]
let destroyed_at_raise = all_phys_regs