| Index: src/IceIntrinsics.h
|
| diff --git a/src/IceIntrinsics.h b/src/IceIntrinsics.h
|
| index b9c793a5d8adbe810fcfe8db6ebb2d8019a2a56d..d984b4c6cad7774076b72b27c625c668024d2cfc 100644
|
| --- a/src/IceIntrinsics.h
|
| +++ b/src/IceIntrinsics.h
|
| @@ -88,15 +88,24 @@ public:
|
|
|
| static bool VerifyMemoryOrder(uint64_t Order);
|
|
|
| + enum SideEffects {
|
| + SideEffects_F=0,
|
| + SideEffects_T=1
|
| + };
|
| +
|
| + enum ReturnsTwice {
|
| + ReturnsTwice_F=0,
|
| + ReturnsTwice_T=1
|
| + };
|
| +
|
| // Basic attributes related to each intrinsic, that are relevant to
|
| - // code generation. We will want to have more attributes (e.g., Setjmp
|
| - // returns twice and which affects stack coloring) once the lowering
|
| - // cares about such attributes. Perhaps the attributes representation
|
| - // can be shared with general function calls, though most functions
|
| - // will be opaque.
|
| + // code generation. Perhaps the attributes representation can be shared
|
| + // with general function calls, but PNaCl currently strips all
|
| + // attributes from functions.
|
| struct IntrinsicInfo {
|
| - IntrinsicID ID : 31;
|
| - bool HasSideEffects : 1;
|
| + enum IntrinsicID ID : 30;
|
| + enum SideEffects HasSideEffects : 1;
|
| + enum ReturnsTwice ReturnsTwice : 1;
|
| };
|
|
|
| // The complete set of information about an intrinsic.
|
|
|