gecko-dev/ef/Compiler/CodeGenerator/md/ppc/ppc601-macos.nad

287 строки
9.2 KiB
Plaintext

%top
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "Burg.h"
%
%terminals
%
%startsymbols
Control
Result
Exception
Store
Vcond
Vint
Vlong
Vfloat
Vdouble
Vptr
Cint
Clong
Cfloat
Cdouble
Cptr
Tuple
%
%grammar
Vint: coReg_I $1 $
Vlong: coReg_L $1 $
Vfloat: coReg_F $1 $
Vdouble: coReg_D $1 $
Vptr: coReg_A $1 $
Vcond: coReg_C $1 $
Store: coReg_M $1 $
Cint: coReg_I $1 $
Clong: coReg_L $1 $
Cfloat: coReg_F $1 $
Cdouble: coReg_D $1 $
Cptr: coReg_A $1 $
Vint: poConst_I $1 $emConst_I
Vlong: poConst_L $1 $emConst_L
Vfloat: poConst_F $1 $emConst_F
//Vdouble: poConst_D $1 $emConst_D
Vptr: poConst_A $1 $emConst_A
//Vcond: poConst_C $1 $emConst_C
//Store: poBreak(Store) $1 $emBreak
Vint: poArg_I $1 $
Vlong: poArg_L $1 $
Vfloat: poArg_F $1 $
Vdouble: poArg_D $1 $
Vptr: poArg_A $1 $
Store: poArg_M $1 $
Result: poResult_I(Vint) $1 $emResult_I
//Result: poResult_L(Vlong) $1 $emResult_L
Result: poResult_F(Vfloat) $1 $emResult_F
//Result: poResult_D(Vdouble) $1 $emResult_D
Result: poResult_A(Vptr) $1 $emResult_A
Result: poResult_M(Store) $1 $
Control: poIfLt(Vcond) $1 $emIfLt
Control: poIfEq(Vcond) $1 $emIfEq
Control: poIfLe(Vcond) $1 $emIfLe
Control: poIfGt(Vcond) $1 $emIfGt
Control: poIfLgt(Vcond) $1 $emIfLgt
Control: poIfGe(Vcond) $1 $emIfGe
Control: poIfOrd(Vcond) $1 $emIfOrd
//Control: poIfUnord(Vcond) $1 $emIfUnord
Control: poIfULt(Vcond) $1 $emIfULt
Control: poIfUEq(Vcond) $1 $emIfUEq
Control: poIfULe(Vcond) $1 $emIfULe
Control: poIfUGt(Vcond) $1 $emIfUGt
Control: poIfNe(Vcond) $1 $emIfNe
Control: poIfUGe(Vcond) $1 $emIfUGe
//Control: poSwitch(Vint) $1 $emSwitch
Vint: poAnd_I(Vint, Vint) $1 $emAnd_I
Vlong: poAnd_L(Vlong, Vlong) $1 $emAnd_L
Vint: poOr_I(Vint, Vint) $1 $emOr_I
Vlong: poOr_L(Vlong, Vlong) $1 $emOr_L
Vint: poXor_I(Vint, Vint) $1 $emXor_I
Vlong: poXor_L(Vlong, Vlong) $1 $emXor_L
Vint: poAdd_I(Vint, Vint) $1 $emAdd_I
//Vlong: poAdd_L(Vlong, Vlong) $1 $emAdd_L
Vptr: poAdd_A(Vptr, Vint) $1 $emAdd_A
Vptr: poAddU_A(Vptr, Vint) $1 $emAddU_A
Vint: poSub_I(Vint, Vint) $1 $emSub_I
//Vlong: poSub_L(Vlong, Vlong) $1 $emSub_L
Vptr: poSub_A(Vptr, Vint) $1 $emSub_A
Vptr: poSubU_A(Vptr, Vint) $1 $emSubU_A
Vint: poSubA_I(Vptr, Vptr) $1 $emSubA_I
Vint: poMul_I(Vint, Vint) $1 $emMul_I
//Vlong: poMul_L(Vlong, Vlong) $1 $emMul_L
Vint: poDiv_I(Vint, Vint) $1 $emDiv_I
//Vint: poDiv_L(Vlong, Vlong) $1 $emDiv_L
Vint: poDivE_I(Vint, Vint) $1 $emDivE_I
//Vint: poDivE_L(Vlong, Vlong) $1 $emDivE_L
Vint: poDivU_I(Vint, Vint) $1 $emDivU_I
//Vint: poDivU_L(Vlong, Vlong) $1 $emDivU_L
Vint: poDivUE_I(Vint, Vint) $1 $emDivUE_I
//Vint: poDivUE_L(Vlong, Vlong) $1 $emDivUE_L
Vint: poMod_I(Vint, Vint) $1 $emMod_I
//Vint: poMod_L(Vlong, Vlong) $1 $emMod_L
Vint: poModE_I(Vint, Vint) $1 $emModE_I
//Vint: poModE_L(Vlong, Vlong) $1 $emModE_L
//Vint: poModU_I(Vint, Vint) $1 $emModU_I
//Vint: poModU_L(Vlong, Vlong) $1 $emModU_L
//Vint: poModUE_I(Vint, Vint) $1 $emModUE_I
//Vint: poModUE_L(Vlong, Vlong) $1 $emModUE_L
Vint: poShl_I(Vint, Vint) $1 $emShl_I
//Vlong: poShl_L(Vlong, Vint) $1 $emShl_L
//Vint: poShr_I(Vint, Vint) $1 $emShr_I
//Vlong: poShr_L(Vlong, Vint) $1 $emShr_L
//Vint: poShrU_I(Vint, Vint) $1 $emShrU_I
//Vlong: poShrU_L(Vlong, Vint) $1 $emShrU_L
//Vint: poExt_I(Vint, Cint) $1 $emExt_I
//Vlong: poExt_L(Vlong, Cint) $1 $emExt_L
Vfloat: poFAdd_F(Vfloat, Vfloat) $1 $emFAdd_F
//Vdouble: poFAdd_D(Vdouble, Vdouble) $1 $emFAdd_D
//Vfloat: poFSub_F(Vfloat, Vfloat) $1 $emFSub_F
//Vdouble: poFSub_D(Vdouble, Vdouble) $1 $emFSub_D
//Vfloat: poFMul_F(Vfloat, Vfloat) $1 $emFMul_F
//Vdouble: poFMul_D(Vdouble, Vdouble) $1 $emFMul_D
//Vfloat: poFDiv_F(Vfloat, Vfloat) $1 $emFDiv_F
//Vdouble: poFDiv_D(Vdouble, Vdouble) $1 $emFDiv_D
//Vfloat: poFRem_F(Vfloat, Vfloat) $1 $emFRem_F
//Vdouble: poFRem_D(Vdouble, Vdouble) $1 $emFRem_D
//Vint: poConvI_L(Vlong) $1 $emConvI_L
//Vlong: poConvL_I(Vint) $1 $emConvL_I
//Vint: poFConvI_F(Vfloat) $1 $emFConvI_F
//Vint: poFConvI_D(Vdouble) $1 $emFConvI_D
//Vlong: poFConvL_F(Vfloat) $1 $emFConvL_F
//Vlong: poFConvL_D(Vdouble) $1 $emFConvL_D
//Vfloat: poFConvF_I(Vint) $1 $emFConvF_I
//Vfloat: poFConvF_L(Vlong) $1 $emFConvF_L
//Vfloat: poFConvF_D(Vdouble) $1 $emFConvF_D
//Vdouble: poFConvD_I(Vint) $1 $emFConvD_I
//Vdouble: poFConvD_L(Vlong) $1 $emFConvD_L
//Vdouble: poFConvD_F(Vfloat) $1 $emFConvD_F
Vcond: poCmp_I(Vint, Vint) $1 $emCmp_I
//Vcond: poCmp_L(Vlong, Vlong) $1 $emCmp_L
//Vcond: poCmpU_I(Vint, Vint) $1 $emCmpU_I
//Vcond: poCmpU_L(Vlong, Vlong) $1 $emCmpU_L
//Vcond: poCmpU_A(Vptr, Vptr) $1 $emCmpU_A
//Vcond: poFCmp_F(Vfloat, Vfloat) $1 $emFCmp_F
//Vcond: poFCmp_D(Vdouble, Vdouble) $1 $emFCmp_D
//Vint: poLt_I(Vcond) $1 $emLt_I
//Vint: poEq_I(Vcond) $1 $emEq_I
//Vint: poLe_I(Vcond) $1 $emLe_I
//Vint: poGt_I(Vcond) $1 $emGt_I
//Vint: poLgt_I(Vcond) $1 $emLgt_I
//Vint: poGe_I(Vcond) $1 $emGe_I
//Vint: poOrd_I(Vcond) $1 $emOrd_I
//Vint: poUnord_I(Vcond) $1 $emUnord_I
//Vint: poULt_I(Vcond) $1 $emULt_I
//Vint: poUEq_I(Vcond) $1 $emUEq_I
//Vint: poULe_I(Vcond) $1 $emULe_I
//Vint: poUGt_I(Vcond) $1 $emUGt_I
//Vint: poNe_I(Vcond) $1 $emNe_I
//Vint: poUGe_I(Vcond) $1 $emUGe_I
//Vint: poCatL_I(Vcond) $1 $emCatL_I
//Vint: poCatG_I(Vcond) $1 $emCatG_I
//Vint: poCatCL_I(Vcond) $1 $emCatCL_I
//Vint: poCatCG_I(Vcond) $1 $emCatCG_I
Exception: poChkNull(Vptr) $1 $emChkNull
Exception: poLimit(Vint, Vint) $1 $emLimit
Vint: poLd_I(Vptr) $1 $emLd_I
//Vlong: poLd_L(Vptr) $1 $emLd_L
//Vfloat: poLd_F(Vptr) $1 $emLd_F
//Vdouble: poLd_D(Vptr) $1 $emLd_D
Vptr: poLd_A(Vptr) $1 $emLd_A
//Vint: poLdE_I(Cptr) $1 $emLdE_I
//Vlong: poLdE_L(Cptr) $1 $emLdE_L
//Vfloat: poLdE_F(Cptr) $1 $emLdE_F
//Vdouble: poLdE_D(Cptr) $1 $emLdE_D
//Vptr: poLdE_A(Cptr) $1 $emLdE_A
//Vint: poLdS_B(Vptr) $1 $emLdS_B
//Vint: poLdS_H(Vptr) $1 $emLdS_H
//Vint: poLdSE_B(Cptr) $1 $emLdSE_B
//Vint: poLdSE_H(Cptr) $1 $emLdSE_H
//Vint: poLdU_B(Vptr) $1 $emLdU_B
//Vint: poLdU_H(Vptr) $1 $emLdU_H
//Vint: poLdUE_B(Cptr) $1 $emLdUE_B
//Vint: poLdUE_H(Cptr) $1 $emLdUE_H
//Vint: poLdV_I(Vptr) $1 $emLdV_I
//Vlong: poLdV_L(Vptr) $1 $emLdV_L
//Vfloat: poLdV_F(Vptr) $1 $emLdV_F
//Vdouble: poLdV_D(Vptr) $1 $emLdV_D
//Vptr: poLdV_A(Vptr) $1 $emLdV_A
//Vint: poLdVE_I(Cptr) $1 $emLdVE_I
//Vlong: poLdVE_L(Cptr) $1 $emLdVE_L
//Vfloat: poLdVE_F(Cptr) $1 $emLdVE_F
//Vdouble: poLdVE_D(Cptr) $1 $emLdVE_D
//Vptr: poLdVE_A(Cptr) $1 $emLdVE_A
Vint: poLd_I(poAdd_A(Vptr, Cint)) $0 $emLd_IRegisterIndirect
Vptr: poLd_A(poAdd_A(Vptr, Cint)) $0 $emLd_ARegisterIndirect
//Store: poSt_B(Vptr, Vint) $1 $emSt_B
//Store: poSt_H(Vptr, Vint) $1 $emSt_H
Store: poSt_I(Vptr, Vint) $1 $emSt_I
//Store: poSt_L(Vptr, Vlong) $1 $emSt_L
//Store: poSt_F(Vptr, Vfloat) $1 $emSt_F
//Store: poSt_D(Vptr, Vdouble) $1 $emSt_D
//Store: poSt_A(Vptr, Vptr) $1 $emSt_A
//Store: poStE_B(Cptr, Vint) $1 $emStE_B
//Store: poStE_H(Cptr, Vint) $1 $emStE_H
//Store: poStE_I(Cptr, Vint) $1 $emStE_I
//Store: poStE_L(Cptr, Vlong) $1 $emStE_L
//Store: poStE_F(Cptr, Vfloat) $1 $emStE_F
//Store: poStE_D(Cptr, Vdouble) $1 $emStE_D
//Store: poStE_A(Cptr, Vptr) $1 $emStE_A
//Store: poStV_B(Vptr, Vint) $1 $emStV_B
//Store: poStV_H(Vptr, Vint) $1 $emStV_H
//Store: poStV_I(Vptr, Vint) $1 $emStV_I
//Store: poStV_L(Vptr, Vlong) $1 $emStV_L
//Store: poStV_F(Vptr, Vfloat) $1 $emStV_F
//Store: poStV_D(Vptr, Vdouble) $1 $emStV_D
//Store: poStV_A(Vptr, Vptr) $1 $emStV_A
//Store: poStVE_B(Cptr, Vint) $1 $emStVE_B
//Store: poStVE_H(Cptr, Vint) $1 $emStVE_H
//Store: poStVE_I(Cptr, Vint) $1 $emStVE_I
//Store: poStVE_L(Cptr, Vlong) $1 $emStVE_L
//Store: poStVE_F(Cptr, Vfloat) $1 $emStVE_F
//Store: poStVE_D(Cptr, Vdouble) $1 $emStVE_D
//Store: poStVE_A(Cptr, Vptr) $1 $emStVE_A
Store: poSt_I(poAdd_A(Vptr, poConst_I), Vint) $0 $emSt_IRegisterIndirect
Store: poProj_M $1 $
Vint: poProj_I $1 $
Vptr: poProj_A $1 $
Tuple: poSysCall $1 $emSysCall
Tuple: poSysCallE $1 $emSysCallE
Tuple: poSysCallC $1 $emSysCallC
Tuple: poSysCallEC $1 $emSysCallEC
Tuple: poSysCallV $1 $emSysCallV
Tuple: poSysCallEV $1 $emSysCallEV
Tuple: poCall(Vptr) $1 $emDynamicCall
Tuple: poCall(poConst_A) $1 $emStaticCall
%