Mercurial > hg > truffle
comparison src/os_cpu/linux_ppc/vm/orderAccess_linux_ppc.inline.hpp @ 14445:67fa91961822
8029940: PPC64 (part 122): C2 compiler port
Reviewed-by: kvn
author | goetz |
---|---|
date | Wed, 11 Dec 2013 00:06:11 +0100 |
parents | ec28f9c041ff |
children |
comparison
equal
deleted
inserted
replaced
14444:492e67693373 | 14445:67fa91961822 |
---|---|
38 // | 38 // |
39 // Machine barrier instructions: | 39 // Machine barrier instructions: |
40 // | 40 // |
41 // - sync Two-way memory barrier, aka fence. | 41 // - sync Two-way memory barrier, aka fence. |
42 // - lwsync orders Store|Store, | 42 // - lwsync orders Store|Store, |
43 // Load|Store, | 43 // Load|Store, |
44 // Load|Load, | 44 // Load|Load, |
45 // but not Store|Load | 45 // but not Store|Load |
46 // - eieio orders Store|Store | 46 // - eieio orders Store|Store |
47 // - isync Invalidates speculatively executed instructions, | 47 // - isync Invalidates speculatively executed instructions, |
48 // but isync may complete before storage accesses | 48 // but isync may complete before storage accesses |
49 // associated with instructions preceding isync have | 49 // associated with instructions preceding isync have |
50 // been performed. | 50 // been performed. |
51 // | 51 // |
52 // Semantic barrier instructions: | 52 // Semantic barrier instructions: |
53 // (as defined in orderAccess.hpp) | 53 // (as defined in orderAccess.hpp) |
54 // | 54 // |
55 // - release orders Store|Store, (maps to lwsync) | 55 // - release orders Store|Store, (maps to lwsync) |
56 // Load|Store | 56 // Load|Store |
57 // - acquire orders Load|Store, (maps to lwsync) | 57 // - acquire orders Load|Store, (maps to lwsync) |
58 // Load|Load | 58 // Load|Load |
59 // - fence orders Store|Store, (maps to sync) | 59 // - fence orders Store|Store, (maps to sync) |
60 // Load|Store, | 60 // Load|Store, |
61 // Load|Load, | 61 // Load|Load, |
62 // Store|Load | 62 // Store|Load |
63 // | 63 // |
64 | 64 |
65 #define inlasm_sync() __asm__ __volatile__ ("sync" : : : "memory"); | 65 #define inlasm_sync() __asm__ __volatile__ ("sync" : : : "memory"); |
66 #define inlasm_lwsync() __asm__ __volatile__ ("lwsync" : : : "memory"); | 66 #define inlasm_lwsync() __asm__ __volatile__ ("lwsync" : : : "memory"); |
67 #define inlasm_eieio() __asm__ __volatile__ ("eieio" : : : "memory"); | 67 #define inlasm_eieio() __asm__ __volatile__ ("eieio" : : : "memory"); |