Mercurial > hg > graal-compiler
comparison src/cpu/ppc/vm/register_ppc.hpp @ 14726:92aa6797d639
Backed out merge changeset: b51e29501f30
Backed out merge revision to its first parent (8f483e200405)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 24 Mar 2014 21:30:43 +0100 |
parents | 58cf34613a72 |
children |
comparison
equal
deleted
inserted
replaced
14719:0bdd0d157040 | 14726:92aa6797d639 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * Copyright 2012, 2014 SAP AG. All rights reserved. | 3 * Copyright 2012, 2013 SAP AG. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * | 5 * |
6 * This code is free software; you can redistribute it and/or modify it | 6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as | 7 * under the terms of the GNU General Public License version 2 only, as |
8 * published by the Free Software Foundation. | 8 * published by the Free Software Foundation. |
577 #define F13_ARG13 AS_REGISTER(FloatRegister, F13) | 577 #define F13_ARG13 AS_REGISTER(FloatRegister, F13) |
578 #endif | 578 #endif |
579 | 579 |
580 // Register declarations to be used in frame manager assembly code. | 580 // Register declarations to be used in frame manager assembly code. |
581 // Use only non-volatile registers in order to keep values across C-calls. | 581 // Use only non-volatile registers in order to keep values across C-calls. |
582 #ifdef CC_INTERP | |
583 REGISTER_DECLARATION(Register, R14_state, R14); // address of new cInterpreter. | 582 REGISTER_DECLARATION(Register, R14_state, R14); // address of new cInterpreter. |
584 REGISTER_DECLARATION(Register, R15_prev_state, R15); // address of old cInterpreter | 583 REGISTER_DECLARATION(Register, R15_prev_state, R15); // address of old cInterpreter |
585 #else // CC_INTERP | |
586 REGISTER_DECLARATION(Register, R14_bcp, R14); | |
587 REGISTER_DECLARATION(Register, R15_esp, R15); | |
588 REGISTER_DECLARATION(FloatRegister, F15_ftos, F15); | |
589 #endif // CC_INTERP | |
590 REGISTER_DECLARATION(Register, R16_thread, R16); // address of current thread | 584 REGISTER_DECLARATION(Register, R16_thread, R16); // address of current thread |
591 REGISTER_DECLARATION(Register, R17_tos, R17); // address of Java tos (prepushed). | 585 REGISTER_DECLARATION(Register, R17_tos, R17); // address of Java tos (prepushed). |
592 REGISTER_DECLARATION(Register, R18_locals, R18); // address of first param slot (receiver). | 586 REGISTER_DECLARATION(Register, R18_locals, R18); // address of first param slot (receiver). |
593 REGISTER_DECLARATION(Register, R19_method, R19); // address of current method | 587 REGISTER_DECLARATION(Register, R19_method, R19); // address of current method |
594 #ifndef DONT_USE_REGISTER_DEFINES | 588 #ifndef DONT_USE_REGISTER_DEFINES |
595 #ifdef CC_INTERP | |
596 #define R14_state AS_REGISTER(Register, R14) | 589 #define R14_state AS_REGISTER(Register, R14) |
597 #define R15_prev_state AS_REGISTER(Register, R15) | 590 #define R15_prev_state AS_REGISTER(Register, R15) |
598 #else // CC_INTERP | |
599 #define R14_bcp AS_REGISTER(Register, R14) | |
600 #define R15_esp AS_REGISTER(Register, R15) | |
601 #define F15_ftos AS_REGISTER(FloatRegister, F15) | |
602 #endif // CC_INTERP | |
603 #define R16_thread AS_REGISTER(Register, R16) | 591 #define R16_thread AS_REGISTER(Register, R16) |
604 #define R17_tos AS_REGISTER(Register, R17) | 592 #define R17_tos AS_REGISTER(Register, R17) |
605 #define R18_locals AS_REGISTER(Register, R18) | 593 #define R18_locals AS_REGISTER(Register, R18) |
606 #define R19_method AS_REGISTER(Register, R19) | 594 #define R19_method AS_REGISTER(Register, R19) |
607 #define R21_sender_SP AS_REGISTER(Register, R21) | 595 #define R21_sender_SP AS_REGISTER(Register, R21) |
618 REGISTER_DECLARATION(Register, R25_tmp5, R25); | 606 REGISTER_DECLARATION(Register, R25_tmp5, R25); |
619 REGISTER_DECLARATION(Register, R26_tmp6, R26); | 607 REGISTER_DECLARATION(Register, R26_tmp6, R26); |
620 REGISTER_DECLARATION(Register, R27_tmp7, R27); | 608 REGISTER_DECLARATION(Register, R27_tmp7, R27); |
621 REGISTER_DECLARATION(Register, R28_tmp8, R28); | 609 REGISTER_DECLARATION(Register, R28_tmp8, R28); |
622 REGISTER_DECLARATION(Register, R29_tmp9, R29); | 610 REGISTER_DECLARATION(Register, R29_tmp9, R29); |
623 #ifndef CC_INTERP | |
624 REGISTER_DECLARATION(Register, R24_dispatch_addr, R24); | |
625 REGISTER_DECLARATION(Register, R25_templateTableBase, R25); | |
626 REGISTER_DECLARATION(Register, R26_monitor, R26); | |
627 REGISTER_DECLARATION(Register, R27_constPoolCache, R27); | |
628 REGISTER_DECLARATION(Register, R28_mdx, R28); | |
629 #endif // CC_INTERP | |
630 | |
631 #ifndef DONT_USE_REGISTER_DEFINES | 611 #ifndef DONT_USE_REGISTER_DEFINES |
632 #define R21_tmp1 AS_REGISTER(Register, R21) | 612 #define R21_tmp1 AS_REGISTER(Register, R21) |
633 #define R22_tmp2 AS_REGISTER(Register, R22) | 613 #define R22_tmp2 AS_REGISTER(Register, R22) |
634 #define R23_tmp3 AS_REGISTER(Register, R23) | 614 #define R23_tmp3 AS_REGISTER(Register, R23) |
635 #define R24_tmp4 AS_REGISTER(Register, R24) | 615 #define R24_tmp4 AS_REGISTER(Register, R24) |
636 #define R25_tmp5 AS_REGISTER(Register, R25) | 616 #define R25_tmp5 AS_REGISTER(Register, R25) |
637 #define R26_tmp6 AS_REGISTER(Register, R26) | 617 #define R26_tmp6 AS_REGISTER(Register, R26) |
638 #define R27_tmp7 AS_REGISTER(Register, R27) | 618 #define R27_tmp7 AS_REGISTER(Register, R27) |
639 #define R28_tmp8 AS_REGISTER(Register, R28) | 619 #define R28_tmp8 AS_REGISTER(Register, R28) |
640 #define R29_tmp9 AS_REGISTER(Register, R29) | 620 #define R29_tmp9 AS_REGISTER(Register, R29) |
641 #ifndef CC_INTERP | |
642 // Lmonitors : monitor pointer | |
643 // LcpoolCache: constant pool cache | |
644 // mdx: method data index | |
645 #define R24_dispatch_addr AS_REGISTER(Register, R24) | |
646 #define R25_templateTableBase AS_REGISTER(Register, R25) | |
647 #define R26_monitor AS_REGISTER(Register, R26) | |
648 #define R27_constPoolCache AS_REGISTER(Register, R27) | |
649 #define R28_mdx AS_REGISTER(Register, R28) | |
650 #endif | |
651 | 621 |
652 #define CCR4_is_synced AS_REGISTER(ConditionRegister, CCR4) | 622 #define CCR4_is_synced AS_REGISTER(ConditionRegister, CCR4) |
653 #endif | 623 #endif |
654 | 624 |
655 // Scratch registers are volatile. | 625 // Scratch registers are volatile. |